Package org.jwildfire.create.tina.base

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


          }
        }
        String hs = flameXML.substring(ps + 7, pe);
        atts = parseFlameAttributes(flame, hs);
      }
      Layer layer = flame.getFirstLayer();
      readXForms(flameXML, flame, layer);
      readFinalXForms(flameXML, flame, layer);
      readColors(flameXML, layer);
      readMotionCurves(layer.getPalette(), atts, "palette_");
    }
    return res;
  }
View Full Code Here


        if (layerEnd < 0)
          break;
        pLayers = layerEnd + ATTR_LAYER.length() + 3;
        String layerXML = flameXML.substring(layerStart, pLayers);

        Layer layer = new Layer();
        flame.getLayers().add(layer);
        XMLAttributes atts;
        // Layer attributes
        {
          int ps = layerXML.indexOf("<" + ATTR_LAYER + " ");
          int pe = layerXML.indexOf(">", ps);
          String hs = layerXML.substring(ps + 7, pe);
          atts = parseLayerAttributes(layer, hs);
        }

        readXForms(layerXML, flame, layer);
        readFinalXForms(layerXML, flame, layer);
        readColors(layerXML, layer);
        readMotionCurves(layer.getPalette(), atts, "palette_");
      }
    }
    return res;
  }
View Full Code Here

  public String getFlameXML(Flame pFlame) throws Exception {
    SimpleXMLBuilder xb = new SimpleXMLBuilder();
    // Flame
    List<SimpleXMLBuilder.Attribute<?>> attrList = createFlameAttributes(pFlame, xb);
    Layer layer = pFlame.getFirstLayer();
    writeMotionCurves(layer.getPalette(), xb, attrList, "palette_", Collections.<String> emptyList());

    xb.beginElement("flame", attrList);
    // XForm
    for (XForm xForm : layer.getXForms()) {
      xb.emptyElement("xform", createXFormAttrList(xb, layer, xForm));
    }
    // FinalXForms
    for (XForm xForm : layer.getFinalXForms()) {
      xb.emptyElement("finalxform", createXFormAttrList(xb, layer, xForm));
    }
    addPalette(xb, layer);
    xb.endElement("flame");
    return xb.buildXML();
View Full Code Here

    for (Layer layer : res.getLayers()) {
      layer.setWeight(layer.getWeight() * (1.0 - fScl));
    }
    // add and fade in layerz of the dest flame
    for (Layer layer : pFlame2.getLayers()) {
      Layer copy = layer.makeCopy();
      copy.setWeight(copy.getWeight() * fScl);
      res.getLayers().add(copy);
    }
    return res;
  }
View Full Code Here

    res.getLayers().clear();
    int layerSize1 = pFlame1.getLayers().size();
    int layerSize2 = pFlame2.getLayers().size();
    int maxLayerSize = layerSize1 > layerSize2 ? layerSize1 : layerSize2;
    for (int lIdx = 0; lIdx < maxLayerSize; lIdx++) {
      Layer layer = new Layer();
      res.getLayers().add(layer);
      // Morph layers
      if (lIdx < layerSize1 && lIdx < layerSize2) {
        Layer layer1 = pFlame1.getLayers().get(lIdx);
        Layer layer2 = pFlame2.getLayers().get(lIdx);
        layer.assign(layer1);
        layer.getXForms().clear();
        layer.getFinalXForms().clear();
        layer.setWeight(morphValue(layer1.getWeight(), layer2.getWeight(), fScl));
        // morph XForms
        {
          int size1 = layer1.getXForms().size();
          int size2 = layer2.getXForms().size();
          int maxSize = size1 > size2 ? size1 : size2;
          for (int i = 0; i < maxSize; i++) {
            XForm xForm1 = i < size1 ? layer1.getXForms().get(i) : null;
            if (xForm1 == null) {
              xForm1 = new XForm();
              xForm1.addVariation(0.0, VariationFuncList.getVariationFuncInstance("linear3D", true));
              xForm1.setWeight(0.0);
            }

            XForm xForm2 = i < size2 ? layer2.getXForms().get(i) : null;
            if (xForm2 == null) {
              xForm2 = new XForm();
              xForm2.addVariation(0.0, VariationFuncList.getVariationFuncInstance("linear3D", true));
              xForm2.setWeight(0.0);
            }

            XForm morphedXForm = morphXForms(pPrefs, xForm1, xForm2, fScl, pFrame, pFrames);
            layer.getXForms().add(morphedXForm);
          }
        }
        // morph final XForms
        {
          int size1 = layer1.getFinalXForms().size();
          int size2 = layer2.getFinalXForms().size();
          int maxSize = size1 > size2 ? size1 : size2;
          for (int i = 0; i < maxSize; i++) {
            XForm xForm1 = i < size1 ? layer1.getFinalXForms().get(i) : null;
            if (xForm1 == null) {
              xForm1 = new XForm();
              xForm1.addVariation(0.0, VariationFuncList.getVariationFuncInstance("linear3D", true));
              xForm1.setWeight(0.0);
            }

            XForm xForm2 = i < size2 ? layer2.getFinalXForms().get(i) : null;
            if (xForm2 == null) {
              xForm2 = new XForm();
              xForm2.addVariation(0.0, VariationFuncList.getVariationFuncInstance("linear3D", true));
              xForm2.setWeight(0.0);
            }

            XForm morphedXForm = morphXForms(pPrefs, xForm1, xForm2, fScl, pFrame, pFrames);
            layer.getFinalXForms().add(morphedXForm);
          }
        }
        // morph colors
        RGBPalette palette1 = layer1.getPalette();
        RGBPalette palette2 = layer2.getPalette();
        for (int i = 0; i < RGBPalette.PALETTE_SIZE; i++) {
          RGBColor color1 = palette1.getColor(i);
          RGBColor color2 = palette2.getColor(i);
          int red = Tools.roundColor(color1.getRed() + (color2.getRed() - color1.getRed()) * fScl);
          int green = Tools.roundColor(color1.getGreen() + (color2.getGreen() - color1.getGreen()) * fScl);
          int blue = Tools.roundColor(color1.getBlue() + (color2.getBlue() - color1.getBlue()) * fScl);
          layer.getPalette().setColor(i, red, green, blue);
        }
      }
      // fade out layer1 to black
      else if (lIdx < layerSize1) {
        Layer layer1 = pFlame1.getLayers().get(lIdx);
        layer.assign(layer1);
        layer.setWeight(morphValue(layer1.getWeight(), 0.0, fScl));
      }
      // fade in layer2 from black
      else if (lIdx < layerSize2) {
        Layer layer2 = pFlame2.getLayers().get(lIdx);
        layer.assign(layer2);
        layer.setWeight(morphValue(0.0, layer2.getWeight(), fScl));
      }
    }
    // morph camera settings etc.
    morphFlameValues(pFlame1, pFlame2, fScl, res);
    return res;
View Full Code Here

              txt.setVAlign(VAlignment.BOTTOM);
              txt.transformImage(img);
            }

            if (data.layerPreviewBtn.isSelected()) {
              Layer onlyVisibleLayer = null;
              for (Layer layer : getCurrFlame().getLayers()) {
                if (layer.isVisible()) {
                  if (onlyVisibleLayer == null) {
                    onlyVisibleLayer = layer;
                  }
View Full Code Here

      }

      @Override
      public Object getValueAt(int rowIndex, int columnIndex) {
        if (getCurrFlame() != null) {
          Layer layer = getCurrFlame().getLayers().get(rowIndex);
          switch (columnIndex) {
            case COL_LAYER:
              return "Layer" + String.valueOf(rowIndex + 1);
            case COL_CAPTION:
              if (layer != null) {
                return layer.getName();
              }
            case COL_VISIBLE:
              if (layer != null) {
                return layer.isVisible() ? "1" : "0";
              }
            case COL_WEIGHT:
              return Tools.doubleToString(layer.getWeight());
          }
        }
        return null;
      }

      @Override
      public boolean isCellEditable(int row, int column) {
        return column == COL_CAPTION || column == COL_VISIBLE || column == COL_WEIGHT;
      }

      @Override
      public void setValueAt(Object aValue, int row, int column) {
        Layer layer = getCurrLayer();
        if (layer != null) {
          switch (column) {
            case COL_CAPTION:
              saveUndoPoint();
              layer.setName((String) aValue);
              break;
            case COL_VISIBLE:
              saveUndoPoint();
              layer.setVisible("1".equals(aValue));
              data.layerVisibleBtn.setSelected(layer.isVisible());
              refreshFlameImage(false);
              break;
            case COL_WEIGHT:
              saveUndoPoint();
              layer.setWeight(Tools.stringToDouble((String) aValue));
              data.layerWeightEd.setValue(layer.getWeight());
              // refreshed automatically:
              // refreshFlameImage(false);
              break;
          }
        }
View Full Code Here

      }

      @Override
      public Object getValueAt(int rowIndex, int columnIndex) {
        int transformIndex = data.transformationsTable.getSelectedRow();
        Layer layer = getCurrLayer();
        if (layer != null && transformIndex >= 0 && transformIndex < layer.getXForms().size()) {
          if (isXaosViewAsTo()) {
            switch (columnIndex) {
              case COL_TRANSFORM:
                return String.valueOf(transformIndex + 1) + " to " + String.valueOf(rowIndex + 1);
              case COL_WEIGHT:
                return Tools.doubleToString(layer.getXForms().get(transformIndex).getModifiedWeights()[rowIndex]);
              case COL_FROM:
                return getXFormCaption(layer.getXForms().get(transformIndex));
              case COL_TO:
                return getXFormCaption(layer.getXForms().get(rowIndex));
            }
          }
          else {
            switch (columnIndex) {
              case COL_TRANSFORM:
                return String.valueOf(transformIndex + 1) + " from " + String.valueOf(rowIndex + 1);
              case COL_WEIGHT:
                return Tools.doubleToString(layer.getXForms().get(rowIndex).getModifiedWeights()[transformIndex]);
              case COL_FROM:
                return getXFormCaption(layer.getXForms().get(rowIndex));
              case COL_TO:
                return getXFormCaption(layer.getXForms().get(transformIndex));
            }
          }
        }
        return null;
      }
View Full Code Here

    if (!gridRefreshing) {
      boolean oldGridRefreshing = gridRefreshing;
      boolean oldCmbRefreshing = cmbRefreshing;
      gridRefreshing = cmbRefreshing = true;
      try {
        Layer layer = getCurrLayer();
        int xaosRow = data.relWeightsTable.getSelectedRow();
        int transformRow = data.transformationsTable.getSelectedRow();
        if (layer != null && xaosRow >= 0 && xaosRow < layer.getXForms().size() && transformRow >= 0 && transformRow < layer.getXForms().size()) {
          if (isXaosViewAsTo()) {
            data.relWeightREd.setText(Tools.doubleToString(layer.getXForms().get(transformRow).getModifiedWeights()[xaosRow]));
          }
          else {
            data.relWeightREd.setText(Tools.doubleToString(layer.getXForms().get(xaosRow).getModifiedWeights()[transformRow]));
          }
        }
        else {
          data.relWeightREd.setText("");
        }
View Full Code Here

  }

  private void setRelWeight(double pValue) {
    if (gridRefreshing)
      return;
    Layer layer = getCurrLayer();
    int transformRow = data.transformationsTable.getSelectedRow();
    int xaosRow = data.relWeightsTable.getSelectedRow();
    if (layer != null && transformRow >= 0 && transformRow < layer.getXForms().size() && xaosRow >= 0 && xaosRow < layer.getXForms().size()) {
      if (isXaosViewAsTo()) {
        layer.getXForms().get(transformRow).getModifiedWeights()[xaosRow] = pValue;
      }
      else {
        layer.getXForms().get(xaosRow).getModifiedWeights()[transformRow] = pValue;
      }
      gridRefreshing = true;
      try {
        refreshRelWeightsTable();
        data.relWeightsTable.getSelectionModel().setSelectionInterval(xaosRow, xaosRow);
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.