Revision b2adcd57
Added by Leszek Koltunski over 2 years ago
| src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java | ||
|---|---|---|
| 43 | 43 |
{
|
| 44 | 44 |
final static int PROCEDURAL = -1; |
| 45 | 45 |
final static int POLYGON = -2; |
| 46 |
final static int MULTIGON = -3; |
|
| 46 | 47 |
|
| 47 | 48 |
private LinearLayout mLayout; |
| 48 | 49 |
private int mResource; |
| 49 | 50 |
private String[] mNames = new String[] { "polygon" ,
|
| 51 |
"multigon" , |
|
| 50 | 52 |
"procedural" , |
| 51 | 53 |
"deferredjob", |
| 52 | 54 |
"meshjoin" , |
| ... | ... | |
| 188 | 190 |
switch(pos) |
| 189 | 191 |
{
|
| 190 | 192 |
case 0: mResource = POLYGON ; break; |
| 191 |
case 1: mResource = PROCEDURAL ; break; |
|
| 192 |
case 2: mResource = R.raw.deferredjob; break; |
|
| 193 |
case 3: mResource = R.raw.meshjoin ; break; |
|
| 194 |
case 4: mResource = R.raw.predeform ; break; |
|
| 195 |
case 5: mResource = R.raw.cube2 ; break; |
|
| 196 |
case 6: mResource = R.raw.cube3 ; break; |
|
| 197 |
case 7: mResource = R.raw.cube4 ; break; |
|
| 198 |
case 8: mResource = R.raw.cube5 ; break; |
|
| 199 |
case 9: mResource = R.raw.pyra3 ; break; |
|
| 200 |
case 10: mResource = R.raw.pyra4 ; break; |
|
| 201 |
case 11: mResource = R.raw.pyra5 ; break; |
|
| 202 |
case 12: mResource = R.raw.dino ; break; |
|
| 203 |
case 13: mResource = R.raw.skewb ; break; |
|
| 193 |
case 1: mResource = MULTIGON ; break; |
|
| 194 |
case 2: mResource = PROCEDURAL ; break; |
|
| 195 |
case 3: mResource = R.raw.deferredjob; break; |
|
| 196 |
case 4: mResource = R.raw.meshjoin ; break; |
|
| 197 |
case 5: mResource = R.raw.predeform ; break; |
|
| 198 |
case 6: mResource = R.raw.cube2 ; break; |
|
| 199 |
case 7: mResource = R.raw.cube3 ; break; |
|
| 200 |
case 8: mResource = R.raw.cube4 ; break; |
|
| 201 |
case 9: mResource = R.raw.cube5 ; break; |
|
| 202 |
case 10: mResource = R.raw.pyra3 ; break; |
|
| 203 |
case 11: mResource = R.raw.pyra4 ; break; |
|
| 204 |
case 12: mResource = R.raw.pyra5 ; break; |
|
| 205 |
case 13: mResource = R.raw.dino ; break; |
|
| 206 |
case 14: mResource = R.raw.skewb ; break; |
|
| 204 | 207 |
} |
| 205 | 208 |
} |
| 206 | 209 |
} |
| src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java | ||
|---|---|---|
| 38 | 38 |
import org.distorted.library.main.DistortedTexture; |
| 39 | 39 |
import org.distorted.library.mesh.MeshBase; |
| 40 | 40 |
import org.distorted.library.mesh.MeshFile; |
| 41 |
import org.distorted.library.mesh.MeshMultigon; |
|
| 41 | 42 |
import org.distorted.library.mesh.MeshPolygon; |
| 42 | 43 |
import org.distorted.library.type.DynamicQuat; |
| 43 | 44 |
import org.distorted.library.type.Static3D; |
| ... | ... | |
| 58 | 59 |
import javax.microedition.khronos.egl.EGLConfig; |
| 59 | 60 |
import javax.microedition.khronos.opengles.GL10; |
| 60 | 61 |
|
| 62 |
import static org.distorted.examples.meshfile.MeshFileActivity.MULTIGON; |
|
| 61 | 63 |
import static org.distorted.examples.meshfile.MeshFileActivity.POLYGON; |
| 62 | 64 |
import static org.distorted.examples.meshfile.MeshFileActivity.PROCEDURAL; |
| 63 | 65 |
import static org.distorted.objectlib.main.TwistyObject.MESH_NICE; |
| ... | ... | |
| 186 | 188 |
{
|
| 187 | 189 |
createPolygon(); |
| 188 | 190 |
} |
| 191 |
else if( resourceID==MULTIGON ) |
|
| 192 |
{
|
|
| 193 |
createMultigon(); |
|
| 194 |
} |
|
| 189 | 195 |
else |
| 190 | 196 |
{
|
| 191 | 197 |
openMesh(resourceID); |
| ... | ... | |
| 214 | 220 |
resourceID == R.raw.meshjoin || |
| 215 | 221 |
resourceID == PROCEDURAL || |
| 216 | 222 |
resourceID == POLYGON || |
| 223 |
resourceID == MULTIGON || |
|
| 217 | 224 |
resourceID == R.raw.predeform ) return createWhiteTexture(); |
| 218 | 225 |
|
| 219 | 226 |
if( resourceID == R.raw.cube2 || |
| ... | ... | |
| 296 | 303 |
mMesh.setShowNormals(true); |
| 297 | 304 |
} |
| 298 | 305 |
|
| 306 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 307 |
|
|
| 308 |
private void createMultigon() |
|
| 309 |
{
|
|
| 310 |
float A = 0.5f; |
|
| 311 |
int extraIndex = 1; |
|
| 312 |
int extraVertices = 1; |
|
| 313 |
|
|
| 314 |
float[] v1 = new float[] { -A,-A, A,-A, A,A, -A,A };
|
|
| 315 |
float[] v2 = new float[] { A,-A,2*A,-A,2*A,A, A,A };
|
|
| 316 |
float[][] vertices = new float[][] {v1,v2};
|
|
| 317 |
|
|
| 318 |
float[] c1 = new float[] { 0,0 };
|
|
| 319 |
float[] c2 = new float[] { 1.5f*A,0 };
|
|
| 320 |
float[][] centers = new float[][] { c1,c2 };
|
|
| 321 |
|
|
| 322 |
float C = 0.5f; |
|
| 323 |
float[] bands = new float[] { 1.0f, 0.00f*C, 0.9f, 0.04f*C, 0.8f, 0.07f*C, 0.5f, 0.09f*C, 0.0f, 0.10f*C};
|
|
| 324 |
|
|
| 325 |
/* |
|
| 326 |
float B = 0.04f; |
|
| 327 |
int numBands = 5; |
|
| 328 |
float[] bands = new float[2*numBands]; |
|
| 329 |
|
|
| 330 |
for(int i=0; i<numBands; i++) |
|
| 331 |
{
|
|
| 332 |
bands[2*i ] = 1 + i/(1.0f-numBands); |
|
| 333 |
bands[2*i+1] = B/(numBands-1)*i; |
|
| 334 |
} |
|
| 335 |
*/ |
|
| 336 |
mMesh = new MeshMultigon(vertices,bands,extraIndex,extraVertices,centers); |
|
| 337 |
mMesh.setEffectAssociation(0,0,0); |
|
| 338 |
mMesh.setShowNormals(true); |
|
| 339 |
} |
|
| 340 |
|
|
| 299 | 341 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 300 | 342 |
|
| 301 | 343 |
private void createMesh() |
Also available in: Unified diff
Beginnings of MeshMultigon (does not work yet)