Revision 380162cb
Added by Leszek Koltunski over 3 years ago
src/main/java/org/distorted/objects/RubikDino.java | ||
---|---|---|
70 | 70 |
private static final Static4D[] QUATS = new Static4D[] |
71 | 71 |
{ |
72 | 72 |
new Static4D( 0.0f, 0.0f, 0.0f, 1.0f ), |
73 |
new Static4D( 0.5f, 0.5f, 0.5f, -0.5f ), |
|
73 | 74 |
new Static4D( 0.0f, 0.0f, 1.0f, 0.0f ), |
74 |
new Static4D( 0.0f, 1.0f, 0.0f, 0.0f ), |
|
75 |
new Static4D( 1.0f, 0.0f, 0.0f, 0.0f ), |
|
75 |
new Static4D( 0.5f, -0.5f, -0.5f, -0.5f ), |
|
76 | 76 |
new Static4D( 0.5f, 0.5f, 0.5f, 0.5f ), |
77 |
new Static4D( 0.5f, 0.5f, 0.5f, -0.5f ), |
|
78 |
new Static4D( 0.5f, 0.5f, -0.5f, 0.5f ), |
|
79 | 77 |
new Static4D( 0.5f, 0.5f, -0.5f, -0.5f ), |
80 |
new Static4D( 0.5f, -0.5f, 0.5f, 0.5f ), |
|
81 | 78 |
new Static4D( 0.5f, -0.5f, 0.5f, -0.5f ), |
82 | 79 |
new Static4D( 0.5f, -0.5f, -0.5f, 0.5f ), |
83 |
new Static4D( 0.5f, -0.5f, -0.5f, -0.5f ) |
|
80 |
new Static4D( 0.0f, 1.0f, 0.0f, 0.0f ), |
|
81 |
new Static4D( 0.5f, -0.5f, 0.5f, 0.5f ), |
|
82 |
new Static4D( 1.0f, 0.0f, 0.0f, 0.0f ), |
|
83 |
new Static4D( 0.5f, 0.5f, -0.5f, 0.5f ) |
|
84 | 84 |
}; |
85 | 85 |
|
86 | 86 |
// centers of the 12 edges. Must be in the same order like QUATs above. |
87 | 87 |
private static final Static3D[] CENTERS = new Static3D[] |
88 | 88 |
{ |
89 | 89 |
new Static3D( 0.0f, 0.5f, 0.5f ), |
90 |
new Static3D( 0.5f, 0.0f, 0.5f ), |
|
90 | 91 |
new Static3D( 0.0f,-0.5f, 0.5f ), |
91 |
new Static3D( 0.0f, 0.5f,-0.5f ), |
|
92 |
new Static3D( 0.0f,-0.5f,-0.5f ), |
|
92 |
new Static3D(-0.5f, 0.0f, 0.5f ), |
|
93 | 93 |
new Static3D( 0.5f, 0.5f, 0.0f ), |
94 |
new Static3D( 0.5f, 0.0f, 0.5f ), |
|
95 |
new Static3D(-0.5f, 0.0f,-0.5f ), |
|
96 | 94 |
new Static3D( 0.5f,-0.5f, 0.0f ), |
97 |
new Static3D( 0.5f, 0.0f,-0.5f ), |
|
98 | 95 |
new Static3D(-0.5f,-0.5f, 0.0f ), |
99 | 96 |
new Static3D(-0.5f, 0.5f, 0.0f ), |
100 |
new Static3D(-0.5f, 0.0f, 0.5f ) |
|
97 |
new Static3D( 0.0f, 0.5f,-0.5f ), |
|
98 |
new Static3D( 0.5f, 0.0f,-0.5f ), |
|
99 |
new Static3D( 0.0f,-0.5f,-0.5f ), |
|
100 |
new Static3D(-0.5f, 0.0f,-0.5f ) |
|
101 | 101 |
}; |
102 | 102 |
|
103 | 103 |
private static MeshBase mMesh; |
... | ... | |
121 | 121 |
int association = 1; |
122 | 122 |
MeshBase[] meshes = new MeshTriangles[MESHES]; |
123 | 123 |
|
124 |
meshes[0] = new MeshTriangles(9);
|
|
124 |
meshes[0] = new MeshTriangles(11);
|
|
125 | 125 |
meshes[0].setEffectAssociation(0,association,0); |
126 | 126 |
|
127 | 127 |
for(int i=1; i<MESHES; i++) |
... | ... | |
141 | 141 |
float tetraHeight = SQ2*SQ3/3; |
142 | 142 |
float d1 = 0.75f*tetraHeight; |
143 | 143 |
float d2 =-0.10f*tetraHeight; |
144 |
float d3 = 0.20f*tetraHeight; |
|
144 |
float d3 =-0.05f*tetraHeight; |
|
145 |
float d4 = 0.15f*tetraHeight; |
|
145 | 146 |
|
146 | 147 |
Static3D dCen0 = new Static3D( d1*a0.get0(), d1*a0.get1(), d1*a0.get2() ); |
147 | 148 |
Static3D dCen1 = new Static3D( d1*a1.get0(), d1*a1.get1(), d1*a1.get2() ); |
148 | 149 |
Static3D dCen2 = new Static3D( d1*a2.get0(), d1*a2.get1(), d1*a2.get2() ); |
149 | 150 |
Static3D dCen3 = new Static3D( d1*a3.get0(), d1*a3.get1(), d1*a3.get2() ); |
150 | 151 |
|
151 |
Static3D dVec0 = new Static3D( d2*a0.get0(), d2*a0.get1(), d2*a0.get2() );
|
|
152 |
Static3D dVec1 = new Static3D( d2*a1.get0(), d2*a1.get1(), d2*a1.get2() );
|
|
152 |
Static3D dVec0 = new Static3D( d3*a0.get0(), d3*a0.get1(), d3*a0.get2() );
|
|
153 |
Static3D dVec1 = new Static3D( d3*a1.get0(), d3*a1.get1(), d3*a1.get2() );
|
|
153 | 154 |
Static3D dVec2 = new Static3D( d2*a2.get0(), d2*a2.get1(), d2*a2.get2() ); |
154 | 155 |
Static3D dVec3 = new Static3D( d2*a3.get0(), d2*a3.get1(), d2*a3.get2() ); |
155 | 156 |
|
156 |
Static4D dReg = new Static4D(0,0,0,d3);
|
|
157 |
Static4D dReg = new Static4D(0,0,0,d4);
|
|
157 | 158 |
Static1D dRad = new Static1D(1); |
158 | 159 |
|
159 | 160 |
Static1D angle = new Static1D(ANGLE_FACES); |
... | ... | |
215 | 216 |
|
216 | 217 |
MatrixEffectMove moveEffect = new MatrixEffectMove ( new Static3D(0.0f,SQ3*SQ2/12,SQ3/6) ); |
217 | 218 |
MatrixEffectRotate rot1Effect = new MatrixEffectRotate( new Static1D(180+ANGLE_FACES/2), axis, cent); |
218 |
MatrixEffectScale scalEffect = new MatrixEffectScale ( new Static3D(1.0f, SQ2/2, SQ2*SQ3/6) );
|
|
219 |
MatrixEffectScale scalEffect = new MatrixEffectScale ( new Static3D(1.0f, SQ2/2, 0.5f) );
|
|
219 | 220 |
MatrixEffectRotate rot2Effect = new MatrixEffectRotate( new Static1D(-45), axis, cent); |
220 | 221 |
|
221 |
mMesh.apply(moveEffect,0xffffffff,0);
|
|
222 |
mMesh.apply(rot1Effect,0xffffffff,0);
|
|
223 |
mMesh.apply(scalEffect,0xffffffff,0);
|
|
224 |
mMesh.apply(rot2Effect,0xffffffff,0);
|
|
222 |
mMesh.apply(moveEffect, 0xffffffff, 0);
|
|
223 |
mMesh.apply(rot1Effect, 0xffffffff, 0);
|
|
224 |
mMesh.apply(scalEffect, 0xffffffff, 0);
|
|
225 |
mMesh.apply(rot2Effect, 0xffffffff, 0);
|
|
225 | 226 |
} |
226 | 227 |
|
227 | 228 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
228 | 229 |
|
229 | 230 |
float getScreenRatio() |
230 | 231 |
{ |
231 |
return 1.0f;
|
|
232 |
return 1.5f;
|
|
232 | 233 |
} |
233 | 234 |
|
234 | 235 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Progress with RubikDino.