Revision b3090c52
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java | ||
|---|---|---|
| 36 | 36 |
import org.distorted.library.mesh.MeshBase; |
| 37 | 37 |
import org.distorted.library.mesh.MeshJoined; |
| 38 | 38 |
import org.distorted.library.mesh.MeshQuad; |
| 39 |
import org.distorted.library.mesh.MeshRectangles; |
|
| 40 |
import org.distorted.library.mesh.MeshSphere; |
|
| 41 |
import org.distorted.library.mesh.MeshTriangles; |
|
| 39 | 42 |
import org.distorted.library.type.DynamicQuat; |
| 40 | 43 |
import org.distorted.library.type.Static1D; |
| 41 | 44 |
import org.distorted.library.type.Static3D; |
| ... | ... | |
| 96 | 99 |
|
| 97 | 100 |
public void onSurfaceChanged(GL10 glUnused, int width, int height) |
| 98 | 101 |
{
|
| 99 |
final float SCALE = 0.75f;
|
|
| 102 |
final float SCALE = 0.6f;
|
|
| 100 | 103 |
mScreenMin = width<height ? width:height; |
| 101 | 104 |
float factor = SCALE*mScreenMin; |
| 102 | 105 |
mScale.set(factor,factor,factor); |
| ... | ... | |
| 128 | 131 |
|
| 129 | 132 |
if( mMesh==null ) mMesh = createJoinedMesh(); |
| 130 | 133 |
|
| 134 |
mMesh.setShowNormals(true); |
|
| 135 |
|
|
| 131 | 136 |
mScreen.detachAll(); |
| 132 | 137 |
mScreen.attach(mTexture,mEffects,mMesh); |
| 133 | 138 |
|
| ... | ... | |
| 145 | 150 |
|
| 146 | 151 |
private MeshBase createJoinedMesh() |
| 147 | 152 |
{
|
| 148 |
Static3D axis = new Static3D(0,1,0); |
|
| 153 |
MeshBase[] meshes = new MeshBase[2]; |
|
| 154 |
meshes[0] = new MeshSphere(5); |
|
| 155 |
meshes[1] = new MeshTriangles(5); |
|
| 156 |
|
|
| 157 |
MatrixEffect[] effects0 = new MatrixEffect[2]; |
|
| 158 |
effects0[0] = new MatrixEffectScale( new Static3D(0.5f, 1.0f, 0.5f) ); |
|
| 159 |
effects0[1] = new MatrixEffectMove( new Static3D(+0.25f,0,0)); |
|
| 160 |
|
|
| 161 |
meshes[0].apply(effects0); |
|
| 162 |
|
|
| 163 |
MatrixEffect[] effects1 = new MatrixEffect[2]; |
|
| 164 |
effects1[0] = new MatrixEffectScale( new Static3D(0.5f, 1.0f, 0.5f) ); |
|
| 165 |
effects1[1] = new MatrixEffectMove( new Static3D(-0.25f,0,0)); |
|
| 166 |
|
|
| 167 |
meshes[1].apply(effects1); |
|
| 168 |
/* |
|
| 169 |
final int MESHES=6; |
|
| 170 |
|
|
| 171 |
Static3D axisY = new Static3D(0,1,0); |
|
| 172 |
Static3D axisX = new Static3D(1,0,0); |
|
| 149 | 173 |
Static3D center = new Static3D(0,0,0); |
| 150 | 174 |
Static1D angle = new Static1D(0); |
| 151 | 175 |
|
| 152 |
MatrixEffect[] effects = new MatrixEffect[2]; |
|
| 153 |
effects[0] = new MatrixEffectMove(new Static3D(0,0,-0.5f));
|
|
| 154 |
effects[1] = new MatrixEffectRotate( angle, axis, center );
|
|
| 176 |
MatrixEffect[] effectsY = new MatrixEffect[2];
|
|
| 177 |
effectsY[0] = new MatrixEffectMove(new Static3D(0,0,+0.5f));
|
|
| 178 |
effectsY[1] = new MatrixEffectRotate( angle, axisY, center );
|
|
| 155 | 179 |
|
| 156 |
MeshBase[] meshes = new MeshQuad[4]; |
|
| 157 |
|
|
| 158 |
for(int i=0; i<4; i++) meshes[i] = new MeshQuad(); |
|
| 180 |
MeshBase[] meshes = new MeshRectangles[MESHES]; |
|
| 181 |
for(int i=0; i<MESHES; i++) meshes[i] = new MeshRectangles(5,5); |
|
| 159 | 182 |
|
| 160 | 183 |
angle.set(0); |
| 161 |
meshes[0].apply(effects); |
|
| 184 |
meshes[0].apply(effectsY);
|
|
| 162 | 185 |
angle.set(90); |
| 163 |
meshes[1].apply(effects); |
|
| 186 |
meshes[1].apply(effectsY);
|
|
| 164 | 187 |
angle.set(180); |
| 165 |
meshes[2].apply(effects); |
|
| 188 |
meshes[2].apply(effectsY);
|
|
| 166 | 189 |
angle.set(270); |
| 167 |
meshes[3].apply(effects); |
|
| 190 |
meshes[3].apply(effectsY); |
|
| 191 |
|
|
| 192 |
MatrixEffect[] effectsX = new MatrixEffect[2]; |
|
| 193 |
effectsX[0] = new MatrixEffectMove(new Static3D(0,0,+0.5f)); |
|
| 194 |
effectsX[1] = new MatrixEffectRotate( angle, axisX, center ); |
|
| 168 | 195 |
|
| 196 |
angle.set( 90); |
|
| 197 |
meshes[4].apply(effectsX); |
|
| 198 |
angle.set(-90); |
|
| 199 |
meshes[5].apply(effectsX); |
|
| 200 |
*/ |
|
| 169 | 201 |
return new MeshJoined(meshes); |
| 170 | 202 |
} |
| 171 | 203 |
} |
Also available in: Unified diff
Minor.
Looks like MeshBase.join() actually works.