View Javadoc

1   package com.insanityengine.ghia.libograf;
2   
3   import com.insanityengine.ghia.m3.Pt3;
4   
5   /***
6    *
7    * <P>
8    * This interface provides an implementation-agnostice mechanism to
9    * set, get, push and pop state information.
10   * </P>
11   *
12   * @author BrianHammond
13   *
14   * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/libograf/State.java,v 1.4 2005/03/19 17:50:02 brian Exp $
15   *
16   */
17  public interface State {
18  
19  	/*** 
20  	 * 
21  	 * identity
22  	 * 
23  	 * @return a State
24  	 * 
25  	 */
26  	public State identity();
27  	
28  	/*** 
29  	 * 
30  	 * rotate
31  	 *
32  	 * @param angle
33  	 * 
34  	 * @return a State
35  	 * 
36  	 */
37  	public State rotate( Pt3 angle );
38  	
39  	/*** 
40  	 * 
41  	 * translate
42  	 * 
43  	 * @param displacement
44  	 * 
45  	 * @return a State
46  	 * 
47  	 */
48  	public State translate( Pt3 displacement );
49  	
50  	/*** 
51  	 * 
52  	 * scale
53  	 * 
54  	 * @param ratio
55  	 * 
56  	 * @return a State
57  	 * 
58  	 */
59  	public State scale( Pt3 ratio );
60  	
61  	/*** 
62  	 * 
63  	 * multiply: this = this * state
64  	 * 
65  	 * @param state
66  	 * 
67  	 * @return this State
68  	 * 
69  	 */
70  	public State multiply( State state );
71  
72  	/*** 
73  	 * 
74  	 * set
75  	 * 
76  	 * @param state
77  	 * 
78  	 * @return this State
79  	 * 
80  	 */
81  	public State set( State state );
82  
83  	/*** 
84  	 * 
85  	 * multiply
86  	 * 
87  	 * @param point
88  	 * @param destination
89  	 * 
90  	 * @return a Pt3
91  	 * 
92  	 */
93  	public Pt3 multiply( Pt3 point, Pt3 destination );
94  	
95  };
96  
97  /***
98   *
99   * $Log: State.java,v $
100  * Revision 1.4  2005/03/19 17:50:02  brian
101  * repackaging
102  *
103  * Revision 1.3  2005/03/12 04:36:44  brian
104  * fix javadoc
105  *
106  * Revision 1.2  2005/03/11 23:35:31  brian
107  * major refactoring to add in com.insanityengine.ghia.libograf.State bitz
108  *
109  * Revision 1.1  2005/03/10 13:31:19  brian
110  * introduce com.insanityengine.ghia/libograf/State to pave the way for quaternions based LiboGrafInterface implementation
111  *
112  *
113  */