@@ -114,6 +114,14 @@ public float[] get(float[] target) {
114114 }
115115
116116
117+ public void set (PMatrix2D src ) {
118+ set (src .m00 , src .m01 , 0 , src .m02 ,
119+ src .m10 , src .m11 , 0 , src .m12 ,
120+ 0 , 0 , 1 , 0 ,
121+ 0 , 0 , 0 , 1 );
122+ }
123+
124+
117125 public void set (PMatrix3D src ) {
118126 set (src .m00 , src .m01 , src .m02 , src .m03 ,
119127 src .m10 , src .m11 , src .m12 , src .m13 ,
@@ -123,28 +131,43 @@ public void set(PMatrix3D src) {
123131
124132
125133 public void set (float [] source ) {
126- m00 = source [0 ];
127- m01 = source [1 ];
128- m02 = source [2 ];
129- m03 = source [3 ];
130-
131- m10 = source [4 ];
132- m11 = source [5 ];
133- m12 = source [6 ];
134- m13 = source [7 ];
135-
136- m20 = source [8 ];
137- m21 = source [9 ];
138- m22 = source [10 ];
139- m23 = source [11 ];
140-
141- m30 = source [12 ];
142- m31 = source [13 ];
143- m32 = source [14 ];
144- m33 = source [15 ];
134+ if (source .length == 6 ) {
135+ set (source [0 ], source [1 ], source [2 ],
136+ source [3 ], source [4 ], source [5 ]);
137+
138+ } else if (source .length == 16 ) {
139+ m00 = source [0 ];
140+ m01 = source [1 ];
141+ m02 = source [2 ];
142+ m03 = source [3 ];
143+
144+ m10 = source [4 ];
145+ m11 = source [5 ];
146+ m12 = source [6 ];
147+ m13 = source [7 ];
148+
149+ m20 = source [8 ];
150+ m21 = source [9 ];
151+ m22 = source [10 ];
152+ m23 = source [11 ];
153+
154+ m30 = source [12 ];
155+ m31 = source [13 ];
156+ m32 = source [14 ];
157+ m33 = source [15 ];
158+ }
145159 }
146160
161+
162+ public void set (float m00 , float m01 , float m02 ,
163+ float m10 , float m11 , float m12 ) {
164+ set (m00 , m01 , 0 , m02 ,
165+ m10 , m11 , 0 , m12 ,
166+ 0 , 0 , 1 , 0 ,
167+ 0 , 0 , 0 , 1 );
168+ }
147169
170+
148171 public void set (float m00 , float m01 , float m02 , float m03 ,
149172 float m10 , float m11 , float m12 , float m13 ,
150173 float m20 , float m21 , float m22 , float m23 ,
@@ -234,24 +257,19 @@ public void scale(float x, float y, float z) {
234257 }
235258
236259
237- /**
238- * Multiply this matrix by another.
239- */
240- public void apply (PMatrix matrix ) {
241- if (matrix instanceof PMatrix2D ) {
242- PMatrix2D source = (PMatrix2D ) matrix ;
243- apply (source .m00 , source .m01 , 0 , source .m02 ,
244- source .m10 , source .m11 , 0 , source .m12 ,
245- 0 , 0 , 1 , 0 ,
246- 0 , 0 , 0 , 1 );
247-
248- } else if (matrix instanceof PMatrix3D ) {
249- PMatrix3D source = (PMatrix3D ) matrix ;
250- apply (source .m00 , source .m01 , source .m02 , source .m03 ,
251- source .m10 , source .m11 , source .m12 , source .m13 ,
252- source .m20 , source .m21 , source .m22 , source .m23 ,
253- source .m30 , source .m31 , source .m32 , source .m33 );
254- }
260+ public void apply (PMatrix2D source ) {
261+ apply (source .m00 , source .m01 , 0 , source .m02 ,
262+ source .m10 , source .m11 , 0 , source .m12 ,
263+ 0 , 0 , 1 , 0 ,
264+ 0 , 0 , 0 , 1 );
265+ }
266+
267+
268+ public void apply (PMatrix3D source ) {
269+ apply (source .m00 , source .m01 , source .m02 , source .m03 ,
270+ source .m10 , source .m11 , source .m12 , source .m13 ,
271+ source .m20 , source .m21 , source .m22 , source .m23 ,
272+ source .m30 , source .m31 , source .m32 , source .m33 );
255273 }
256274
257275
@@ -296,6 +314,14 @@ public void apply(float n00, float n01, float n02, float n03,
296314 }
297315
298316
317+ public void preApply (PMatrix2D left ) {
318+ preApply (left .m00 , left .m01 , 0 , left .m02 ,
319+ left .m10 , left .m11 , 0 , left .m12 ,
320+ 0 , 0 , 1 , 0 ,
321+ 0 , 0 , 0 , 1 );
322+ }
323+
324+
299325 /**
300326 * Apply another matrix to the left of this one.
301327 */
@@ -306,7 +332,16 @@ public void preApply(PMatrix3D left) {
306332 left .m30 , left .m31 , left .m32 , left .m33 );
307333 }
308334
335+
336+ public void preApply (float n00 , float n01 , float n02 ,
337+ float n10 , float n11 , float n12 ) {
338+ preApply (n00 , n01 , 0 , n02 ,
339+ n10 , n11 , 0 , n12 ,
340+ 0 , 0 , 1 , 0 ,
341+ 0 , 0 , 0 , 1 );
342+ }
309343
344+
310345 public void preApply (float n00 , float n01 , float n02 , float n03 ,
311346 float n10 , float n11 , float n12 , float n13 ,
312347 float n20 , float n21 , float n22 , float n23 ,
0 commit comments