home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Late Night VRML 2.0 with Java CD-ROM
/
code.zip
/
Ch13
/
nff
/
Texture.java
< prev
next >
Wrap
Text File
|
1996-11-27
|
3KB
|
69 lines
// Texture description for a Sense8 NFF file
// Written by Bernie Roehl, November 1996
package nff;
public class Texture {
protected String filename; // texture map to use
protected float rot = 0f; // texture rotation in radians
protected float scale = 1f; // texture scaling factor
protected boolean mirror = false; // texture should be mirrored
protected float sTrans = 0f; // texture S translation
protected float tTrans = 0f; // texture T translation
protected boolean shaded = false; // shaded texture
protected boolean transp = false; // shaded texture
public String toString() {
return filename + " shaded=" + shaded + " transp=" + transp
+ " mirror=" + mirror + " rot=" + rot + " scale=" + scale
+ " trans=" + sTrans + "," + tTrans;
}
public String getFilename() { return filename; }
public float getRotation() { return rot; }
public float getScale() { return scale; }
public boolean getMirror() { return mirror; }
public float getTransS() { return sTrans; }
public float getTransT() { return tTrans; }
public void setRotation(float r) { rot = r; }
public void setScale(float s) { scale = s; }
public void setMirror(boolean m) { mirror = m; }
public void setTrans(float s, float t) { sTrans = s; tTrans = t; }
public boolean isShaded() { return shaded; }
public boolean isTransparent() { return transp; }
public Texture(String tex) {
filename = new String(tex);
if (filename.startsWith("_v_") || filename.startsWith("_V_")) {
filename = filename.substring(3);
}
if (filename.startsWith("_s_") || filename.startsWith("_S_")) {
filename = filename.substring(3);
shaded = true;
}
if (filename.startsWith("_t_") || filename.startsWith("_T_")) {
filename = filename.substring(3);
transp = true;
}
if (filename.startsWith("_u_") || filename.startsWith("_U_")) {
filename = filename.substring(3);
shaded = true;
transp = true;
}
}
public boolean match(Texture tex2) {
if (tex2 == null)
return false;
if (!filename.equals(tex2.filename))
return false;
if (rot != tex2.rot || scale != tex2.scale || mirror != tex2.mirror)
return false;
if (sTrans != tex2.sTrans || tTrans != tex2.tTrans)
return false;
return true;
}
}