Package org.jwildfire.create.tina.base

Examples of org.jwildfire.create.tina.base.Layer


  @Override
  protected Flame prepareFlame(RandomFlameGeneratorState pState) {
    // Bases loosely on the W2R Batch Script by parrotdolphin.deviantart.com */
    Flame flame = new Flame();
    Layer layer = flame.getFirstLayer();
    flame.setCentreX(0.0);
    flame.setCentreY(0.0);
    if (Math.random() > 0.6) {
      flame.setNewCamDOF(true);
      flame.setCamDOF(Math.random() * 0.07);
    }
    else {
      flame.setNewCamDOF(false);
      flame.setCamDOF(Math.random() * 0.2);
    }
    flame.setPreserveZ(Math.random() > 0.33);
    flame.setCamPitch(10 + Math.random() * 50);
    flame.setCamPerspective(0.10 + Math.random() * 0.5);
    flame.setPixelsPerUnit(200);
    layer.getFinalXForms().clear();
    layer.getXForms().clear();

    // create transform 1
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.5);
      xForm.setColorSymmetry(0.99 - Math.random() * 0.2);

      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(-1);

      xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true));
    }
    // create transform 2
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.5);
      xForm.setColorSymmetry(0.8 - Math.random() * 0.1);

      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(-1);

      xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true));
    }
    // create transform 3
    {
      XForm xForm = new XForm();
      xForm.setWeight(0.5);
      layer.getXForms().add(xForm);
      xForm.setColor(0.1 + Math.random() * 0.1);
      xForm.setColorSymmetry(0.92);

      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(1);

      xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true));
    }
    // create transform 4
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.5);
      xForm.setColorSymmetry(0.9 - Math.random() * 0.2);

      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(1);

      xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true));
    }
    // create transform 5
    XForm xForm5;
    {
      XForm xForm = xForm5 = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.05 + Math.random() * 0.2);
      xForm.setColorSymmetry(0.10 + Math.random() * 0.2);

      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.70711);
      xForm.setPostCoeff10(0.70711);
      xForm.setPostCoeff01(-0.70711);
      xForm.setPostCoeff11(0.70711);
      xForm.setPostCoeff20(0);
      xForm.setPostCoeff21(0);

      {
        VariationFunc varFunc = VariationFuncList.getVariationFuncInstance(VariationFuncList.getRandomVariationname(), true);
        xForm.addVariation(0.45, varFunc);
      }
    }
    // create optional linked transform 6
    if (Math.random() > 0.75) {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.05 + Math.random() * 0.2);
      xForm.setColorSymmetry(0.10 + Math.random() * 0.2);

      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.70711);
      xForm.setPostCoeff10(0.70711);
      xForm.setPostCoeff01(-0.70711);
      xForm.setPostCoeff11(0.70711);
      xForm.setPostCoeff20(0);
      xForm.setPostCoeff21(0);

      xForm.getModifiedWeights()[5] = 0;

      xForm5.getModifiedWeights()[0] = 0;
      xForm5.getModifiedWeights()[1] = 0;
      xForm5.getModifiedWeights()[2] = 0;
      xForm5.getModifiedWeights()[3] = 0;
      xForm5.getModifiedWeights()[4] = 0;

      {
        VariationFunc varFunc = VariationFuncList.getVariationFuncInstance(VariationFuncList.getRandomVariationname(), true);
        xForm.addVariation(0.1 + Math.random() * 0.6, varFunc);
      }
    }
    // create final transform 1
    {
      XForm xForm = new XForm();
      layer.getFinalXForms().add(xForm);
      xForm.setWeight(0);
      xForm.setColorSymmetry(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(0);

      XFormTransformService.rotate(xForm, Math.random() * 360.0, true);
      XFormTransformService.localTranslate(xForm, 1.0 - 2.0 * Math.random(), 1.0 - 2.0 * Math.random(), true);

      String variations[] = { "cross", "boarders2", "boarders", "butterfly", "cos", "cosh", "cosine", "cross2", "csc", "cylinder", "cylinder_apo", "dc_ztransl", "elliptic", "eyefish", "fibonacci2", "heart_wf", "hypertile1", "loonie", "mobius", "perspective", "popcorn", "popcorn2_3D", "ripple", "roundspher3D", "scry_3D", "sec", "secant2", "separation", "shredlin", "sin", "spherical", "spiral", "stripes", "unpolar", "waves2", "waves4_wf", "whorl", "xtrb", "rays1", "rays2", "rays3" };
      String varName = Math.random() < 0.33 ? "cross" : Math.random() < 0.33 ? "rays2" : variations[(int) (Math.random() * variations.length)];

      xForm.addVariation(1.57, VariationFuncList.getVariationFuncInstance(varName, true));

    }
    layer.randomizeColors();
    return flame;
  }
View Full Code Here


    pProject.getMotions().add(amp14);

    for (Flame flame : pProject.getFlames()) {
      PropertyModel model = AnimationModelService.createModel(flame);
      for (int layerIdx = 0; layerIdx < flame.getLayers().size(); layerIdx++) {
        Layer layer = flame.getLayers().get(layerIdx);
        if (layer.getXForms().size() > 0) {
          addXFormLink(model, amp0, flame, layerIdx, 0, AnimationModelService.PROPNAME_ANGLE);
          addXFormLink(model, amp1, flame, layerIdx, 0, AnimationModelService.PROPNAME_ORIGIN_X);
          addXFormLink(model, amp2, flame, layerIdx, 0, AnimationModelService.PROPNAME_ORIGIN_Y);
        }

        if (layer.getXForms().size() > 1) {
          addXFormLink(model, amp3, flame, layerIdx, 1, AnimationModelService.PROPNAME_ANGLE);
          addXFormLink(model, amp4, flame, layerIdx, 1, AnimationModelService.PROPNAME_ORIGIN_X);
          addXFormLink(model, amp5, flame, layerIdx, 1, AnimationModelService.PROPNAME_ORIGIN_Y);
        }

        if (layer.getXForms().size() > 2) {
          addXFormLink(model, amp7, flame, layerIdx, 2, AnimationModelService.PROPNAME_ANGLE);
          addXFormLink(model, amp8, flame, layerIdx, 2, AnimationModelService.PROPNAME_ORIGIN_X);
          addXFormLink(model, amp9, flame, layerIdx, 2, AnimationModelService.PROPNAME_ORIGIN_Y);
        }

        if (layer.getXForms().size() > 3) {
          addXFormLink(model, amp10, flame, layerIdx, 3, AnimationModelService.PROPNAME_ANGLE);
          addXFormLink(model, amp11, flame, layerIdx, 3, AnimationModelService.PROPNAME_ORIGIN_X);
          addXFormLink(model, amp12, flame, layerIdx, 3, AnimationModelService.PROPNAME_ORIGIN_Y);
        }

        if (layer.getFinalXForms().size() > 0) {
          addFinalXFormLink(model, amp14, flame, layerIdx, 0, AnimationModelService.PROPNAME_ZOOM);
        }
      }
    }
  }
View Full Code Here

public class Bubbles3DRandomFlameGenerator extends RandomFlameGenerator {

  @Override
  protected Flame prepareFlame(RandomFlameGeneratorState pState) {
    Flame flame = new Flame();
    Layer layer = flame.getFirstLayer();
    flame.setCentreX(0.0);
    flame.setCentreY(0.0);
    flame.setCamPitch(49.0);
    flame.setCamYaw(12.0);
    flame.setCamPerspective(0.12);
    flame.setPixelsPerUnit(200);
    layer.getFinalXForms().clear();
    layer.getXForms().clear();
    // 1st xForm
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(1.0 + Math.random() * 100.0);
      if (Math.random() < 0.75) {
        xForm.addVariation(0.05 + Math.random() * 0.5, VariationFuncList.getVariationFuncInstance("bubble", true));
      }
      else {
        VariationFunc varFunc = VariationFuncList.getVariationFuncInstance("bubble2", true);
        varFunc.setParameter("z", -0.5 - Math.random() * 2.0);
        xForm.addVariation(0.25 + Math.random() * 0.5, varFunc);
      }
      xForm.addVariation(0.5 + 1.5 * Math.random(), VariationFuncList.getVariationFuncInstance("pre_blur", true));
      final String[] workingFncList = { "fan2", "blade", "blade3D", "blob", "blob3D", "bwraps7", "cell", "cannabiscurve_wf",
          "cloverleaf_wf", "cos", "cot", "coth", "cross", "csch", "diamond", "disc", "edisc", "epispiral_wf", "fan", "fisheye",
          "eyefish", "flux", "heart", "julia", "julian", "juliascope", "log", "parabola", "power", "epispiral",
          "pre_subflame_wf", "rectangles", "rose_wf", "sech", "separation", "split", "truchet", "wedge", "zcone" };
      final String[] fncList = Math.random() < 0.5 ? workingFncList : ExperimentalSimpleRandomFlameGenerator.FNCLST_EXPERIMENTAL;

      VariationFunc varFunc;
      if (Math.random() < 0.5) {
        varFunc = VariationFuncList.getVariationFuncInstance(VariationFuncList.getRandomVariationname());
      }
      else {
        varFunc = VariationFuncList.getVariationFuncInstance(fncList[(int) (fncList.length * Math.random())], true);
      }

      xForm.addVariation(-0.02 + 0.04 * Math.random(), varFunc);

      double shape = Math.random();
      if (shape < 0.125) {
        xForm.addVariation(0.001 + Math.random() * 0.01, VariationFuncList.getVariationFuncInstance("hexes", true));
      }
      else if (shape < 0.25) {
        xForm.addVariation(0.001 + Math.random() * 0.01, VariationFuncList.getVariationFuncInstance("oscilloscope", true));
      }
      else if (shape < 0.5) {
        xForm.addVariation(0.001 + Math.random() * 0.01, VariationFuncList.getVariationFuncInstance(VariationFuncList.getRandomVariationname(), true));
      }

      if (Math.random() > 0.33) {
        XFormTransformService.globalTranslate(xForm, -1.0 + 2.0 * Math.random(), -1.0 + 2.0 * Math.random(), true);
      }
      if (Math.random() > 0.33) {
        XFormTransformService.rotate(xForm, -32.0 + Math.random() * 72.0, false);
      }
      if (Math.random() > 0.33) {
        XFormTransformService.scale(xForm, 0.8 + Math.random() * 0.4, true, false);
      }
      xForm.setColor(0.0);
      xForm.setColorSymmetry(0.0);
    }
    // 2nd xForm
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(1.0 + Math.random() * 50.0);
      int fncCount = ExperimentalSimpleRandomFlameGenerator.FNCLST_EXPERIMENTAL.length;
      String fncName = Math.random() > 0.5 ? ExperimentalSimpleRandomFlameGenerator.FNCLST_EXPERIMENTAL[(int) (fncCount * Math.random())] : "eyefish";
      xForm.addVariation(-1.5 + 2 * Math.random() * 3.0, VariationFuncList.getVariationFuncInstance(fncName, true));
      xForm.addVariation(1.0 - 3.5 * Math.random(), VariationFuncList.getVariationFuncInstance("hemisphere", true));
      xForm.setColor(0.0);
      xForm.setColorSymmetry(0.0);
      if (Math.random() > 0.33) {
        XFormTransformService.globalTranslate(xForm, -3.0 + 62.0 * Math.random(), -3.0 + 6.0 * Math.random(), false);
      }
      if (Math.random() > 0.33) {
        XFormTransformService.rotate(xForm, -32.0 + Math.random() * 72.0, false);
      }
      if (Math.random() > 0.33) {
        XFormTransformService.scale(xForm, 0.8 + Math.random() * 0.4, true, false);
      }
    }
    // 3rd xForm   
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(1.0 + Math.random() * 100);
      VariationFunc varFunc = VariationFuncList.getVariationFuncInstance(Math.random() > 0.5 ? "julia3Dz" : "julia3D", true);
      int idx = Math.random() > 0.5 ? 2 : (int) (-20 + Math.random() * 40);
      if (idx == 0 || idx == 1) {
        idx = 2;
View Full Code Here

    DefaultRenderThreadPersistentState state = (DefaultRenderThreadPersistentState) pState;
    currSample = state.currSample;
    startIter = state.startIter;
    for (DefaultRenderThreadPersistentState.IterationState persist : state.getLayerState()) {
      RenderPacket packet = renderPackets.get(persist.packetIdx);
      Layer layer = packet.getFlame().getLayers().get(persist.layerIdx);
      DefaultRenderIterationState restored = createState(packet, layer);
      restored.xf = (persist.xfIndex >= 0) ? restored.layer.getXForms().get(persist.xfIndex) : null;
      restored.affineT = persist.affineT != null ? persist.affineT.makeCopy() : null;
      restored.varT = persist.varT != null ? persist.varT.makeCopy() : null;
      restored.p = persist.p != null ? persist.p.makeCopy() : null;
View Full Code Here

    xform = new XForm();
    fnc = new NBlurFunc();
    for (String paramName : getParamNames()) {
      fnc.setParameter(paramName, params.get(paramName));
    }
    fnc.init(pFlameTransformationContext, new Layer(), xform, 1.0);
  }
View Full Code Here

    xform = new XForm();
    fnc = new XHeartBlurWFFunc();
    for (String paramName : getParamNames()) {
      fnc.setParameter(paramName, params.get(paramName));
    }
    fnc.init(pFlameTransformationContext, new Layer(), xform, 1.0);
  }
View Full Code Here

public class SubFlameRandomFlameGenerator extends RandomFlameGenerator {

  public Flame embedFlame(Flame pSubFlame) throws Exception {
    Flame flame = new Flame();
    flame.assign(pSubFlame);
    Layer layer = flame.getFirstLayer();

    layer.getFinalXForms().clear();
    layer.getXForms().clear();
    flame.getFirstLayer().setPalette(pSubFlame.getFirstLayer().getPalette().makeCopy());
    // 1st xForm
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.5);
      {
        {
          SubFlameWFFunc var = new SubFlameWFFunc();
          String flameXML = new FlameWriter().getFlameXML(pSubFlame);
          var.setRessource("flame", flameXML.getBytes());
          xForm.addVariation(1, var);
        }
      }
      xForm.setColor(0);
      xForm.setColorSymmetry(-0.22);
    }
    // 2nd xForm
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.25 + Math.random() * 0.5);
      xForm.setCoeff00(0.17254603006834707);
      xForm.setCoeff01(0.6439505508593787);
      xForm.setCoeff10(-0.6439505508593787);
      xForm.setCoeff11(0.17254603006834707);
      xForm.setCoeff20(1.5 + Math.random() * 2.5);
      xForm.setCoeff21(-0.25 - Math.random() * 0.35);
      xForm.addVariation(1, VariationFuncList.getVariationFuncInstance("linear3D", true));
      xForm.setColor(Math.random());
      xForm.setColorSymmetry(-0.62);
    }
    // 3rd xForm
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.25 + Math.random() * 0.5);
      xForm.setCoeff00(0.17254603006834707);
      xForm.setCoeff01(0.6439505508593787);
      xForm.setCoeff10(-0.6439505508593787);
      xForm.setCoeff11(0.17254603006834707);
View Full Code Here

    xform = new XForm();
    fnc = new StarBlurFunc();
    for (String paramName : getParamNames()) {
      fnc.setParameter(paramName, params.get(paramName));
    }
    fnc.init(pFlameTransformationContext, new Layer(), xform, 1.0);
  }
View Full Code Here

public class SimpleTilingRandomFlameGenerator extends RandomFlameGenerator {

  @Override
  protected Flame prepareFlame(RandomFlameGeneratorState pState) {
    Flame flame = new Flame();
    Layer layer = flame.getFirstLayer();
    flame.setCentreX(0.0);
    flame.setCentreY(0.0);
    flame.setPixelsPerUnit(200);
    layer.getFinalXForms().clear();
    layer.getXForms().clear();
    // init
    // 1st XForm
    {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.4 + Math.random() * 50.0);

      String fName = ExperimentalSimpleRandomFlameGenerator.FNCLST_EXPERIMENTAL[(int) (Math.random() * ExperimentalSimpleRandomFlameGenerator.FNCLST_EXPERIMENTAL.length)];
      xForm.addVariation(0.01 + 0.4 * Math.random(), VariationFuncList.getVariationFuncInstance(fName, true));
      xForm.addVariation(0.12 + 0.3 * Math.random(), VariationFuncList.getVariationFuncInstance("linear3D", true));
      xForm.setColor(0.87 + Math.random() * 0.1);
    }
    // 2nd XForm
    boolean twoPrimaryXForms = Math.random() > 0.33;
    boolean linkedXForms = Math.random() < 0.25;
    if (twoPrimaryXForms) {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.4 + Math.random() * 150.0);

      xForm.addVariation(1.0, VariationFuncList.getVariationFuncInstance(VariationFuncList.getRandomVariationname(), true));
      xForm.setColorSymmetry(-1);
      xForm.setColor(0.89 + Math.random() * 0.06);
      XFormTransformService.scale(xForm, 0.75 + Math.random() * 0.25, Math.random() > 0.125, Math.random() < 0.875);
      XFormTransformService.rotate(xForm, -180.0 + Math.random() * 360.0);
    }
    // Tiling
    int nForms = 2 + (int) (Math.random() * 5);
    for (int i = 0; i < nForms; i++) {
      XForm xForm = new XForm();
      layer.getXForms().add(xForm);
      xForm.setWeight(0.25 + Math.random() * 0.5);
      xForm.addVariation(1.0, VariationFuncList.getVariationFuncInstance("linear3D", true));
      if (Math.random() > 0.75) {
        XFormTransformService.scale(xForm, 0.25 + Math.random() * 0.75, Math.random() > 0.25, Math.random() < 0.75);
      }
      else {
        XFormTransformService.scale(xForm, 0.75 + Math.random() * 0.25, Math.random() > 0.25, Math.random() < 0.25);
      }
      XFormTransformService.rotate(xForm, Math.random() * 360.0);
      XFormTransformService.localTranslate(xForm, -2.0 + Math.random() * 4.0, -2.0 + Math.random() * 4.0);
      xForm.setColor(Math.random());
    }
    if (linkedXForms) {
      for (int i = 0; i < layer.getXForms().size(); i++) {
        if (i == 0) {
          for (int j = 0; j < layer.getXForms().size(); j++) {
            layer.getXForms().get(i).getModifiedWeights()[j] = (j != 1) ? 0 : 1;
          }
        }
        else {
          for (int j = 0; j < layer.getXForms().size(); j++) {
            layer.getXForms().get(i).getModifiedWeights()[j] = (j != 1) ? 1 : 0;
          }
        }
      }
    }
    else {
      for (int i = 0; i < layer.getXForms().size(); i++) {
        if (i == 0) {
          double wg = Math.random() * 12.0;
          if (Math.random() < 0.25) {
            wg = 0.0;
          }
          for (int j = 0; j < layer.getXForms().size(); j++) {
            layer.getXForms().get(i).getModifiedWeights()[j] = (j != 1) ? wg : 1;
          }
        }
        else {
          double wg = Math.random() * 12.0;
          if (Math.random() < 0.25) {
            wg = 0.0;
          }
          for (int j = 0; j < layer.getXForms().size(); j++) {
            layer.getXForms().get(i).getModifiedWeights()[j] = (j != 1) ? 1 : wg;
          }
        }
      }
    }
    return flame;
View Full Code Here

    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);
  }
View Full Code Here

TOP

Related Classes of org.jwildfire.create.tina.base.Layer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.