home *** CD-ROM | disk | FTP | other *** search
/ Late Night VRML 2.0 with Java CD-ROM / code.zip / Ch13 / nff / Texture.java < prev    next >
Text File  |  1996-11-27  |  3KB  |  69 lines

  1. // Texture description for a Sense8 NFF file
  2.  
  3. // Written by Bernie Roehl, November 1996
  4.  
  5. package nff;
  6.  
  7. public class Texture {
  8.     protected String filename;         // texture map to use
  9.     protected float rot = 0f;          // texture rotation in radians
  10.     protected float scale = 1f;        // texture scaling factor
  11.     protected boolean mirror = false;  // texture should be mirrored
  12.     protected float sTrans = 0f;       // texture S translation 
  13.     protected float tTrans = 0f;       // texture T translation 
  14.     protected boolean shaded = false;  // shaded texture
  15.     protected boolean transp = false;  // shaded texture
  16.  
  17.     public String toString() {
  18.         return filename + " shaded=" + shaded + " transp=" + transp
  19.              + " mirror=" + mirror + " rot=" + rot + " scale=" + scale
  20.              + " trans=" + sTrans + "," + tTrans;
  21.     }
  22.        
  23.     public String getFilename() { return filename; }
  24.     public float getRotation() { return rot; }
  25.     public float getScale() { return scale; }
  26.     public boolean getMirror() { return mirror; }
  27.     public float getTransS() { return sTrans; }
  28.     public float getTransT() { return tTrans; }
  29.     public void setRotation(float r) { rot = r; }
  30.     public void setScale(float s) { scale = s; }
  31.     public void setMirror(boolean m) { mirror = m; }
  32.     public void setTrans(float s, float t) { sTrans = s;  tTrans = t; }
  33.     public boolean isShaded() { return shaded; }
  34.     public boolean isTransparent() { return transp; }
  35.  
  36.     public Texture(String tex) {
  37.          filename = new String(tex);
  38.          if (filename.startsWith("_v_") || filename.startsWith("_V_")) {
  39.             filename = filename.substring(3);
  40.          }
  41.          if (filename.startsWith("_s_") || filename.startsWith("_S_")) {
  42.             filename = filename.substring(3);
  43.             shaded = true;
  44.          }
  45.          if (filename.startsWith("_t_") || filename.startsWith("_T_")) {
  46.             filename = filename.substring(3);
  47.             transp = true;
  48.          }
  49.          if (filename.startsWith("_u_") || filename.startsWith("_U_")) {
  50.             filename = filename.substring(3);
  51.             shaded = true;
  52.             transp = true;
  53.          }
  54.     }
  55.  
  56.     public boolean match(Texture tex2) {
  57.         if (tex2 == null)
  58.             return false;
  59.         if (!filename.equals(tex2.filename))
  60.             return false;
  61.         if (rot != tex2.rot || scale != tex2.scale || mirror != tex2.mirror)
  62.             return false;
  63.         if (sTrans != tex2.sTrans || tTrans != tex2.tTrans)
  64.             return false;
  65.         return true;
  66.     }
  67. }
  68.  
  69.