use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class AbstractAffine3DRandomFlameGenerator method scaleXForm.
protected void scaleXForm(Flame pFlame, int idx, double offset, double amp0) {
Layer layer = pFlame.getFirstLayer();
if (layer.getXForms().size() > idx) {
pFlame.setEditPlane(EditPlane.ZX);
XForm xform = layer.getXForms().get(idx);
XFormTransformService.scale(xform, offset + (0.5 - Math.random()) * amp0, true, true);
pFlame.setEditPlane(EditPlane.XY);
}
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class BlackAndWhiteRandomFlameGenerator method postProcessFlameBeforeRendering.
@Override
protected Flame postProcessFlameBeforeRendering(RandomFlameGeneratorState pState, Flame pFlame) {
if (Math.random() < 0.42) {
if (Math.random() < 0.5) {
pFlame.setBgColorType(BGColorType.SINGLE_COLOR);
pFlame.setBgColorRed(0);
pFlame.setBgColorGreen(0);
pFlame.setBgColorBlue(0);
} else {
pFlame.setBgColorType(BGColorType.GRADIENT_2X2);
pFlame.setBgColorRed((int) (Math.random() * 64));
pFlame.setBgColorGreen((int) (Math.random() * 64));
pFlame.setBgColorBlue((int) (Math.random() * 64));
}
List<RGBColor> colors = new ArrayList<RGBColor>();
colors.add(new RGBColor(255, 255, 255));
RGBPalette gradient = RandomGradientGenerator.generatePalette(colors, true, true);
for (Layer layer : pFlame.getLayers()) {
layer.setPalette(gradient);
}
} else {
if (Math.random() < 0.5) {
pFlame.setBgColorType(BGColorType.SINGLE_COLOR);
pFlame.setBgColorRed(255);
pFlame.setBgColorGreen(255);
pFlame.setBgColorBlue(255);
} else {
pFlame.setBgColorType(BGColorType.GRADIENT_2X2);
pFlame.setBgColorRed((int) (255 - Math.random() * 64));
pFlame.setBgColorGreen((int) (255 - Math.random() * 64));
pFlame.setBgColorBlue((int) (255 - Math.random() * 64));
}
List<RGBColor> colors = new ArrayList<RGBColor>();
colors.add(new RGBColor(0, 0, 0));
RGBPalette gradient = RandomGradientGenerator.generatePalette(colors, true, true);
for (Layer layer : pFlame.getLayers()) {
layer.setPalette(gradient);
}
}
pFlame.setGamma(0.45 + Math.random() * 1.5);
pFlame.setGammaThreshold(0.2 * Math.random());
pFlame.setSaturation(1.0);
pFlame.setBrightness(3.0 + Math.random() * 2.0);
pFlame.setContrast(2.5);
pFlame.setBGTransparency(false);
return pFlame;
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class RectDOFBlurShape method prepare.
@Override
public void prepare(FlameTransformationContext pFlameTransformationContext, AbstractRandomGenerator pRandGen, double pCamDOF_10) {
super.prepare(pFlameTransformationContext, pRandGen, pCamDOF_10);
s = new XYZPoint();
d = new XYZPoint();
xform = new XForm();
fnc = new SquareFunc();
fnc.init(pFlameTransformationContext, new Layer(), xform, 1.0);
width = params.get(PARAM_WIDTH);
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class HeartDOFBlurShape method prepare.
@Override
public void prepare(FlameTransformationContext pFlameTransformationContext, AbstractRandomGenerator pRandGen, double pCamDOF_10) {
super.prepare(pFlameTransformationContext, pRandGen, pCamDOF_10);
s = new XYZPoint();
d = new XYZPoint();
xform = new XForm();
fnc = new XHeartBlurWFFunc();
for (String paramName : getParamNames()) {
fnc.setParameter(paramName, params.get(paramName));
}
fnc.init(pFlameTransformationContext, new Layer(), xform, 1.0);
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class IFlamesController method createNewFlame.
private Flame createNewFlame() {
Flame flame = new Flame();
flame.setBGTransparency(prefs.isTinaDefaultBGTransparency());
flame.setCamRoll(0);
flame.setCamPitch(0);
flame.setCamYaw(0);
flame.setCamPerspective(0);
flame.setWidth(800);
flame.setHeight(600);
flame.setCamZoom(1);
{
Layer layer = flame.getFirstLayer();
new RandomGradientMutation().execute(layer);
XForm xForm = new XForm();
layer.getXForms().add(xForm);
xForm.setWeight(0.5);
IFlamesFunc iflames = (IFlamesFunc) VariationFuncList.getVariationFuncInstance("iflames_wf", true);
if (imageLibrary.size() > 0) {
String imgFilename = imageLibrary.get((int) (Math.random() * imageLibrary.size())).getFilename();
iflames.getImageParams().setImageFilename(imgFilename);
}
if (flameLibrary.size() > 0) {
for (int i = 0; i < IFlamesFunc.MAX_FLAME_COUNT; i++) {
if (i > 1 && Math.random() < 0.33) {
iflames.getFlameParams(i).setFlameXML(null);
} else if (Math.random() < 0.50) {
Flame libFlame = flameLibrary.get((int) (Math.random() * flameLibrary.size())).getFlame();
String libFlameXML;
try {
libFlameXML = new FlameWriter().getFlameXML(libFlame);
} catch (Exception e) {
libFlameXML = null;
e.printStackTrace();
}
iflames.getFlameParams(i).setFlameXML(libFlameXML);
}
}
}
if (Math.random() < 0.5) {
iflames.getImageParams().setShape_distribution(ShapeDistribution.HUE);
} else {
iflames.getImageParams().setShape_distribution(ShapeDistribution.RANDOM);
}
for (int i = 0; i < IFlamesFunc.MAX_FLAME_COUNT; i++) {
iflames.getFlameParams(i).setSize(2.0 + Math.random() * 4.0);
}
iflames.getMotionParams().setPreview(previewButton.isSelected() ? 1 : 0);
xForm.addVariation(1.0, iflames);
}
return flame.makeCopy();
}
Aggregations