Revision 9cbe58b0
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/examples/deferredjob/DeferredJobRenderer.java | ||
|---|---|---|
| 75 | 75 |
sink.add( new Static1D(0.5f) ); |
| 76 | 76 |
sink.add( new Static1D(2.0f) ); |
| 77 | 77 |
|
| 78 |
mQuat1 = new Static4D(0,0,0,1); // unity
|
|
| 79 |
mQuat2 = new Static4D(0,0,0,1); // quaternions
|
|
| 78 |
mQuat1 = new Static4D(0,0,0,1); |
|
| 79 |
mQuat2 = new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f);
|
|
| 80 | 80 |
|
| 81 | 81 |
DynamicQuat quatInt1 = new DynamicQuat(0,0.5f); |
| 82 | 82 |
DynamicQuat quatInt2 = new DynamicQuat(0,0.5f); |
| src/main/java/org/distorted/examples/singlemesh/SingleMeshActivity.java | ||
|---|---|---|
| 79 | 79 |
|
| 80 | 80 |
switch(id) |
| 81 | 81 |
{
|
| 82 |
case R.id.singlemeshButton0 : sView.getRenderer().apply(0); break; |
|
| 83 |
case R.id.singlemeshButton1 : sView.getRenderer().apply(1); break; |
|
| 82 |
case R.id.singlemeshButtonLX : sView.getRenderer().apply( (1<<4) + (0<<2) + 0, 0 ); break; |
|
| 83 |
case R.id.singlemeshButtonRX : sView.getRenderer().apply( (2<<4) + (0<<2) + 0, 0 ); break; |
|
| 84 |
case R.id.singlemeshButtonLY : sView.getRenderer().apply( (0<<4) + (1<<2) + 0, 1 ); break; |
|
| 85 |
case R.id.singlemeshButtonRY : sView.getRenderer().apply( (0<<4) + (2<<2) + 0, 1 ); break; |
|
| 86 |
case R.id.singlemeshButtonLZ : sView.getRenderer().apply( (0<<4) + (0<<2) + 1, 2 ); break; |
|
| 87 |
case R.id.singlemeshButtonRZ : sView.getRenderer().apply( (0<<4) + (0<<2) + 2, 2 ); break; |
|
| 84 | 88 |
} |
| 85 | 89 |
} |
| 86 | 90 |
} |
| src/main/java/org/distorted/examples/singlemesh/SingleMeshRenderer.java | ||
|---|---|---|
| 54 | 54 |
{
|
| 55 | 55 |
private static final float DIST = 0.5f; |
| 56 | 56 |
|
| 57 |
private static Static3D[] AXIS = new Static3D[] |
|
| 58 |
{
|
|
| 59 |
new Static3D(1,0,0), |
|
| 60 |
new Static3D(0,1,0), |
|
| 61 |
new Static3D(0,0,1) |
|
| 62 |
}; |
|
| 63 |
|
|
| 57 | 64 |
private static final int[] FACE_COLORS = new int[] |
| 58 | 65 |
{
|
| 59 | 66 |
0xffffff00, 0xffffffff, // (right-YELLOW) (left -WHITE) |
| ... | ... | |
| 104 | 111 |
private VertexEffectRotate mRotate; |
| 105 | 112 |
private Dynamic1D mAngleDyn; |
| 106 | 113 |
private Static1D mAngle; |
| 114 |
private Static3D mAxis; |
|
| 107 | 115 |
|
| 108 | 116 |
Static4D mQuat1, mQuat2; |
| 109 | 117 |
int mScreenMin; |
| ... | ... | |
| 121 | 129 |
sink.add( new Static1D(0.5f) ); |
| 122 | 130 |
sink.add( new Static1D(2.0f) ); |
| 123 | 131 |
|
| 124 |
mQuat1 = new Static4D(0,0,0,1); // unity
|
|
| 125 |
mQuat2 = new Static4D(0,0,0,1); // quaternions
|
|
| 132 |
mQuat1 = new Static4D(0,0,0,1); |
|
| 133 |
mQuat2 = new Static4D(-0.25189602f,0.3546389f,0.009657208f,0.90038127f);
|
|
| 126 | 134 |
|
| 127 | 135 |
DynamicQuat quatInt1 = new DynamicQuat(0,0.5f); |
| 128 | 136 |
DynamicQuat quatInt2 = new DynamicQuat(0,0.5f); |
| ... | ... | |
| 131 | 139 |
quatInt2.add(mQuat2); |
| 132 | 140 |
|
| 133 | 141 |
mAngle = new Static1D(0); |
| 142 |
mAxis = new Static3D(1,0,0); |
|
| 134 | 143 |
|
| 135 | 144 |
mAngleDyn = new Dynamic1D(2000,0.5f); |
| 136 | 145 |
mAngleDyn.add(new Static1D(0)); |
| 137 | 146 |
mAngleDyn.add( mAngle ); |
| 138 | 147 |
|
| 139 |
mRotate = new VertexEffectRotate( mAngleDyn, new Static3D(1,0,0), new Static3D(0,0,0) );
|
|
| 148 |
mRotate = new VertexEffectRotate( mAngleDyn, mAxis, new Static3D(0,0,0) );
|
|
| 140 | 149 |
|
| 141 | 150 |
mEffects = new DistortedEffects(); |
| 142 | 151 |
mEffects.apply( mRotate ); |
| ... | ... | |
| 192 | 201 |
|
| 193 | 202 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 194 | 203 |
|
| 195 |
void apply(int number)
|
|
| 204 |
void apply(int andAssoc, int axisIndex)
|
|
| 196 | 205 |
{
|
| 197 |
mRotate.setMeshAssociation(0,number); |
|
| 206 |
mRotate.setMeshAssociation(andAssoc,-1); |
|
| 207 |
|
|
| 198 | 208 |
mAngle.set(360); |
| 209 |
|
|
| 210 |
mAxis.set0(AXIS[axisIndex].get0()); |
|
| 211 |
mAxis.set1(AXIS[axisIndex].get1()); |
|
| 212 |
mAxis.set2(AXIS[axisIndex].get2()); |
|
| 213 |
|
|
| 199 | 214 |
mAngleDyn.resetToBeginning(); |
| 200 | 215 |
} |
| 201 | 216 |
|
| ... | ... | |
| 348 | 363 |
|
| 349 | 364 |
MeshBase result = new MeshJoined(cubits); |
| 350 | 365 |
|
| 366 |
result.setEffectAssociation( 0, (1<<4) + (1<<2) + 1, 0); |
|
| 367 |
result.setEffectAssociation( 1, (1<<4) + (1<<2) + 2, 0); |
|
| 368 |
result.setEffectAssociation( 2, (1<<4) + (2<<2) + 1, 0); |
|
| 369 |
result.setEffectAssociation( 3, (1<<4) + (2<<2) + 2, 0); |
|
| 370 |
result.setEffectAssociation( 4, (2<<4) + (1<<2) + 1, 0); |
|
| 371 |
result.setEffectAssociation( 5, (2<<4) + (1<<2) + 2, 0); |
|
| 372 |
result.setEffectAssociation( 6, (2<<4) + (2<<2) + 1, 0); |
|
| 373 |
result.setEffectAssociation( 7, (2<<4) + (2<<2) + 2, 0); |
|
| 374 |
|
|
| 351 | 375 |
return result; |
| 352 | 376 |
} |
| 353 | 377 |
} |
| src/main/res/layout/singlemeshlayout.xml | ||
|---|---|---|
| 18 | 18 |
<Button |
| 19 | 19 |
android:layout_width="wrap_content" |
| 20 | 20 |
android:layout_height="match_parent" |
| 21 |
android:id="@+id/singlemeshButton0"
|
|
| 22 |
android:text="@string/color_red"
|
|
| 21 |
android:id="@+id/singlemeshButtonLX"
|
|
| 22 |
android:text="LX"
|
|
| 23 | 23 |
android:onClick="onClick" |
| 24 | 24 |
android:layout_weight="1"/> |
| 25 | 25 |
<Button |
| 26 | 26 |
android:layout_width="wrap_content" |
| 27 | 27 |
android:layout_height="match_parent" |
| 28 |
android:id="@+id/singlemeshButton1" |
|
| 29 |
android:text="@string/color_green" |
|
| 28 |
android:id="@+id/singlemeshButtonRX" |
|
| 29 |
android:text="RX" |
|
| 30 |
android:onClick="onClick" |
|
| 31 |
android:layout_weight="1"/> |
|
| 32 |
<Button |
|
| 33 |
android:layout_width="wrap_content" |
|
| 34 |
android:layout_height="match_parent" |
|
| 35 |
android:id="@+id/singlemeshButtonLY" |
|
| 36 |
android:text="LY" |
|
| 37 |
android:onClick="onClick" |
|
| 38 |
android:layout_weight="1"/> |
|
| 39 |
<Button |
|
| 40 |
android:layout_width="wrap_content" |
|
| 41 |
android:layout_height="match_parent" |
|
| 42 |
android:id="@+id/singlemeshButtonRY" |
|
| 43 |
android:text="RY" |
|
| 44 |
android:onClick="onClick" |
|
| 45 |
android:layout_weight="1"/> |
|
| 46 |
<Button |
|
| 47 |
android:layout_width="wrap_content" |
|
| 48 |
android:layout_height="match_parent" |
|
| 49 |
android:id="@+id/singlemeshButtonLZ" |
|
| 50 |
android:text="LZ" |
|
| 51 |
android:onClick="onClick" |
|
| 52 |
android:layout_weight="1"/> |
|
| 53 |
<Button |
|
| 54 |
android:layout_width="wrap_content" |
|
| 55 |
android:layout_height="match_parent" |
|
| 56 |
android:id="@+id/singlemeshButtonRZ" |
|
| 57 |
android:text="RZ" |
|
| 30 | 58 |
android:onClick="onClick" |
| 31 | 59 |
android:layout_weight="1"/> |
| 32 | 60 |
|
Also available in: Unified diff
Library: make setEffectAssociation a deferred job (because we do copy the uniforms during join!)
SingleMesh App: almost finished.