Revision edc4a0e4
Added by Leszek Koltunski almost 6 years ago
src/main/java/org/distorted/examples/earth/EarthRenderer.java | ||
---|---|---|
50 | 50 |
import org.distorted.library.type.Dynamic3D; |
51 | 51 |
import org.distorted.library.type.DynamicQuat; |
52 | 52 |
import org.distorted.library.type.Static1D; |
53 |
import org.distorted.library.type.Static2D; |
|
53 | 54 |
import org.distorted.library.type.Static3D; |
54 | 55 |
import org.distorted.library.type.Static4D; |
56 |
import org.distorted.library.type.Static5D; |
|
55 | 57 |
|
56 | 58 |
import java.io.IOException; |
57 | 59 |
import java.io.InputStream; |
... | ... | |
64 | 66 |
class EarthRenderer implements GLSurfaceView.Renderer |
65 | 67 |
{ |
66 | 68 |
private static final int SIZE = 500; |
67 |
private static final int RADIUS_V= SIZE/10;
|
|
69 |
private static final int RADIUS_V= SIZE/ 8;
|
|
68 | 70 |
private static final int RADIUS_F= SIZE/15; |
69 | 71 |
private static final int LEVEL = 32; |
70 | 72 |
private static final float FOV = 30.0f; |
... | ... | |
87 | 89 |
private Static3D mRegionF; |
88 | 90 |
private Static4D mRegionV; |
89 | 91 |
private Static1D mStrength; |
92 |
private Static2D mPinch; |
|
93 |
private Static1D mSwirl; |
|
90 | 94 |
|
91 | 95 |
Static4D mQuat1, mQuat2; |
92 | 96 |
int mScreenMin; |
... | ... | |
109 | 113 |
mMove = new Static3D(0,0,0); |
110 | 114 |
mScaleFactor= new Static3D(1,1,1); |
111 | 115 |
mCenter = new Static3D(0,0,0); |
116 |
mPinch = new Static2D(0.5f,0.0f); |
|
117 |
mSwirl = new Static1D(45.0f); |
|
112 | 118 |
|
113 | 119 |
Dynamic3D scale = new Dynamic3D(0,0.5f); |
114 | 120 |
scale.add(mScaleFactor); |
... | ... | |
204 | 210 |
|
205 | 211 |
Static3D center = new Static3D( (0.5f+x)*mObjWidth, (0.5f+y)*mObjHeight, (0.5f+z)*mObjDepth); |
206 | 212 |
|
207 |
//android.util.Log.e("earth", "center "+(x*mObjWidth)+" "+(y*mObjHeight)+" "+(z*mObjDepth)); |
|
208 |
//android.util.Log.e("earth", "longitude: "+longitude+" latitude:"+latitude); |
|
209 |
|
|
210 | 213 |
switch(name) |
211 | 214 |
{ |
212 | 215 |
case DISTORT : vector = new Static3D( +x*mObjWidth/CORR, +y*mObjHeight/CORR, +z*mObjDepth/CORR); |
213 |
effect = new VertexEffectDistort( vector, center, mRegionV); break; |
|
216 |
effect = new VertexEffectDistort( vector, center, mRegionV); break;
|
|
214 | 217 |
case DEFORM : vector = new Static3D( +x*mObjWidth/CORR, +y*mObjHeight/CORR, +z*mObjDepth/CORR); |
215 |
effect = new VertexEffectDeform ( vector, center, mRegionV); break; |
|
216 |
/*
|
|
217 |
case SINK : effect = new VertexEffectSink (mDyn1, center, mRegionV); break;
|
|
218 |
case PINCH : effect = new VertexEffectPinch (mDyn2, center, mRegionV); break;
|
|
219 |
case SWIRL : effect = new VertexEffectSwirl (mDyn1, center, mRegionV); break;
|
|
220 |
case WAVE : effect = new VertexEffectWave (mDyn5, center, mRegionV); break;
|
|
221 |
*/ |
|
218 |
effect = new VertexEffectDeform ( vector, center, mRegionV); break;
|
|
219 |
case SINK : effect = new VertexEffectSink (mStrength, center, mRegionV); break;
|
|
220 |
case PINCH : effect = new VertexEffectPinch (mPinch , center, mRegionV); break; // Those 3 are not really
|
|
221 |
case SWIRL : effect = new VertexEffectSwirl (mSwirl , center, mRegionV); break; // fully 3D effects. They
|
|
222 |
case WAVE : Static5D wave = new Static5D( RADIUS_V/2, RADIUS_V/2, 0, 90-latitude, 90); // will not look good
|
|
223 |
effect = new VertexEffectWave (wave , center, mRegionV); break; // everywhere on the sphere.
|
|
224 |
|
|
222 | 225 |
case ALPHA : effect = new FragmentEffectAlpha (mStrength, center, mRegionF, false); break; |
223 | 226 |
case SMOOTH_ALPHA : effect = new FragmentEffectAlpha (mStrength, center, mRegionF, true ); break; |
224 | 227 |
case CHROMA : effect = new FragmentEffectChroma (mStrength, mColor,center, mRegionF, false); break; |
Also available in: Unified diff
Make the Sink effect fully 3D.