| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- /*
- * Copyright (c) 2009-2012 jMonkeyEngine
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- package com.jme3.shader;
- import com.jme3.export.InputCapsule;
- import com.jme3.export.JmeExporter;
- import com.jme3.export.JmeImporter;
- import com.jme3.export.OutputCapsule;
- import com.jme3.export.Savable;
- import java.io.IOException;
- /**
- * represents a mapping between 2 ShaderNodeVariables
- *
- * @author Nehon
- */
- public class VariableMapping implements Savable {
- private ShaderNodeVariable leftVariable;
- private ShaderNodeVariable rightVariable;
- private String condition;
- private String leftSwizzling = "";
- private String rightSwizzling = "";
- /**
- * creates a VariableMapping
- */
- public VariableMapping() {
- }
- /**
- * creates a VariableMapping
- *
- * @param leftVariable the left hand side variable of the expression
- * @param leftSwizzling the swizzling of the left variable
- * @param rightVariable the right hand side variable of the expression
- * @param rightSwizzling the swizzling of the right variable
- * @param condition the condition for this mapping
- */
- public VariableMapping(ShaderNodeVariable leftVariable, String leftSwizzling, ShaderNodeVariable rightVariable, String rightSwizzling, String condition) {
- this.leftVariable = leftVariable;
- this.rightVariable = rightVariable;
- this.condition = condition;
- this.leftSwizzling = leftSwizzling;
- this.rightSwizzling = rightSwizzling;
- }
- /**
- *
- * @return the left variable
- */
- public ShaderNodeVariable getLeftVariable() {
- return leftVariable;
- }
- /**
- * sets the left variable
- *
- * @param leftVariable the left variable
- */
- public void setLeftVariable(ShaderNodeVariable leftVariable) {
- this.leftVariable = leftVariable;
- }
- /**
- *
- * @return the right variable
- */
- public ShaderNodeVariable getRightVariable() {
- return rightVariable;
- }
- /**
- * sets the right variable
- *
- * @param leftVariable the right variable
- */
- public void setRightVariable(ShaderNodeVariable rightVariable) {
- this.rightVariable = rightVariable;
- }
- /**
- *
- * @return the condition
- */
- public String getCondition() {
- return condition;
- }
- /**
- * sets the condition
- *
- * @param condition the condition
- */
- public void setCondition(String condition) {
- this.condition = condition;
- }
- /**
- *
- * @return the left swizzle
- */
- public String getLeftSwizzling() {
- return leftSwizzling;
- }
- /**
- * sets the left swizzle
- *
- * @param leftSwizzling the left swizzle
- */
- public void setLeftSwizzling(String leftSwizzling) {
- this.leftSwizzling = leftSwizzling;
- }
- /**
- *
- * @return the right swizzle
- */
- public String getRightSwizzling() {
- return rightSwizzling;
- }
- /**
- * sets the right swizzle
- *
- * @param leftSwizzling the right swizzle
- */
- public void setRightSwizzling(String rightSwizzling) {
- this.rightSwizzling = rightSwizzling;
- }
- /**
- * jme seralization (not used)
- *
- * @param ex the exporter
- * @throws IOException
- */
- public void write(JmeExporter ex) throws IOException {
- OutputCapsule oc = (OutputCapsule) ex.getCapsule(this);
- oc.write(leftVariable, "leftVariable", null);
- oc.write(rightVariable, "rightVariable", null);
- oc.write(condition, "condition", "");
- oc.write(leftSwizzling, "leftSwizzling", "");
- oc.write(rightSwizzling, "rightSwizzling", "");
- }
- /**
- * jme seralization (not used)
- *
- * @param im the importer
- * @throws IOException
- */
- public void read(JmeImporter im) throws IOException {
- InputCapsule ic = (InputCapsule) im.getCapsule(this);
- leftVariable = (ShaderNodeVariable) ic.readSavable("leftVariable", null);
- rightVariable = (ShaderNodeVariable) ic.readSavable("rightVariable", null);
- condition = ic.readString("condition", "");
- leftSwizzling = ic.readString("leftSwizzling", "");
- rightSwizzling = ic.readString("rightSwizzling", "");
- }
- @Override
- public String toString() {
- return "\n{" + leftVariable.toString() + (leftSwizzling.length() > 0 ? ("." + leftSwizzling) : "") + " = " + rightVariable.getType() + " " + rightVariable.getNameSpace() + "." + rightVariable.getName() + (rightSwizzling.length() > 0 ? ("." + rightSwizzling) : "") + " : " + condition + "}";
- }
- }
|