import org.jwildfire.create.tina.base.Flame; import org.jwildfire.create.tina.base.XForm; import org.jwildfire.create.tina.palette.RGBPalette; import org.jwildfire.create.tina.script.ScriptRunnerEnvironment; import org.jwildfire.create.tina.transform.XFormTransformService; import org.jwildfire.create.tina.base.Layer; import org.jwildfire.create.tina.base.DrawMode; import org.jwildfire.create.tina.base.ColorType; import org.jwildfire.create.tina.variation.Variation; import org.jwildfire.create.tina.variation.VariationFunc; import org.jwildfire.create.tina.variation.VariationFuncList; import org.jwildfire.create.tina.mutagen.RandomGradientMutation; import org.jwildfire.create.tina.transform.XFormTransformService; import org.jwildfire.create.tina.base.EditPlane; public void run(ScriptRunnerEnvironment pEnv) throws Exception { // create a new flame Flame flame=new Flame(); flame.getLayers().clear(); // get rid of the default layer because we create all layers by ourselves // set the flame main attributes flame.setCamRoll(0); flame.setCentreX(2.45); flame.setCentreY(1.37); flame.setCamPitch(0); flame.setCamYaw(0); flame.setCamBank(0); flame.setCamPerspective(0); flame.setWidth(426); flame.setHeight(426); flame.setPixelsPerUnit(98.14705882); flame.setCamZoom(1.27741457); flame.setBGTransparency(false); // Uncomment setBrightness or setGamma if essential for the flame // flame.setBrightness(4.0); // flame.setGamma(4.0); flame.setPreserveZ(false); // create layer 1 { Layer layer = new Layer(); flame.getLayers().add(layer); layer.setWeight(1); layer.setDensity(1); layer.setVisible(true); // create a random gradient new RandomGradientMutation().execute(layer); // create transform 1 { XForm xForm = new XForm(); layer.getXForms().add(xForm); xForm.setWeight(0.5); xForm.setColor(0.89666505); xForm.setColorSymmetry(0.62668861); xForm.setDrawMode(DrawMode.NORMAL); xForm.setMaterial(0); xForm.setMaterialSpeed(0); xForm.setCoeff00(1); // a xForm.setCoeff10(0); // b xForm.setCoeff20(0); // e xForm.setCoeff01(0); // c xForm.setCoeff11(1); // d xForm.setCoeff21(0); // f xForm.setPostCoeff00(1); xForm.setPostCoeff10(0); xForm.setPostCoeff01(0); xForm.setPostCoeff11(1); xForm.setPostCoeff20(1); xForm.setPostCoeff21(0); // variation 1 { VariationFunc varFunc=VariationFuncList.getVariationFuncInstance("julian2", true); varFunc.setParameter("power", -6); varFunc.setParameter("dist", 1); varFunc.setParameter("a", 1); varFunc.setParameter("b", 0); varFunc.setParameter("c", 0); varFunc.setParameter("d", 1); varFunc.setParameter("e", 0); varFunc.setParameter("f", 0); xForm.addVariation(1, varFunc); } // set default edit plane flame.setEditPlane(EditPlane.XY); // random affine transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, false); XFormTransformService.rotate(xForm, 360.0*Math.random(), false); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), false); // random affine post transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, true); // XFormTransformService.rotate(xForm, 360.0*Math.random(), true); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), true); } // create transform 2 { XForm xForm = new XForm(); layer.getXForms().add(xForm); xForm.setWeight(0.5); xForm.setColor(0.19949546); xForm.setColorSymmetry(0.33786964); xForm.setDrawMode(DrawMode.NORMAL); xForm.setMaterial(0); xForm.setMaterialSpeed(0); xForm.setCoeff00(1); // a xForm.setCoeff10(0); // b xForm.setCoeff20(0); // e xForm.setCoeff01(0); // c xForm.setCoeff11(1); // d xForm.setCoeff21(0); // f xForm.setPostCoeff00(1); xForm.setPostCoeff10(0); xForm.setPostCoeff01(0); xForm.setPostCoeff11(1); xForm.setPostCoeff20(0); xForm.setPostCoeff21(1); // variation 1 xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true)); // set default edit plane flame.setEditPlane(EditPlane.XY); // random affine transforms (uncomment to play around) XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, false); // XFormTransformService.rotate(xForm, 360.0*Math.random(), false); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), false); // random affine post transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, true); // XFormTransformService.rotate(xForm, 360.0*Math.random(), true); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), true); } // create transform 3 { XForm xForm = new XForm(); layer.getXForms().add(xForm); xForm.setWeight(0.05); xForm.setColor(0.73493187); xForm.setColorSymmetry(0.95291095); xForm.setDrawMode(DrawMode.NORMAL); xForm.setMaterial(0); xForm.setMaterialSpeed(0); xForm.setCoeff00(1); // a xForm.setCoeff10(0); // b xForm.setCoeff20(0); // e xForm.setCoeff01(0); // c xForm.setCoeff11(1); // d xForm.setCoeff21(0); // f xForm.setPostCoeff00(0.06611257); xForm.setPostCoeff10(-0.06891803); xForm.setPostCoeff01(0.06891803); xForm.setPostCoeff11(0.06611257); xForm.setPostCoeff20(0.48130693); xForm.setPostCoeff21(0.48574329); // variation 1 xForm.addVariation(0.58160983, VariationFuncList.getVariationFuncInstance("secant2", true)); // set default edit plane flame.setEditPlane(EditPlane.XY); // random affine transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, false); // XFormTransformService.rotate(xForm, 360.0*Math.random(), false); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), false); // random affine post transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, true); // XFormTransformService.rotate(xForm, 360.0*Math.random(), true); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), true); } // create transform 4 { XForm xForm = new XForm(); layer.getXForms().add(xForm); xForm.setWeight(0.5); xForm.setColor(0); xForm.setColorSymmetry(0); xForm.setDrawMode(DrawMode.NORMAL); xForm.setMaterial(0); xForm.setMaterialSpeed(0); xForm.setCoeff00(0.0000000000000003); // a xForm.setCoeff10(1); // b xForm.setCoeff20(0); // e xForm.setCoeff01(-1); // c xForm.setCoeff11(0.0000000000000003); // d xForm.setCoeff21(0); // f xForm.setPostCoeff00(1); xForm.setPostCoeff10(0); xForm.setPostCoeff01(0); xForm.setPostCoeff11(1); xForm.setPostCoeff20(0); xForm.setPostCoeff21(0); // variation 1 xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true)); // set default edit plane flame.setEditPlane(EditPlane.XY); // random affine transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, false); // XFormTransformService.rotate(xForm, 360.0*Math.random(), false); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), false); // random affine post transforms (uncomment to play around) // XFormTransformService.scale(xForm, 1.25-Math.random()*0.5, true, true, true); XFormTransformService.rotate(xForm, 360.0*Math.random(), true); // XFormTransformService.localTranslate(xForm, 1.0-2.0*Math.random(), 1.0-2.0*Math.random(), true); } } // Either update the currently selected flame (to not need to create a new thumbnail // in the thumbnail ribbon after each run of the script... Flame selFlame = pEnv.getCurrFlame(); if(selFlame!=null) { selFlame.assign(flame); pEnv.refreshUI(); } // ...or load the flame in the editor and refresh the UI else { pEnv.setCurrFlame(flame); } }