Revision 6f779cd4
Added by Leszek Koltunski over 8 years ago
src/main/java/org/distorted/examples/fragment3d/Fragment3DActivity.java | ||
---|---|---|
362 | 362 |
case 8: mObject.saturation(dyn1, regi, true ); break; |
363 | 363 |
case 9: mObject.contrast (dyn1, regi, false); break; |
364 | 364 |
case 10:mObject.contrast (dyn1, regi, true ); break; |
365 |
|
|
366 | 365 |
} |
367 | 366 |
} |
368 | 367 |
|
src/main/java/org/distorted/examples/vertex3d/Vertex3DActivity.java | ||
---|---|---|
70 | 70 |
private ArrayList<Vertex3DEffect> mEffects; |
71 | 71 |
private int mEffectAdd; |
72 | 72 |
private float mCenterX, mCenterY; |
73 |
private float mRegionX, mRegionY, mRegionR; |
|
73 | 74 |
|
74 | 75 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
75 | 76 |
|
... | ... | |
201 | 202 |
tmp.setBackgroundColor(mShape[id] ? COLOR_ON:COLOR_OFF); |
202 | 203 |
} |
203 | 204 |
|
205 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
206 |
|
|
207 |
public void setRegion(float x, float y, float r) |
|
208 |
{ |
|
209 |
mRegionX = x; |
|
210 |
mRegionY = y; |
|
211 |
mRegionR = r; |
|
212 |
|
|
213 |
Vertex3DSurfaceView view = (Vertex3DSurfaceView)findViewById(R.id.vertex3dSurfaceView); |
|
214 |
|
|
215 |
view.getRenderer().setRegion(mRegionX, mRegionY, mRegionR); |
|
216 |
} |
|
217 |
|
|
204 | 218 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
205 | 219 |
|
206 | 220 |
public void setCenter(float x, float y) |
... | ... | |
227 | 241 |
return mCenterY; |
228 | 242 |
} |
229 | 243 |
|
244 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
245 |
|
|
246 |
public float getRegionX() |
|
247 |
{ |
|
248 |
return mRegionX; |
|
249 |
} |
|
250 |
|
|
251 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
252 |
|
|
253 |
public float getRegionY() |
|
254 |
{ |
|
255 |
return mRegionY; |
|
256 |
} |
|
257 |
|
|
258 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
259 |
|
|
260 |
public float getRegionR() |
|
261 |
{ |
|
262 |
return mRegionR; |
|
263 |
} |
|
264 |
|
|
230 | 265 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
231 | 266 |
|
232 | 267 |
public void Continue(View v) |
... | ... | |
312 | 347 |
} |
313 | 348 |
|
314 | 349 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
315 |
// 'second screen' methods |
|
316 | 350 |
|
317 |
private void setVertexView()
|
|
351 |
private void resetData()
|
|
318 | 352 |
{ |
319 | 353 |
mCenterX = 0.5f*getWidth(); |
320 | 354 |
mCenterY = 0.5f*getHeight(); |
355 |
mRegionX = 0; |
|
356 |
mRegionY = 0; |
|
357 |
mRegionR = getWidth()/2; |
|
358 |
} |
|
359 |
|
|
360 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
361 |
// 'second screen' methods |
|
362 |
|
|
363 |
private void setVertexView() |
|
364 |
{ |
|
365 |
resetData(); |
|
321 | 366 |
|
322 | 367 |
final View view = getLayoutInflater().inflate(R.layout.vertex3dlayout, null); |
323 | 368 |
|
... | ... | |
392 | 437 |
layout.removeAllViews(); |
393 | 438 |
mObject.abortEffects(EffectTypes.VERTEX); |
394 | 439 |
|
395 |
mCenterX = 0.5f*getWidth(); |
|
396 |
mCenterY = 0.5f*getHeight(); |
|
440 |
resetData(); |
|
397 | 441 |
|
398 | 442 |
Vertex3DSurfaceView view = (Vertex3DSurfaceView)findViewById(R.id.vertex3dSurfaceView); |
399 | 443 |
Vertex3DRenderer renderer= view.getRenderer(); |
400 | 444 |
|
401 | 445 |
renderer.setCenter( mCenterX, mCenterY ); |
446 |
renderer.setRegion( mRegionX, mRegionY, mRegionR ); |
|
402 | 447 |
renderer.mQuat1.set(0,0,0,1); |
403 | 448 |
renderer.mQuat2.set(0,0,0,1); |
404 | 449 |
} |
src/main/java/org/distorted/examples/vertex3d/Vertex3DEffect.java | ||
---|---|---|
70 | 70 |
float x = (mInterCenter[0]*0.012f - 0.1f)*act.getWidth(); |
71 | 71 |
float y = (mInterCenter[1]*0.012f - 0.1f)*act.getHeight(); |
72 | 72 |
mCenterSta.set(x,y); |
73 |
|
|
74 |
act.setCenter(x,y); |
|
75 | 73 |
} |
76 | 74 |
|
77 | 75 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
452 | 450 |
setCenterText(); |
453 | 451 |
} |
454 | 452 |
|
455 |
mAct.get().setCenter(mCenterSta.getX(),mCenterSta.getY()); |
|
453 |
Vertex3DActivity act = mAct.get(); |
|
454 |
|
|
455 |
act.setCenter(mCenterSta.getX(),mCenterSta.getY()); |
|
456 |
act.setRegion(mRegionSta.getX(),mRegionSta.getY(), mRegionSta.getZ()); |
|
456 | 457 |
} |
457 | 458 |
|
458 | 459 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/examples/vertex3d/Vertex3DRenderer.java | ||
---|---|---|
48 | 48 |
private DistortedObject mObject; |
49 | 49 |
private DistortedBitmap mBackground; |
50 | 50 |
private DistortedBitmap mCenter; |
51 |
private DistortedBitmap mRegion; |
|
51 | 52 |
private int mObjWidth, mObjHeight; |
52 | 53 |
private DynamicQuat mQuatInt1, mQuatInt2; |
53 | 54 |
|
54 | 55 |
private Dynamic3D mMoveInter; |
55 | 56 |
private Static3D mMovePoint; |
56 |
private float mFactorObj; |
|
57 |
private Dynamic3D mRegionScaleInter; |
|
58 |
private Static3D mRegionScalePoint; |
|
59 |
|
|
60 |
private float mFactorObj, mFactorReg; |
|
57 | 61 |
|
58 | 62 |
Static4D mQuat1, mQuat2; |
59 | 63 |
int mScreenMin; |
60 | 64 |
|
61 |
|
|
62 | 65 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
63 | 66 |
|
64 | 67 |
public Vertex3DRenderer(GLSurfaceView v) |
... | ... | |
68 | 71 |
mObject = ((Vertex3DActivity)v.getContext()).getObject(); |
69 | 72 |
mBackground = new DistortedBitmap(100, 100, 1); |
70 | 73 |
mCenter = new DistortedBitmap(100, 100, 1); |
74 |
mRegion = new DistortedBitmap(100, 100, 1); |
|
71 | 75 |
|
72 | 76 |
mObjWidth = mObject.getWidth(); |
73 | 77 |
mObjHeight= mObject.getHeight(); |
... | ... | |
81 | 85 |
mQuatInt1.add(mQuat1); |
82 | 86 |
mQuatInt2.add(mQuat2); |
83 | 87 |
|
84 |
mMovePoint= new Static3D(0,0,0); |
|
85 | 88 |
mMoveInter= new Dynamic3D(); |
89 |
mMovePoint= new Static3D(0,0,0); |
|
86 | 90 |
mMoveInter.add(mMovePoint); |
91 |
|
|
92 |
mRegionScaleInter = new Dynamic3D(); |
|
93 |
mRegionScalePoint = new Static3D(0,0,0); |
|
94 |
mRegionScaleInter.add(mRegionScalePoint); |
|
87 | 95 |
} |
88 | 96 |
|
89 | 97 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
93 | 101 |
mMovePoint.set(mFactorObj*x,mFactorObj*y,0); |
94 | 102 |
} |
95 | 103 |
|
104 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
105 |
|
|
106 |
public void setRegion(float x, float y, float r) |
|
107 |
{ |
|
108 |
float f = mFactorReg*r; |
|
109 |
mRegionScalePoint.set(f,f,f); |
|
110 |
} |
|
111 |
|
|
96 | 112 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
97 | 113 |
|
98 | 114 |
public void onDrawFrame(GL10 glUnused) |
... | ... | |
105 | 121 |
mBackground.draw(time); |
106 | 122 |
mObject.draw(time); |
107 | 123 |
mCenter.draw(time); |
124 |
mRegion.draw(time); |
|
108 | 125 |
} |
109 | 126 |
|
110 | 127 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
116 | 133 |
mObject.abortEffects(EffectTypes.MATRIX); |
117 | 134 |
mBackground.abortEffects(EffectTypes.MATRIX); |
118 | 135 |
mCenter.abortEffects(EffectTypes.MATRIX); |
136 |
mRegion.abortEffects(EffectTypes.MATRIX); |
|
119 | 137 |
|
120 | 138 |
float factorCen; |
121 | 139 |
int centerSize = mCenter.getWidth(); |
140 |
int regionSize = mRegion.getWidth(); |
|
141 |
|
|
142 |
mFactorReg = (0.5f*width)/regionSize; |
|
122 | 143 |
|
123 | 144 |
if( width*mObjHeight > height*mObjWidth ) // screen is more 'horizontal' than the Object |
124 | 145 |
{ |
... | ... | |
133 | 154 |
|
134 | 155 |
Vertex3DActivity act = (Vertex3DActivity)mView.getContext(); |
135 | 156 |
mMovePoint.set(mFactorObj*act.getCenterX(),mFactorObj*act.getCenterY(),0); |
157 |
float f = mFactorReg*act.getRegionR(); |
|
158 |
mRegionScalePoint.set(f,f,f); |
|
136 | 159 |
|
137 | 160 |
Static3D rotateObj = new Static3D(mObjWidth/2,mObjHeight/2, 0); |
138 | 161 |
|
... | ... | |
151 | 174 |
mCenter.move(mMoveInter); |
152 | 175 |
mCenter.scale(factorCen); |
153 | 176 |
|
177 |
mRegion.quaternion(mQuatInt1, rotateCen); |
|
178 |
mRegion.quaternion(mQuatInt2, rotateCen); |
|
179 |
|
|
180 |
mRegion.move( new Static3D( (width -mFactorReg*regionSize-mFactorObj*mObjWidth )/2 , |
|
181 |
(height-mFactorReg*regionSize-mFactorObj*mObjHeight)/2 , 12) ); |
|
182 |
mRegion.move(mMoveInter); |
|
183 |
mRegion.scale(mRegionScaleInter); |
|
184 |
|
|
154 | 185 |
int backgroundSize = mBackground.getWidth(); |
155 | 186 |
float factorBackX = ((float)width)/backgroundSize; |
156 | 187 |
float factorBackY = ((float)height)/backgroundSize; |
... | ... | |
170 | 201 |
InputStream is1 = act.getResources().openRawResource(act.getBitmap()); |
171 | 202 |
InputStream is2 = act.getResources().openRawResource(R.raw.water); |
172 | 203 |
InputStream is3 = act.getResources().openRawResource(R.raw.center); |
204 |
InputStream is4 = act.getResources().openRawResource(R.raw.region); |
|
173 | 205 |
|
174 |
Bitmap bitmap1,bitmap2,bitmap3; |
|
206 |
Bitmap bitmap1,bitmap2,bitmap3,bitmap4;
|
|
175 | 207 |
|
176 | 208 |
try |
177 | 209 |
{ |
178 | 210 |
bitmap1 = BitmapFactory.decodeStream(is1); |
179 | 211 |
bitmap2 = BitmapFactory.decodeStream(is2); |
180 | 212 |
bitmap3 = BitmapFactory.decodeStream(is3); |
213 |
bitmap4 = BitmapFactory.decodeStream(is4); |
|
181 | 214 |
} |
182 | 215 |
finally |
183 | 216 |
{ |
... | ... | |
186 | 219 |
is1.close(); |
187 | 220 |
is2.close(); |
188 | 221 |
is3.close(); |
222 |
is4.close(); |
|
189 | 223 |
} |
190 | 224 |
catch(IOException e) { } |
191 | 225 |
} |
... | ... | |
193 | 227 |
mObject.setBitmap(bitmap1); |
194 | 228 |
mBackground.setBitmap(bitmap2); |
195 | 229 |
mCenter.setBitmap(bitmap3); |
230 |
mRegion.setBitmap(bitmap4); |
|
196 | 231 |
|
197 | 232 |
try |
198 | 233 |
{ |
Also available in: Unified diff
beginnings of support for drawing the Region in Vertex3D app.