View Javadoc

1   package com.insanityengine.ghia.libograf;
2   
3   import java.util.Stack;
4   
5   import java.awt.*;
6   
7   import java.applet.Applet;
8   import java.awt.Component;
9   import java.awt.image.ImageObserver;
10  
11  import com.insanityengine.ghia.m3.*;
12  import com.insanityengine.ghia.pixels.*;
13  import com.insanityengine.ghia.renderer.*;
14  
15  /***
16   *
17   * <P>
18   * Very, very, very loosely based on openGL, very loosely! The largest
19   * similarity are the matrix stack a similarity in the polygon handling
20   * </P>
21   *
22   * @author BrianHammond
23   *
24   * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/libograf/LiboGrafInterface.java,v 1.5 2005/03/19 17:50:02 brian Exp $
25   *
26   */
27  
28  public interface LiboGrafInterface extends RendererConsumerInterface {
29  
30  	/***
31  	 * Initialize this LiboGraf
32   	 *
33  	 * @param width of the display
34  	 * @param height of the display
35  	 * @param component to use
36  	 *
37  	 */
38  	public void init( int width, int height, java.awt.Component component );
39  	
40  	/***
41  	 *
42  	 * Rotate the current state
43  	 *
44  	 * @param angle
45  	 * 
46  	 * @return a State
47  	 * 
48  	 */
49  	public State rotate( Pt3 angle );
50  
51  	/***
52  	 *
53  	 * Translate the current state
54  	 * 
55  	 * @param displacement
56  	 * 
57  	 * @return a State
58  	 * 
59  	 */
60  	public State translate( Pt3 displacement );
61  	
62  	/***
63  	 *
64  	 * Scale the current state
65  	 *
66  	 * @param ratio
67  	 * 
68  	 * @return a State
69  	 * 
70  	 */
71  	public State scale( Pt3 ratio );
72  	
73  	/***
74  	 *
75  	 * Load the current state
76  	 * 
77  	 * @return a State
78  	 *
79  	 */
80  	public State identity();
81  
82  	/***
83  	 *
84  	 * Push the current state
85  	 *
86  	 */
87  	public void push();
88  	
89  	/***
90  	 *
91  	 * Pop the current state off the stack
92  	 * 
93  	 * @return a State
94  	 *
95  	 */
96  	public State pop();
97  
98  	/***
99  	 *
100 	 * Get the current state
101 	 *
102 	 * @return the current state
103 	 *
104 	 */
105 	public State get();
106 
107 	/***
108 	 *
109 	 * Set the current state
110 	 *
111 	 * @param state to use
112 	 * 
113 	 * @return a State
114 	 *
115 	 */
116 	public State set( State state );
117 	
118 	/***
119 	 *
120 	 * Multiply the current state by state
121 	 *
122 	 * @param state to multiply
123 	 * 
124 	 * @return a State
125 	 *
126 	 */
127 	public State multiply( State state );
128 	
129 	/***
130 	 *
131 	 * Use the Imago to skin an image
132 	 *
133 	 * @param href to load 
134 	 *
135 	 * @return an ImageSkin, or null on fail
136 	 *
137 	 */
138 	public ImageSkin skinImage( String href );
139 
140 	/***
141 	 *
142 	 * Start a new polygon
143 	 *
144 	 */
145 	public void startPolygon();
146 	
147 	/***
148 	 *
149 	 * Set the texture coordinate for the current point
150 	 *
151 	 * @param s coordinate in texture space 
152 	 * @param t coordinate in texture space
153 	 *
154 	 */
155 	public void textCoord( float s, float t );
156 
157 	/***
158 	 *
159 	 * Add a point (to the current polygon)
160 	 *
161 	 * @param x coordinate of the point
162 	 * @param y coordinate of the point
163 	 * @param z coordinate of the point
164 	 *
165 	 */
166 	public void addPoint( float x, float y, float z );
167 	
168 	/***
169 	 *
170 	 * Add a point (to the current polygon)
171 	 *
172 	 * @param point to add
173 	 *
174 	 */
175 	public void addPoint( Pt3 point );
176 
177 	/***
178 	 *	  
179 	 * Get the normal of the current polygon
180 	 *	  
181 	 * @return the normal of the current polygon
182 	 *	  
183 	 */
184 	public Pt3 getNormal();
185 	
186 	/***
187 	 *
188 	 * Finish the current polygon, invokes the drawPolygon method
189 	 * on the renderer
190 	 *
191 	 */
192 	public void stopPolygon();
193 
194 	/***
195 	 *
196 	 * Get the maximum number of points a polygon can have
197 	 *
198 	 * @return the maximum number of points a polygon can have
199 	 *
200 	 */
201 	public int getPolygonPointMax();
202 		
203 	/***
204 	 *
205 	 * Get the size of the state stack
206 	 *
207 	 * @return the size of the state stack
208 	 *
209 	 */
210 	public int getStackSize();
211 
212 	/***
213 	 *
214 	 * Silly conveinence method to draw a buncha polygons
215 	 *
216 	 * @param polygon array of array of Pt3 representing the polygons
217 	 *
218 	 */
219 	public void drawPolygons( Pt3 [][] polygon );
220 
221 	/***
222 	 *
223 	 * Render the scene
224 	 *
225 	 */
226 	public void render();
227 
228 	/***
229 	 *
230 	 * Render the scene
231 	 *
232 	 * @param graphics to use (if possible)
233 	 *
234 	 */
235 	public void render( Graphics graphics );
236 };
237 
238 /***
239  *
240  * $Log: LiboGrafInterface.java,v $
241  * Revision 1.5  2005/03/19 17:50:02  brian
242  * repackaging
243  *
244  * Revision 1.4  2005/03/11 23:35:31  brian
245  * major refactoring to add in com.insanityengine.ghia.libograf.State bitz
246  *
247  * Revision 1.3  2005/03/10 13:31:19  brian
248  * introduce com.insanityengine.ghia/libograf/State to pave the way for quaternions based LiboGrafInterface implementation
249  *
250  * Revision 1.2  2004/09/22 03:03:32  brian
251  * added setMatrix and multiply methods
252  *
253  * Revision 1.1  2004/09/11 19:22:20  brian
254  * open the way for jogl LiboGraf impl
255  *
256  *
257  */