Project

General

Profile

« Previous | Next » 

Revision 75c7def3

Added by Leszek Koltunski almost 8 years ago

Fragment3D close to done now!

View differences:

src/main/java/org/distorted/examples/fragment3d/Fragment3DEffect.java
29 29
import org.distorted.library.EffectNames;
30 30
import org.distorted.library.type.Dynamic1D;
31 31
import org.distorted.library.type.Dynamic3D;
32
import org.distorted.library.type.Dynamic4D;
32 33
import org.distorted.library.type.Static1D;
33 34
import org.distorted.library.type.Static3D;
35
import org.distorted.library.type.Static4D;
34 36

  
35 37
///////////////////////////////////////////////////////////////////////////////////////////////////
36 38

  
......
38 40
  {
39 41
  private EffectNames mName;
40 42
  private int[] mInter;
41
  private SeekBar[] mSeek;
43
  private int[] mInterRegion;
44
  private int[] mSeekID;
45
  private int[] mSeekRegionID;
42 46
  private int mDimension;
43 47
  private TextView mText;
48
  private TextView mTextRegion;
44 49

  
45 50
  private Dynamic1D mDyn1;
46 51
  private Dynamic3D mDyn3;
47 52
  private Static1D  mSta1;
48 53
  private Static3D  mSta3;
54
  private Dynamic4D mRegionDyn;
55
  private Static4D  mRegionSta;
56

  
57
///////////////////////////////////////////////////////////////////////////////////////////////////
58

  
59
  private void fillRegionStatics()
60
    {
61
    float factorX = 2.0f;
62
    float factorY = 2.0f;
63

  
64
    float  x = (mInterRegion[0]-50)*factorX;
65
    float  y = (mInterRegion[1]-50)*factorY;
66
    float rx = (mInterRegion[2]   )*factorX;
67
    float ry = (mInterRegion[3]   )*factorY;
68

  
69
    mRegionSta.set(x,y,rx,ry);
70
    }
71

  
72
///////////////////////////////////////////////////////////////////////////////////////////////////
73

  
74
  private void setDefaultRegionInter()
75
    {
76
    mInterRegion[0] = 50;
77
    mInterRegion[1] = 50;
78
    mInterRegion[2] = 50;
79
    mInterRegion[3] = 50;
80
    }
81

  
82
///////////////////////////////////////////////////////////////////////////////////////////////////
83

  
84
  private void setRegionText()
85
    {
86
    mTextRegion.setText("region ("+mRegionSta.getX()+","+mRegionSta.getY()+","+mRegionSta.getZ()+","+mRegionSta.getW()+")");
87
    }
49 88

  
50 89
///////////////////////////////////////////////////////////////////////////////////////////////////
51 90

  
......
131 170
      }
132 171

  
133 172
    mInter = new int[mDimension];
134
    mSeek  = new SeekBar[mDimension];
173
    mSeekID= new int[mDimension];
135 174

  
136 175
    mDyn1 = new Dynamic1D();
137 176
    mSta1 = new Static1D(0);
138 177
    mDyn1.add(mSta1);
178

  
179
    mInterRegion = new int[4];
180
    mSeekRegionID= new int[4];
181
    mRegionDyn   = new Dynamic4D();
182
    mRegionSta   = new Static4D(0,0,0,0);
183
    mRegionDyn.add(mRegionSta);
139 184
    }
140 185

  
141 186
///////////////////////////////////////////////////////////////////////////////////////////////////
......
152 197
    return mDyn3;
153 198
    }
154 199

  
200
///////////////////////////////////////////////////////////////////////////////////////////////////
201

  
202
  public Dynamic4D getRegion()
203
    {
204
    return mRegionDyn;
205
    }
206

  
155 207
///////////////////////////////////////////////////////////////////////////////////////////////////
156 208

  
157 209
  public View createView(Activity act)
158 210
    {
159 211
    View effect;
212
    SeekBar[] seek = new SeekBar[mDimension];
160 213

  
161 214
    switch(mDimension)
162 215
      {
163
      case 1 : effect   = act.getLayoutInflater().inflate(R.layout.effect1d, null);
164
               mText    = (TextView)effect.findViewById(R.id.effect1dText);
165
               mSeek[0] = (SeekBar)effect.findViewById(R.id.effect1dbar1);
216
      case 1 : effect     = act.getLayoutInflater().inflate(R.layout.effect1d, null);
217
               mText      = (TextView)effect.findViewById(R.id.effect1dText);
218
               seek[0]    = (SeekBar)effect.findViewById(R.id.effect1dbar1);
219
               mSeekID[0] = seek[0].getId();
166 220
               break;
167
      case 2 : effect   = act.getLayoutInflater().inflate(R.layout.effect2d, null);
168
               mText    = (TextView)effect.findViewById(R.id.effect2dText);
169
               mSeek[0] = (SeekBar)effect.findViewById(R.id.effect2dbar1);
170
               mSeek[1] = (SeekBar)effect.findViewById(R.id.effect2dbar2);
221
      case 2 : effect     = act.getLayoutInflater().inflate(R.layout.effect2d, null);
222
               mText      = (TextView)effect.findViewById(R.id.effect2dText);
223
               seek[0]    = (SeekBar)effect.findViewById(R.id.effect2dbar1);
224
               seek[1]    = (SeekBar)effect.findViewById(R.id.effect2dbar2);
225
               mSeekID[0] = seek[0].getId();
226
               mSeekID[1] = seek[1].getId();
171 227
               break;
172
      case 3 : effect   = act.getLayoutInflater().inflate(R.layout.effect3d, null);
173
               mText    = (TextView)effect.findViewById(R.id.effect3dText);
174
               mSeek[0] = (SeekBar)effect.findViewById(R.id.effect3dbar1);
175
               mSeek[1] = (SeekBar)effect.findViewById(R.id.effect3dbar2);
176
               mSeek[2] = (SeekBar)effect.findViewById(R.id.effect3dbar3);
228
      case 3 : effect     = act.getLayoutInflater().inflate(R.layout.effect3d, null);
229
               mText      = (TextView)effect.findViewById(R.id.effect3dText);
230
               seek[0]    = (SeekBar)effect.findViewById(R.id.effect3dbar1);
231
               seek[1]    = (SeekBar)effect.findViewById(R.id.effect3dbar2);
232
               seek[2]    = (SeekBar)effect.findViewById(R.id.effect3dbar3);
233
               mSeekID[0] = seek[0].getId();
234
               mSeekID[1] = seek[1].getId();
235
               mSeekID[2] = seek[2].getId();
177 236
               break;
178
      case 4 : effect   = act.getLayoutInflater().inflate(R.layout.effect4d, null);
179
               mText    = (TextView)effect.findViewById(R.id.effect4dText);
180
               mSeek[0] = (SeekBar)effect.findViewById(R.id.effect4dbar1);
181
               mSeek[1] = (SeekBar)effect.findViewById(R.id.effect4dbar2);
182
               mSeek[2] = (SeekBar)effect.findViewById(R.id.effect4dbar3);
183
               mSeek[3] = (SeekBar)effect.findViewById(R.id.effect4dbar3);
237
      case 4 : effect     = act.getLayoutInflater().inflate(R.layout.effect4d, null);
238
               mText      = (TextView)effect.findViewById(R.id.effect4dText);
239
               seek[0]    = (SeekBar)effect.findViewById(R.id.effect4dbar1);
240
               seek[1]    = (SeekBar)effect.findViewById(R.id.effect4dbar2);
241
               seek[2]    = (SeekBar)effect.findViewById(R.id.effect4dbar3);
242
               seek[3]    = (SeekBar)effect.findViewById(R.id.effect4dbar4);
243
               mSeekID[0] = seek[0].getId();
244
               mSeekID[1] = seek[1].getId();
245
               mSeekID[2] = seek[2].getId();
246
               mSeekID[3] = seek[3].getId();
184 247
               break;
185 248
      default: android.util.Log.e("Fragment3DEffect", "dimension "+mDimension+" not supported!");
186 249
               return null;
......
192 255

  
193 256
    for(int i=0; i<mDimension; i++)
194 257
      {
195
      mSeek[i].setOnSeekBarChangeListener(this);
196
      mSeek[i].setProgress( mInter[i] );
258
      seek[i].setOnSeekBarChangeListener(this);
259
      seek[i].setProgress( mInter[i] );
197 260
      }
198 261

  
199 262
    return effect;
200 263
    }
201 264

  
265
///////////////////////////////////////////////////////////////////////////////////////////////////
266

  
267
  public View createRegion(Activity act)
268
    {
269
    View region = act.getLayoutInflater().inflate(R.layout.effectregion, null);
270

  
271
    SeekBar[] seek = new SeekBar[4];
272

  
273
    seek[0] = (SeekBar)region.findViewById(R.id.effectRegionBarX );
274
    seek[1] = (SeekBar)region.findViewById(R.id.effectRegionBarY );
275
    seek[2] = (SeekBar)region.findViewById(R.id.effectRegionBarRX);
276
    seek[3] = (SeekBar)region.findViewById(R.id.effectRegionBarRY);
277

  
278
    mSeekRegionID[0] = seek[0].getId();
279
    mSeekRegionID[1] = seek[1].getId();
280
    mSeekRegionID[2] = seek[2].getId();
281
    mSeekRegionID[3] = seek[3].getId();
282

  
283
    mTextRegion    = (TextView)region.findViewById(R.id.effectRegionText);
284

  
285
    setDefaultRegionInter();
286
    fillRegionStatics();
287
    setRegionText();
288

  
289
    for(int i=0; i<4; i++)
290
      {
291
      seek[i].setOnSeekBarChangeListener(this);
292
      seek[i].setProgress( mInterRegion[i] );
293
      }
294

  
295
    return region;
296
    }
297

  
202 298
///////////////////////////////////////////////////////////////////////////////////////////////////
203 299

  
204 300
  public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
205 301
    {
206
    if ( mDimension>=1 && bar.getId()==mSeek[0].getId() ) mInter[0] = progress;
207
    if ( mDimension>=2 && bar.getId()==mSeek[1].getId() ) mInter[1] = progress;
208
    if ( mDimension>=3 && bar.getId()==mSeek[2].getId() ) mInter[2] = progress;
209
    if ( mDimension>=4 && bar.getId()==mSeek[3].getId() ) mInter[3] = progress;
302
    if ( mDimension>=1 && bar.getId()==mSeekID[0] )
303
      {
304
      mInter[0] = progress;
305
      fillStatics();
306
      setText();
307
      }
308
    if ( mDimension>=2 && bar.getId()==mSeekID[1] )
309
      {
310
      mInter[1] = progress;
311
      fillStatics();
312
      setText();
313
      }
314
    if ( mDimension>=3 && bar.getId()==mSeekID[2] )
315
      {
316
      mInter[2] = progress;
317
      fillStatics();
318
      setText();
319
      }
320
    if ( mDimension>=4 && bar.getId()==mSeekID[3] )
321
      {
322
      mInter[3] = progress;
323
      fillStatics();
324
      setText();
325
      }
326

  
327
    if( bar.getId() == mSeekRegionID[0] )
328
      {
329
      mInterRegion[0] = progress;
330
      fillRegionStatics();
331
      setRegionText();
332
      }
333
    if( bar.getId() == mSeekRegionID[1] )
334
      {
335
      mInterRegion[1] = progress;
336
      fillRegionStatics();
337
      setRegionText();
338
      }
339
    if( bar.getId() == mSeekRegionID[2] )
340
      {
341
      mInterRegion[2] = progress;
342
      fillRegionStatics();
343
      setRegionText();
344
      }
345
    if( bar.getId() == mSeekRegionID[3] )
346
      {
347
      mInterRegion[3] = progress;
348
      fillRegionStatics();
349
      setRegionText();
350
      }
210 351

  
211
    fillStatics();
212
    setText();
213 352
    }
214 353

  
215 354
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff