View Javadoc

1   /* -------------------------------------------------------------------
2    * Java source file for the class Texture
3    * 
4    * Copyright (c), 2003, Masahiro Takatsuka.
5    * All Rights Researved.
6    * 
7    * Original Author: Masahiro Takatsuka (masa@jbeans.net)
8    * $Author: takatsukam $
9    * 
10   * $Date: 2004/03/03 11:53:06 $
11   * 
12   * $Id: Texture.java,v 1.3 2004/03/03 11:53:06 takatsukam Exp $
13   * 
14   * Reference:		Document no:
15   * ___				___
16   * 
17   * To Do:
18   * ___
19   * 
20  ------------------------------------------------------------------- */
21  
22  /* --------------------------- Package ---------------------------- */
23  package net.jbeans.j3d.scenegraph;
24  
25  /* ------------------ Import classes (packages) ------------------- *//package-summary/html">class="comment"> ------------------ Import classes (packages) ------------------- *//package-summary.html">class="comment">/* ------------------ Import classes (packages) ------------------- *//package-summary.html">class="comment"> ------------------ Import classes (packages) ------------------- */
26  import java.awt.*;
27  import java.io.*;
28  import java.lang.reflect.*;
29  import java.util.*;
30  import javax.swing.event.*;
31  
32  import javax.vecmath.*;
33  
34  import net.jbeans.lang.*;
35  import net.jbeans.util.*;
36  import net.jbeans.util.debug.*;
37  
38  /*====================================================================
39                     Implementation of class Texture                    
40  ====================================================================*/
41  /***
42   * generally describe Texture in here
43   * 
44   * @version $Revision: 1.3 $
45   * @author Masahiro Takatsuka (masa@jbeans.net)
46   * @see javax.media.j3d.Texture
47   * @see Serializable
48   */
49  
50  public class Texture extends javax.media.j3d.Texture implements Serializable {
51  	private static final boolean DEBUG = Debug.getDebugFlag(Texture.class);
52  	
53  	static private Color3f DEFAULT_AMBIENT = new Color3f(0.2f, 0.2f, 0.2f);
54  	static private Color3f DEFAULT_EMMISIVE = new Color3f(0.0f, 0.0f, 0.0f);
55  	static private Color3f DEFAULT_DIFFUSE = new Color3f(1.0f, 1.0f, 1.0f);
56  	static private Color3f DEFAULT_SPECULAR = new Color3f(1.0f, 1.0f, 1.0f);
57  	static private float DEFUALT_SHININESS = 64;
58  	
59  	/* ------------------------ not serialized ------------------------ */
60  	transient private Color4f tmpColor;
61  	
62  	public Texture () {
63  		super();
64  		initialize();
65  	}
66  
67  	public Texture (int mipMapMode, int format, int width, int height) {
68  		super(mipMapMode, format, width, height);
69  		
70  		initialize();
71  	}
72  	
73  	private final void initialize() {
74  		setCapabilities();
75  	}
76  
77  	private final void setCapabilities() {
78  		setCapability(ALLOW_BOUNDARY_COLOR_READ);
79  		setCapability(ALLOW_BOUNDARY_MODE_READ);
80  		setCapability(ALLOW_ENABLE_READ);
81  		setCapability(ALLOW_ENABLE_WRITE);		
82  		setCapability(ALLOW_FILTER_READ);
83  		setCapability(ALLOW_FORMAT_READ);
84  		setCapability(ALLOW_IMAGE_READ);
85  		setCapability(ALLOW_IMAGE_WRITE);
86  		setCapability(ALLOW_MIPMAP_MODE_READ);
87  		setCapability(ALLOW_SIZE_READ);		
88  	}
89  
90      /***
91       * Serialization methods
92       */
93      private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException {
94  		initialize();
95      }
96  
97  	public void setBoundaryColor(Color color) {
98  		if (this.tmpColor == null) {
99  			this.tmpColor = new Color4f(color);
100 		} else {
101 			this.tmpColor.set(color);
102 		}
103 		setBoundaryColor(this.tmpColor);
104 	}
105 
106 	public Color getBoundaryColor() {
107 		if (this.tmpColor == null) {
108 			this.tmpColor = new Color4f();
109 		}
110 		getBoundaryColor(this.tmpColor);
111 
112 		return new Color(this.tmpColor.x, this.tmpColor.y, this.tmpColor.z, this.tmpColor.w);
113 	}
114 }
115