* Added MatParam.getValueAsString() to print out the material param value as it would appear in a J3M file.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7199 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
bb238c3c99
commit
ff344c6a96
@ -32,15 +32,22 @@
|
||||
|
||||
package com.jme3.material;
|
||||
|
||||
import com.jme3.asset.TextureKey;
|
||||
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 com.jme3.math.ColorRGBA;
|
||||
import com.jme3.math.Quaternion;
|
||||
import com.jme3.math.Vector2f;
|
||||
import com.jme3.math.Vector3f;
|
||||
import com.jme3.math.Vector4f;
|
||||
import com.jme3.renderer.GL1Renderer;
|
||||
import com.jme3.renderer.Renderer;
|
||||
import com.jme3.shader.Uniform;
|
||||
import com.jme3.shader.VarType;
|
||||
import com.jme3.texture.Texture;
|
||||
import com.jme3.texture.Texture.WrapMode;
|
||||
import java.io.IOException;
|
||||
|
||||
public class MatParam implements Savable, Cloneable {
|
||||
@ -49,7 +56,6 @@ public class MatParam implements Savable, Cloneable {
|
||||
protected String name;
|
||||
protected Object value;
|
||||
protected FixedFuncBinding ffBinding;
|
||||
// protected Uniform uniform;
|
||||
|
||||
public MatParam(VarType type, String name, Object value, FixedFuncBinding ffBinding){
|
||||
this.type = type;
|
||||
@ -85,13 +91,66 @@ public class MatParam implements Savable, Cloneable {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
// public Uniform getUniform() {
|
||||
// return uniform;
|
||||
// }
|
||||
//
|
||||
// public void setUniform(Uniform uniform) {
|
||||
// this.uniform = uniform;
|
||||
// }
|
||||
/**
|
||||
* Returns the material parameter value as it would appear in a J3M
|
||||
* file. E.g.<br/>
|
||||
* <code>
|
||||
* MaterialParameters {<br/>
|
||||
* ABC : 1 2 3 4<br/>
|
||||
* }<br/>
|
||||
* </code>
|
||||
* Assuming "ABC" is a Vector4 parameter, then the value
|
||||
* "1 2 3 4" would be returned by this method.
|
||||
* <br/><br/>
|
||||
* @return material parameter value as it would appear in a J3M file.
|
||||
*/
|
||||
public String getValueAsString(){
|
||||
switch (type){
|
||||
case Boolean:
|
||||
case Float:
|
||||
case Int:
|
||||
return value.toString();
|
||||
case Vector2:
|
||||
Vector2f v2 = (Vector2f) value;
|
||||
return v2.getX() + " " + v2.getY();
|
||||
case Vector3:
|
||||
Vector3f v3 = (Vector3f) value;
|
||||
return v3.getX() + " " + v3.getY() + " " + v3.getZ();
|
||||
case Vector4:
|
||||
// can be either ColorRGBA, Vector4f or Quaternion
|
||||
if (value instanceof Vector4f){
|
||||
Vector4f v4 = (Vector4f) value;
|
||||
return v4.getX() + " " + v4.getY() + " " +
|
||||
v4.getZ() + " " + v4.getW();
|
||||
}else if (value instanceof ColorRGBA){
|
||||
ColorRGBA color = (ColorRGBA) value;
|
||||
return color.getRed() + " " + color.getGreen() + " " +
|
||||
color.getBlue() + " " + color.getAlpha();
|
||||
}else if (value instanceof Quaternion){
|
||||
Quaternion quat = (Quaternion) value;
|
||||
return quat.getX() + " " + quat.getY() + " " +
|
||||
quat.getZ() + " " + quat.getW();
|
||||
}else{
|
||||
throw new UnsupportedOperationException("Unexpected Vector4 type: " + value);
|
||||
}
|
||||
case Texture2D:
|
||||
case Texture3D:
|
||||
case TextureArray:
|
||||
case TextureBuffer:
|
||||
case TextureCubeMap:
|
||||
Texture texVal = (Texture) value;
|
||||
TextureKey texKey = (TextureKey) texVal.getKey();
|
||||
String ret = "";
|
||||
if (texKey.isFlipY())
|
||||
ret += "Flip ";
|
||||
if (texVal.getWrap(Texture.WrapAxis.S) == WrapMode.Repeat)
|
||||
ret += "Repeat ";
|
||||
|
||||
return ret + texKey.getName();
|
||||
default:
|
||||
return null; // parameter type not supported in J3M
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MatParam clone(){
|
||||
|
Loading…
x
Reference in New Issue
Block a user