Revision 7c8012ee
Added by Leszek Koltunski over 7 years ago
src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java | ||
---|---|---|
83 | 83 |
{ |
84 | 84 |
case ROTATE : mId = object.rotate (mDyn4, mCenterDyn); break; |
85 | 85 |
case QUATERNION : mId = object.quaternion(mDyn4, mCenterDyn); break; |
86 |
case MOVE : mId = object.move (mDyn3) ; break;
|
|
87 |
case SCALE : mId = object.scale (mDyn3) ; break;
|
|
86 |
case MOVE : mId = object.move (mDyn3) ; break; |
|
87 |
case SCALE : mId = object.scale (mDyn3) ; break; |
|
88 | 88 |
case SHEAR : mId = object.shear (mDyn3, mCenterDyn); break; |
89 | 89 |
|
90 |
case DISTORT: mId = object.distort(mDyn3, mCenterDyn, mRegionDyn); break;
|
|
91 |
case DEFORM : mId = object.deform (mDyn3, mCenterDyn ); break;
|
|
92 |
case SINK : mId = object.sink (mDyn1, mCenterDyn, mRegionDyn); break;
|
|
93 |
case PINCH : mId = object.pinch (mDyn2, mCenterDyn, mRegionDyn); break;
|
|
94 |
case SWIRL : mId = object.swirl (mDyn1, mCenterDyn, mRegionDyn); break;
|
|
95 |
case WAVE : mId = object.wave (mDyn5, mCenterDyn, mRegionDyn); break;
|
|
90 |
case DISTORT : mId = object.distort (mDyn3, mCenterDyn, mRegionDyn); break;
|
|
91 |
case DEFORM : mId = object.deform (mDyn3, mCenterDyn ); break;
|
|
92 |
case SINK : mId = object.sink (mDyn1, mCenterDyn, mRegionDyn); break;
|
|
93 |
case PINCH : mId = object.pinch (mDyn2, mCenterDyn, mRegionDyn); break;
|
|
94 |
case SWIRL : mId = object.swirl (mDyn1, mCenterDyn, mRegionDyn); break;
|
|
95 |
case WAVE : mId = object.wave (mDyn5, mCenterDyn, mRegionDyn); break;
|
|
96 | 96 |
|
97 | 97 |
case ALPHA : mId = object.alpha (mDyn1, mRegionDyn, false); break; |
98 | 98 |
case SMOOTH_ALPHA : mId = object.alpha (mDyn1, mRegionDyn, true ); break; |
... | ... | |
122 | 122 |
float rz = (mInter[3]-50)/ 50.0f; |
123 | 123 |
mSta4.set(an,rx,ry,rz); |
124 | 124 |
break; |
125 |
case QUATERNION : |
|
125 |
case QUATERNION : float qx = (mInter[0]-50)/ 50.0f; |
|
126 |
float qy = (mInter[1]-50)/ 50.0f; |
|
127 |
float qz = (mInter[2]-50)/ 50.0f; |
|
128 |
float qa = (mInter[3]-50)*3.1415f/50; |
|
129 |
float cosA = (float)Math.cos(qa/2); |
|
130 |
float len = (float)Math.sqrt(qx*qx+qy*qy+qz*qz); |
|
131 |
float sinAnorm = (float)Math.sin(qa/2)/len; |
|
132 |
mSta4.set(sinAnorm*qx,sinAnorm*qy,sinAnorm*qz, cosA); |
|
126 | 133 |
break; |
127 | 134 |
case MOVE : float sw = mAct.get().getScreenWidth()/50.0f; |
128 | 135 |
float sh = mAct.get().getScreenWidth()/50.0f; |
... | ... | |
141 | 148 |
float zsh = (mInter[2]-50)/25.0f; |
142 | 149 |
mSta3.set(xsh,ysh,zsh); |
143 | 150 |
break; |
151 |
|
|
144 | 152 |
case DISTORT : |
145 | 153 |
case DEFORM : float ld = mAct.get().getWidth()/50.0f; |
146 | 154 |
float xd = (mInter[0]-50)*ld; |
... | ... | |
197 | 205 |
case 1: mInter[0] = 50; |
198 | 206 |
} |
199 | 207 |
|
200 |
if( mName==EffectNames.ROTATE ) mInter[1]= 100; |
|
208 |
if( mName==EffectNames.ROTATE || mName==EffectNames.QUATERNION ) mInter[1]= 100;
|
|
201 | 209 |
} |
202 | 210 |
|
203 | 211 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
357 | 365 |
mSta3 = new Static3D(0,0,0); |
358 | 366 |
mDyn3.add(mSta3); |
359 | 367 |
break; |
360 |
case 4 : if( mName == EffectNames.QUATERNION || mName == EffectNames.ROTATE )
|
|
368 |
case 4 : if( mName == EffectNames.ROTATE || mName == EffectNames.QUATERNION )
|
|
361 | 369 |
{ |
362 | 370 |
mDyn4 = new Dynamic4D(); |
363 | 371 |
mSta4 = new Static4D(0,0,0,0); |
Also available in: Unified diff
Matrix3D: implement quaternion effect