use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class AnimationModelService method addLayerToModel.
@SuppressWarnings("unchecked")
private static void addLayerToModel(PropertyModel pNode, int pIndex, Layer pLayer, PropertyVisitor pVisitor, VisitState pState) {
Class<?> cls = pLayer.getClass();
PropertyModel layerNode = new PropertyModel(pNode, PROPNAME_LAYER + (pIndex + 1), cls);
pNode.getChields().add(layerNode);
for (Field field : cls.getDeclaredFields()) {
if (pState.isCancelSignalled()) {
return;
}
field.setAccessible(true);
if (field.getAnnotation(AnimAware.class) != null) {
Class<?> fCls = field.getType();
if (isPrimitiveProperty(fCls)) {
PlainProperty property = new PlainProperty(layerNode, field.getName(), cls);
layerNode.getProperties().add(property);
if (pVisitor != null) {
pState.updateState(pVisitor.accept(pLayer, field, property));
}
} else if (fCls == List.class) {
ParameterizedType listType = (ParameterizedType) field.getGenericType();
Class<?> listSubClass = (Class<?>) listType.getActualTypeArguments()[0];
if (listSubClass.isAssignableFrom(XForm.class)) {
List<XForm> xForms;
try {
xForms = (List<XForm>) field.get(pLayer);
} catch (Exception e) {
xForms = null;
e.printStackTrace();
}
if (xForms != null) {
int idx = 0;
for (XForm xForm : xForms) {
addXFormToModel(layerNode, field.getName().indexOf("final") == 0, idx++, xForm, pVisitor, pState);
}
}
}
}
}
}
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class JWFScriptController method addLayer.
private void addLayer(StringBuilder pSB, Layer pLayer, int pIndex) {
pSB.append(" // create layer " + (pIndex + 1) + "\n");
pSB.append(" {\n");
pSB.append(" Layer layer = new Layer();\n");
pSB.append(" flame.getLayers().add(layer);\n");
pSB.append(" layer.setWeight(" + Tools.doubleToString(pLayer.getWeight()) + ");\n");
pSB.append(" layer.setVisible(" + pLayer.isVisible() + ");\n");
pSB.append(" // create a random gradient\n");
pSB.append(" new RandomGradientMutation().execute(layer);\n");
for (int i = 0; i < pLayer.getXForms().size(); i++) {
XForm xForm = pLayer.getXForms().get(i);
addXForm(pSB, xForm, i, false);
}
for (int i = 0; i < pLayer.getFinalXForms().size(); i++) {
XForm xForm = pLayer.getFinalXForms().get(i);
addXForm(pSB, xForm, i, true);
}
// sb.append(" // create the gradient\n");
// for (int i = 0; i < RGBPalette.PALETTE_SIZE; i++) {
// RGBColor color = layer.getPalette().getColor(i);
// sb.append(" flame.getPalette().setColor(" + i + ", " + color.getRed() + ", " + color.getGreen() + ", " + color.getBlue() + ");\n");
// }
pSB.append(" }\n");
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method xFormModGammaRandomizeBtn_Clicked.
public void xFormModGammaRandomizeBtn_Clicked(boolean pWholeFractal) {
if (pWholeFractal) {
Flame flame = getCurrFlame();
if (flame != null) {
saveUndoPoint();
for (Layer layer : flame.getLayers()) {
for (XForm xForm : layer.getXForms()) {
xForm.randomizeModGamma();
}
}
refreshXFormUI(getCurrXForm(XFormType.BOTH));
refreshFlameImage(true, false, 1, true, false);
}
} else {
XForm xForm = getCurrXForm(XFormType.NORMAL);
if (xForm != null) {
saveUndoPoint();
xForm.randomizeModGamma();
refreshXFormUI(xForm);
refreshFlameImage(true, false, 1, true, false);
}
}
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method xFormModLocalGammaResetAllBtn_Clicked.
public void xFormModLocalGammaResetAllBtn_Clicked(boolean pWholeFractal) {
if (pWholeFractal) {
Flame flame = getCurrFlame();
if (flame != null) {
saveUndoPoint();
for (Layer layer : flame.getLayers()) {
for (XForm xForm : layer.getXForms()) {
xForm.resetModColorEffects();
}
}
refreshXFormUI(getCurrXForm(XFormType.BOTH));
refreshFlameImage(true, false, 1, true, false);
}
} else {
XForm xForm = getCurrXForm(XFormType.NORMAL);
if (xForm != null) {
saveUndoPoint();
xForm.resetModColorEffects();
refreshXFormUI(xForm);
refreshFlameImage(true, false, 1, true, false);
}
}
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method affineC21REd_changed.
public void affineC21REd_changed() {
if (gridRefreshing || cmbRefreshing) {
return;
}
XForm xForm = getCurrXForm();
if (xForm != null) {
double value = Tools.stringToDouble(data.affineC21REd.getText());
if (data.affineEditPostTransformButton.isSelected()) {
xForm.setPostCoeff21(value);
} else {
xForm.setCoeff21(value);
}
transformationChanged(true);
}
}
Aggregations