Search in sources :

Example 41 with XForm

use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.

the class TinaController method nonlinearParamsPriorityChanged.

public void nonlinearParamsPriorityChanged(int pIdx, int pPriority) {
    if (cmbRefreshing) {
        return;
    }
    cmbRefreshing = true;
    try {
        XForm xForm = getCurrXForm();
        if (xForm != null) {
            saveUndoPoint();
            if (pIdx < xForm.getVariationCount()) {
                final Variation var = xForm.getVariation(pIdx);
                var.setPriority(pPriority);
                if (pPriority == 0 || pPriority == 1) {
                    data.TinaNonlinearControlsRows[pIdx].getNonlinearParamsPreButton().setSelected(false);
                }
                if (pPriority == 0 || pPriority == -1) {
                    data.TinaNonlinearControlsRows[pIdx].getNonlinearParamsPostButton().setSelected(false);
                }
                refreshFlameImage(true, false, 1, true, false);
            }
        }
    } finally {
        cmbRefreshing = false;
    }
}
Also used : XForm(org.jwildfire.create.tina.base.XForm) Variation(org.jwildfire.create.tina.variation.Variation)

Example 42 with XForm

use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.

the class TinaController method affineC01REd_changed.

public void affineC01REd_changed() {
    if (gridRefreshing || cmbRefreshing) {
        return;
    }
    XForm xForm = getCurrXForm();
    if (xForm != null) {
        double value = Tools.stringToDouble(data.affineC01REd.getText());
        if (data.affineEditPostTransformButton.isSelected()) {
            xForm.setPostCoeff01(value);
        } else {
            xForm.setCoeff01(value);
        }
        transformationChanged(true);
    }
}
Also used : XForm(org.jwildfire.create.tina.base.XForm)

Example 43 with XForm

use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.

the class TinaController method addLinkedXForm.

public void addLinkedXForm() {
    int row = data.transformationsTable.getSelectedRow();
    if (row < 0 || row >= getCurrLayer().getXForms().size()) {
        return;
    }
    saveUndoPoint();
    addXForm();
    int fromId = row;
    int toId = getCurrLayer().getXForms().size() - 1;
    for (int i = 0; i < getCurrLayer().getXForms().size(); i++) {
        XForm xForm = getCurrLayer().getXForms().get(i);
        if (i == fromId) {
            XForm toXForm = getCurrLayer().getXForms().get(toId);
            for (int j = 0; j < getCurrLayer().getXForms().size(); j++) {
                toXForm.getModifiedWeights()[j] = xForm.getModifiedWeights()[j];
                xForm.getModifiedWeights()[j] = (j == toId) ? 1 : 0;
            }
            xForm.setDrawMode(DrawMode.HIDDEN);
        } else {
            xForm.getModifiedWeights()[toId] = 0;
            if (i == toId)
                xForm.setColorSymmetry(1.0);
        }
    }
    refreshFlameImage(true, false, 1, true, false);
}
Also used : XForm(org.jwildfire.create.tina.base.XForm)

Example 44 with XForm

use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.

the class TinaController method affineEditPostTransformButton_clicked.

public void affineEditPostTransformButton_clicked() {
    if (refreshing) {
        return;
    }
    refreshing = true;
    try {
        xFormControls.setUpMotionControls();
        forceTriangleMode();
        XForm xForm = getCurrXForm();
        if (flamePanel != null) {
            flamePanel.setEditPostTransform(data.affineEditPostTransformButton.isSelected());
        }
        xFormControls.enableControls(xForm);
        refreshXFormUI(xForm);
        refreshFlameImage(true, false, 1, false, false);
        data.affineEditPostTransformSmallButton.setSelected(data.affineEditPostTransformButton.isSelected());
    } finally {
        refreshing = false;
    }
}
Also used : XForm(org.jwildfire.create.tina.base.XForm)

Example 45 with XForm

use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.

the class TinaController method nonlinearVarCmbChanged.

public void nonlinearVarCmbChanged(int pIdx) {
    if (cmbRefreshing) {
        return;
    }
    boolean oldCmbRefreshing = cmbRefreshing;
    cmbRefreshing = true;
    try {
        XForm xForm = getCurrXForm();
        if (xForm != null) {
            saveUndoPoint();
            String fName = (String) data.TinaNonlinearControlsRows[pIdx].getNonlinearVarCmb().getSelectedItem();
            Variation var;
            if (pIdx < xForm.getVariationCount()) {
                var = xForm.getVariation(pIdx);
                if (fName == null || fName.length() == 0) {
                    xForm.removeVariation(var);
                } else {
                    if (var.getFunc() == null || !var.getFunc().getName().equals(fName)) {
                        VariationFunc varFunc = VariationFuncList.getVariationFuncInstance(fName);
                        var.setFunc(varFunc);
                        var.setPriority(varFunc.getPriority());
                    }
                }
            } else {
                var = new Variation();
                String varStr = data.TinaNonlinearControlsRows[pIdx].getNonlinearVarREd().getText();
                if (varStr == null || varStr.length() == 0) {
                    varStr = "0";
                }
                VariationFunc varFunc = VariationFuncList.getVariationFuncInstance(fName);
                var.setFunc(varFunc);
                var.setPriority(varFunc.getPriority());
                var.setAmount(Tools.stringToDouble(varStr));
                xForm.addVariation(var);
            }
            refreshParamControls(data.TinaNonlinearControlsRows[pIdx], xForm, var, true);
            refreshXFormUI(xForm);
            refreshFlameImage(true, false, 1, true, false);
            data.transformationsTable.invalidate();
            data.transformationsTable.repaint();
        }
    } finally {
        cmbRefreshing = oldCmbRefreshing;
    }
}
Also used : XForm(org.jwildfire.create.tina.base.XForm) Variation(org.jwildfire.create.tina.variation.Variation) VariationFunc(org.jwildfire.create.tina.variation.VariationFunc)

Aggregations

XForm (org.jwildfire.create.tina.base.XForm)121 Layer (org.jwildfire.create.tina.base.Layer)73 Flame (org.jwildfire.create.tina.base.Flame)55 VariationFunc (org.jwildfire.create.tina.variation.VariationFunc)34 XYZPoint (org.jwildfire.create.tina.base.XYZPoint)19 Variation (org.jwildfire.create.tina.variation.Variation)15 Test (org.junit.Test)8 ArrayList (java.util.ArrayList)7 RenderedFlame (org.jwildfire.create.tina.render.RenderedFlame)7 FlameWriter (org.jwildfire.create.tina.io.FlameWriter)6 Linear3DFunc (org.jwildfire.create.tina.variation.Linear3DFunc)6 RandomGradientMutation (org.jwildfire.create.tina.mutagen.RandomGradientMutation)4 RGBPalette (org.jwildfire.create.tina.palette.RGBPalette)4 ZigguratRandomGenerator (org.jwildfire.create.tina.random.ZigguratRandomGenerator)4 FlameRenderer (org.jwildfire.create.tina.render.FlameRenderer)4 Field (java.lang.reflect.Field)3 SubFlameWFFunc (org.jwildfire.create.tina.variation.SubFlameWFFunc)3 DefaultTableModel (javax.swing.table.DefaultTableModel)2 QualityProfile (org.jwildfire.base.QualityProfile)2 ResolutionProfile (org.jwildfire.base.ResolutionProfile)2