«
Previous
|
Next
»
Revision 68c69885
Added by Leszek Koltunski about 4 hours ago
- ID 68c698857a33c47a720eb1dadaa5ad7fc4ee8d74
- Parent 5e090980
| build.gradle | ||
|---|---|---|
| 29 | 29 |
implementation 'androidx.legacy:legacy-support-v4:1.0.0' |
| 30 | 30 |
implementation 'androidx.legacy:legacy-support-v13:1.0.0' |
| 31 | 31 |
implementation 'com.google.android.material:material:1.12.0' |
| 32 |
implementation project(path: ':distorted-objectlib') |
|
| 33 | 32 |
} |
| src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java | ||
|---|---|---|
| 50 | 50 |
private int mResource; |
| 51 | 51 |
private final String[] mNames = new String[] |
| 52 | 52 |
{ "triangle" ,
|
| 53 |
"procedural" , |
|
| 54 | 53 |
"polygon" , |
| 55 | 54 |
"multigon" , |
| 56 | 55 |
"deferredjob", |
| ... | ... | |
| 202 | 201 |
switch(pos) |
| 203 | 202 |
{
|
| 204 | 203 |
case 0: mResource = TRIANGLE ; break; |
| 205 |
case 1: mResource = PROCEDURAL ; break; |
|
| 206 |
case 2: mResource = POLYGON ; break; |
|
| 207 |
case 3: mResource = MULTIGON ; break; |
|
| 208 |
case 4: mResource = R.raw.deferredjob; break; |
|
| 209 |
case 5: mResource = R.raw.meshjoin ; break; |
|
| 210 |
case 6: mResource = R.raw.predeform ; break; |
|
| 211 |
case 7: mResource = R.raw.cube2 ; break; |
|
| 212 |
case 8: mResource = R.raw.cube3 ; break; |
|
| 213 |
case 9: mResource = R.raw.cube4 ; break; |
|
| 214 |
case 10: mResource = R.raw.cube5 ; break; |
|
| 215 |
case 11: mResource = R.raw.pyra3 ; break; |
|
| 216 |
case 12: mResource = R.raw.pyra4 ; break; |
|
| 217 |
case 13: mResource = R.raw.pyra5 ; break; |
|
| 218 |
case 14: mResource = R.raw.dino ; break; |
|
| 219 |
case 15: mResource = R.raw.skewb ; break; |
|
| 204 |
case 1: mResource = POLYGON ; break; |
|
| 205 |
case 2: mResource = MULTIGON ; break; |
|
| 206 |
case 3: mResource = R.raw.deferredjob; break; |
|
| 207 |
case 4: mResource = R.raw.meshjoin ; break; |
|
| 208 |
case 5: mResource = R.raw.predeform ; break; |
|
| 209 |
case 6: mResource = R.raw.cube2 ; break; |
|
| 210 |
case 7: mResource = R.raw.cube3 ; break; |
|
| 211 |
case 8: mResource = R.raw.cube4 ; break; |
|
| 212 |
case 9: mResource = R.raw.cube5 ; break; |
|
| 213 |
case 10: mResource = R.raw.pyra3 ; break; |
|
| 214 |
case 11: mResource = R.raw.pyra4 ; break; |
|
| 215 |
case 12: mResource = R.raw.pyra5 ; break; |
|
| 216 |
case 13: mResource = R.raw.dino ; break; |
|
| 217 |
case 14: mResource = R.raw.skewb ; break; |
|
| 220 | 218 |
} |
| 221 | 219 |
} |
| 222 | 220 |
} |
| src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java | ||
|---|---|---|
| 28 | 28 |
|
| 29 | 29 |
import org.distorted.examples.R; |
| 30 | 30 |
import org.distorted.library.effect.Effect; |
| 31 |
import org.distorted.library.effect.EffectName; |
|
| 32 | 31 |
import org.distorted.library.effect.EffectType; |
| 33 | 32 |
import org.distorted.library.effect.MatrixEffectQuaternion; |
| 34 | 33 |
import org.distorted.library.effect.MatrixEffectScale; |
| ... | ... | |
| 46 | 45 |
import org.distorted.library.type.Static3D; |
| 47 | 46 |
import org.distorted.library.type.Static4D; |
| 48 | 47 |
|
| 49 |
import org.distorted.objectlib.helpers.FactoryCubit; |
|
| 50 |
import org.distorted.objectlib.helpers.ObjectFaceShape; |
|
| 51 |
import org.distorted.objectlib.helpers.ObjectShape; |
|
| 52 |
import org.distorted.objectlib.helpers.ObjectVertexEffects; |
|
| 53 |
|
|
| 54 | 48 |
import java.io.DataInputStream; |
| 55 | 49 |
import java.io.IOException; |
| 56 | 50 |
import java.io.InputStream; |
| ... | ... | |
| 188 | 182 |
|
| 189 | 183 |
long t1 = System.currentTimeMillis(); |
| 190 | 184 |
|
| 191 |
if( resourceID==PROCEDURAL ) |
|
| 192 |
{
|
|
| 193 |
createMesh(); |
|
| 194 |
} |
|
| 195 |
else if( resourceID==POLYGON ) |
|
| 185 |
if( resourceID==POLYGON ) |
|
| 196 | 186 |
{
|
| 197 | 187 |
createPolygon(); |
| 198 | 188 |
} |
| ... | ... | |
| 412 | 402 |
}; |
| 413 | 403 |
} |
| 414 | 404 |
|
| 415 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 416 |
// String[] names, float[][] variables, float[][] centers, float[][] regions, boolean[] use |
|
| 417 |
|
|
| 418 |
private ObjectVertexEffects createEffects() |
|
| 419 |
{
|
|
| 420 |
final float R = 0.7f; |
|
| 421 |
|
|
| 422 |
String[] names = { EffectName.PIPE.name() };
|
|
| 423 |
float[][] vars = { {0.3f,0,0,1,2*R} };
|
|
| 424 |
float[][] cens = { {-R,R,0} };
|
|
| 425 |
float[][] regs = { {0,0,0,0} };
|
|
| 426 |
boolean[] use = { true };
|
|
| 427 |
|
|
| 428 |
return new ObjectVertexEffects(names,vars,cens,regs,use); |
|
| 429 |
} |
|
| 430 |
|
|
| 431 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 432 |
|
|
| 433 |
private void createMesh() |
|
| 434 |
{
|
|
| 435 |
float[][] vertices = createV(); |
|
| 436 |
int[][][] vertIndices = createVI(); |
|
| 437 |
|
|
| 438 |
int numFaces = vertIndices.length; |
|
| 439 |
|
|
| 440 |
float h = 0.001f; |
|
| 441 |
int angle = 30; |
|
| 442 |
float R = 0.1f; |
|
| 443 |
float S = 0.5f; |
|
| 444 |
int N = 6; |
|
| 445 |
int exI = 0; |
|
| 446 |
int exV = 0; |
|
| 447 |
float[][] bands = { {h,angle,R,S,N,exI,exV} };
|
|
| 448 |
|
|
| 449 |
int[] bandIndices= new int[numFaces]; |
|
| 450 |
|
|
| 451 |
ObjectShape shape = new ObjectShape(vertices, vertIndices); |
|
| 452 |
ObjectFaceShape face = new ObjectFaceShape(bands, bandIndices, null); |
|
| 453 |
ObjectVertexEffects effects = createEffects(); |
|
| 454 |
FactoryCubit factory = FactoryCubit.getInstance(); |
|
| 455 |
factory.clear(); |
|
| 456 |
factory.createNewFaceTransform(shape); |
|
| 457 |
mMesh = factory.createRoundedSolid(shape,face,effects,numFaces); |
|
| 458 |
|
|
| 459 |
int numEff = mMesh.getNumEffComponents(); |
|
| 460 |
for(int i=0; i<numEff; i++) mMesh.setEffectAssociation(i, 0, i); |
|
| 461 |
} |
|
| 462 |
|
|
| 463 | 405 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 464 | 406 |
|
| 465 | 407 |
private void openMesh(int resourceID) |
| ... | ... | |
| 527 | 469 |
return mMesh.getLastVertexEff(component); |
| 528 | 470 |
} |
| 529 | 471 |
|
| 530 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 531 |
|
|
| 532 |
int getEndTexIndex(int component) |
|
| 533 |
{
|
|
| 534 |
return mMesh.getLastVertexTex(component); |
|
| 535 |
} |
|
| 536 |
|
|
| 537 | 472 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 538 | 473 |
|
| 539 | 474 |
int getEffComponentNum() |
| ... | ... | |
| 541 | 476 |
return mMesh.getNumEffComponents(); |
| 542 | 477 |
} |
| 543 | 478 |
|
| 544 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 545 |
|
|
| 546 |
int getTexComponentNum() |
|
| 547 |
{
|
|
| 548 |
return mMesh.getNumTexComponents(); |
|
| 549 |
} |
|
| 550 |
|
|
| 551 | 479 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 552 | 480 |
|
| 553 | 481 |
public void distortedException(Exception ex) |
Also available in: Unified diff
remove the dependency on objectlib