Project

General

Profile

« Previous | Next » 

Revision 5e23b17b

Added by Leszek Koltunski about 5 years ago

Make the 'PINCH' effect fully 3D (define its acting line in terms of (latitude,longitude) angle pair).

Still, something is not fully working in the Earth app with the effect - investigate.

View differences:

src/main/java/org/distorted/examples/generic/GenericEffect.java
116 116
      case DISTORT          : effect = new VertexEffectDistort     (mDyn3, mCenterDyn, mRegion4Dyn); break;
117 117
      case DEFORM           : effect = new VertexEffectDeform      (mDyn3, mCenterDyn, mRegion4Dyn); break;
118 118
      case SINK             : effect = new VertexEffectSink        (mDyn1, mCenterDyn, mRegion4Dyn); break;
119
      case PINCH            : effect = new VertexEffectPinch       (mDyn2, mCenterDyn, mRegion4Dyn); break;
119
      case PINCH            : effect = new VertexEffectPinch       (mDyn3, mCenterDyn, mRegion4Dyn); break;
120 120
      case SWIRL            : effect = new VertexEffectSwirl       (mDyn1, mCenterDyn, mRegion4Dyn); break;
121 121
      case WAVE             : effect = new VertexEffectWave        (mDyn5, mCenterDyn, mRegion4Dyn); break;
122 122

  
......
153 153
      // MATRIX
154 154
      ///////////////////////////////////////////////////////////////////////////////////////
155 155

  
156
      case ROTATE           : float an = (mInter[0]-50)*180/50;
156
      case ROTATE           : float an = (mInter[0]-50)*180/50.0f;
157 157
                              float rx = (mInter[1]-50)/ 50.0f;
158 158
                              float ry = (mInter[2]-50)/ 50.0f;
159 159
                              float rz = (mInter[3]-50)/ 50.0f;
......
202 202
      case WAVE             : float l2 = mAct.get().getWidth()/50.0f;
203 203
                              float x2 = (mInter[0]-50)*l2;
204 204
                              float y2 = (mInter[1]-50)*l2;
205
                              float z2 = (mInter[2]-50)*180 / 50;
206
                              float w2 = (mInter[3]-50)*180 / 50;
207
                              float v2 = (mInter[4]-50)*180 / 50;
205
                              float z2 = (mInter[2]-50)*180 / 50.0f;
206
                              float w2 = (mInter[3]-50)*180 / 50.0f;
207
                              float v2 = (mInter[4]-50)*180 / 50.0f;
208 208
                              mSta5.set(x2,y2,z2,w2,v2);
209 209
                              break;
210 210
      case SWIRL            : mSta1.set( 3.6f*(mInter[0]-50) );
......
212 212
      case SINK             : mSta1.set(mInter[0] > 50 ? 50.0f/(100.01f-mInter[0]) : mInter[0] / 50.0f);
213 213
                              break;
214 214
      case PINCH            : float dp = mInter[0] > 50 ? 50.0f/(100.01f-mInter[0]) : mInter[0] / 50.0f;
215
                              float ap = (mInter[1]-50)*180 / 50;
216
                              mSta2.set(dp,ap);
215
                              float ap = (mInter[1]-50)*180 / 50.0f;
216
                              float bp = (mInter[2]-50)*180 / 50.0f;
217
                              mSta3.set(dp,ap,bp);
217 218
                              break;
218 219

  
219 220
      ///////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff