Project

General

Profile

Download (17 KB) Statistics
| Branch: | Revision:

examples / src / main / java / org / distorted / examples / vertex3d / Vertex3DActivity.java @ 8fd9f5fa

1 08f92d82 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Distorted.                                                               //
5
//                                                                                               //
6
// Distorted is free software: you can redistribute it and/or modify                             //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Distorted is distributed in the hope that it will be useful,                                  //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19
20
package org.distorted.examples.vertex3d;
21
22
import android.app.Activity;
23 9167cfd4 Leszek Koltunski
import android.graphics.Bitmap;
24
import android.graphics.BitmapFactory;
25
import android.graphics.Canvas;
26
import android.graphics.Paint;
27 08f92d82 Leszek Koltunski
import android.opengl.GLSurfaceView;
28
import android.os.Bundle;
29 d40cfeb2 Leszek Koltunski
import android.view.Gravity;
30 08f92d82 Leszek Koltunski
import android.view.View;
31 50ac40a6 Leszek Koltunski
import android.widget.AdapterView;
32
import android.widget.ArrayAdapter;
33 d40cfeb2 Leszek Koltunski
import android.widget.Button;
34 08f92d82 Leszek Koltunski
import android.widget.LinearLayout;
35 d40cfeb2 Leszek Koltunski
import android.widget.NumberPicker;
36 50ac40a6 Leszek Koltunski
import android.widget.Spinner;
37 d40cfeb2 Leszek Koltunski
import android.widget.TableRow;
38 08f92d82 Leszek Koltunski
39
import org.distorted.examples.R;
40
import org.distorted.library.Distorted;
41 50ac40a6 Leszek Koltunski
import org.distorted.library.DistortedBitmap;
42
import org.distorted.library.DistortedCubes;
43
import org.distorted.library.DistortedObject;
44 08f92d82 Leszek Koltunski
import org.distorted.library.EffectNames;
45 56cbe1cf Leszek Koltunski
import org.distorted.library.EffectTypes;
46
import org.distorted.library.type.Dynamic1D;
47
import org.distorted.library.type.Dynamic2D;
48
import org.distorted.library.type.Dynamic3D;
49
import org.distorted.library.type.Dynamic4D;
50 9167cfd4 Leszek Koltunski
import org.distorted.library.type.Static3D;
51 56cbe1cf Leszek Koltunski
52 9167cfd4 Leszek Koltunski
import java.io.IOException;
53
import java.io.InputStream;
54 56cbe1cf Leszek Koltunski
import java.util.ArrayList;
55 08f92d82 Leszek Koltunski
56
///////////////////////////////////////////////////////////////////////////////////////////////////
57
58 50ac40a6 Leszek Koltunski
public class Vertex3DActivity extends Activity
59 56cbe1cf Leszek Koltunski
                              implements View.OnClickListener,
60 50ac40a6 Leszek Koltunski
                                         AdapterView.OnItemSelectedListener
61 d40cfeb2 Leszek Koltunski
  {
62 50ac40a6 Leszek Koltunski
  private static final int COLOR_OFF = 0xffffe81f;
63
  private static final int COLOR_ON  = 0xff0000ff;
64
65 d40cfeb2 Leszek Koltunski
  private boolean firstScreen;
66
67
  // fields needed for the first 'pick-a-shape' screen
68
  //
69 56cbe1cf Leszek Koltunski
  private int mNumCols = 10;
70
  private int mNumRows = 10;
71 d40cfeb2 Leszek Koltunski
  private NumberPicker mColsPicker, mRowsPicker;
72 50ac40a6 Leszek Koltunski
  private boolean[] mShape;
73 bcc8e016 Leszek Koltunski
  private DistortedObject mObject;
74
  private int mObjectType;
75
  private int mBitmap;
76 d40cfeb2 Leszek Koltunski
77 56cbe1cf Leszek Koltunski
  private ArrayList<Vertex3DEffect> mEffects;
78
  private int mEffectAdd;
79 950511ed Leszek Koltunski
  private float mCenterX, mCenterY;
80 6f779cd4 Leszek Koltunski
  private float mRegionX, mRegionY, mRegionR;
81 50ac40a6 Leszek Koltunski
82 8fd9f5fa Leszek Koltunski
  private EffectNames[] mEffectNames;
83 24991bc2 Leszek Koltunski
84
  private static boolean mSupportsRegion = true;
85
86 08f92d82 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
87 56cbe1cf Leszek Koltunski
88 d40cfeb2 Leszek Koltunski
  @Override
89
  protected void onCreate(Bundle savedState)
90
    {
91
    super.onCreate(savedState);
92
93 56cbe1cf Leszek Koltunski
    mEffects = new ArrayList<>();
94
95 8fd9f5fa Leszek Koltunski
    createEffectNames();
96
97 50ac40a6 Leszek Koltunski
    setContentView(R.layout.objectpickerlayout);
98 d40cfeb2 Leszek Koltunski
99 50ac40a6 Leszek Koltunski
    mColsPicker = (NumberPicker)findViewById(R.id.objectpicker_cols);
100
    mRowsPicker = (NumberPicker)findViewById(R.id.objectpicker_rows);
101 d40cfeb2 Leszek Koltunski
102 56cbe1cf Leszek Koltunski
    mColsPicker.setMaxValue(15);
103 d40cfeb2 Leszek Koltunski
    mColsPicker.setMinValue( 0);
104 56cbe1cf Leszek Koltunski
    mRowsPicker.setMaxValue(15);
105 d40cfeb2 Leszek Koltunski
    mRowsPicker.setMinValue( 0);
106
107
    mColsPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener()
108 08f92d82 Leszek Koltunski
      {
109 d40cfeb2 Leszek Koltunski
      @Override
110
      public void onValueChange(NumberPicker picker, int oldVal, int newVal)
111
        {
112 bcc8e016 Leszek Koltunski
        mNumCols = mColsPicker.getValue();
113 d40cfeb2 Leszek Koltunski
        }
114
      });
115
116
    mRowsPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener()
117
      {
118
      @Override
119
      public void onValueChange(NumberPicker picker, int oldVal, int newVal)
120
        {
121 bcc8e016 Leszek Koltunski
        mNumRows = mRowsPicker.getValue();
122 d40cfeb2 Leszek Koltunski
        }
123
      });
124
125
    firstScreen = true;
126
127 50ac40a6 Leszek Koltunski
    mObjectType = 0;
128 d40cfeb2 Leszek Koltunski
129 50ac40a6 Leszek Koltunski
    Spinner typeSpinner  = (Spinner)findViewById(R.id.objectpicker_spinnerType);
130
    typeSpinner.setOnItemSelectedListener(this);
131 d40cfeb2 Leszek Koltunski
132 50ac40a6 Leszek Koltunski
    String[] objectType = new String[] {"DistortedCubes", "DistortedBitmap"};
133 d40cfeb2 Leszek Koltunski
134 bcc8e016 Leszek Koltunski
    ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectType);
135
    adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
136
    typeSpinner.setAdapter(adapterType);
137
138
    Spinner bitmapSpinner  = (Spinner)findViewById(R.id.objectpicker_spinnerBitmap);
139
    bitmapSpinner.setOnItemSelectedListener(this);
140
141 9167cfd4 Leszek Koltunski
    String[] objectBitmap = new String[] { "Grid", "Girl", "Dog", "Cat", "Squares"};
142 bcc8e016 Leszek Koltunski
143
    ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap);
144
    adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
145
    bitmapSpinner.setAdapter(adapterBitmap);
146 d40cfeb2 Leszek Koltunski
    }
147
148 8fd9f5fa Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
149
150
  private void createEffectNames()
151
    {
152
    EffectNames[] names = EffectNames.values();
153
154
    int numVertex=0;
155
156
    for(int i=0; i<names.length; i++)
157
      if( names[i].getType() == EffectTypes.VERTEX ) numVertex++;
158
159
    mEffectNames = new EffectNames[numVertex];
160
161
    numVertex=0;
162
163
    for(int i=0; i<names.length; i++)
164
      if( names[i].getType() == EffectTypes.VERTEX )
165
        {
166
        mEffectNames[numVertex++] = names[i];
167
        }
168
    }
169
170 d40cfeb2 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
171
172 50ac40a6 Leszek Koltunski
  private void setGrid()
173 d40cfeb2 Leszek Koltunski
    {
174 56cbe1cf Leszek Koltunski
    LinearLayout lay = (LinearLayout)findViewById(R.id.objectpicker_buttongrid);
175 d40cfeb2 Leszek Koltunski
176 56cbe1cf Leszek Koltunski
    int width = lay.getWidth();
177
    int height= lay.getHeight();
178 d40cfeb2 Leszek Koltunski
    int w = mNumCols>0 ? (width / mNumCols) -10 : 0;
179
    int h = mNumRows>0 ? (height/ mNumRows) -10 : 0;
180
    int size= w<h ? w:h;
181
    int pad = size/20;
182
183 56cbe1cf Leszek Koltunski
    lay.removeAllViews();
184 d40cfeb2 Leszek Koltunski
185
    mShape = new boolean[mNumRows*mNumCols];
186
187 56cbe1cf Leszek Koltunski
    TableRow.LayoutParams p = new TableRow.LayoutParams();
188 d40cfeb2 Leszek Koltunski
189
    p.rightMargin  = pad;
190
    p.leftMargin   = pad;
191
    p.topMargin    = pad;
192
    p.bottomMargin = pad;
193
    p.height       = size;
194
    p.width        = size;
195
196
    for (int rows=0; rows<mNumRows; rows++)
197 08f92d82 Leszek Koltunski
      {
198 d40cfeb2 Leszek Koltunski
      TableRow tr = new TableRow(this);
199
      tr.setGravity(Gravity.CENTER);
200
201
      for(int cols=0; cols<mNumCols; cols++)
202
        {
203
        Button b = new Button(this);
204
        b.setOnClickListener(this);
205
        b.setId(rows*mNumCols+cols);
206
        b.setLayoutParams(p);
207 bcc8e016 Leszek Koltunski
        b.setBackgroundColor(COLOR_ON);
208 d40cfeb2 Leszek Koltunski
        tr.addView(b, p);
209 bcc8e016 Leszek Koltunski
        mShape[rows*mNumCols+cols] = true;
210 d40cfeb2 Leszek Koltunski
        }
211
212 56cbe1cf Leszek Koltunski
      lay.addView(tr);
213 d40cfeb2 Leszek Koltunski
      }
214
    }
215
216 50ac40a6 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
217
218
  public DistortedObject getObject()
219
    {
220
    return mObject;
221
    }
222
223 24991bc2 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
224
225
  public static void setSupportsRegion(boolean supports)
226
    {
227
    mSupportsRegion = supports;
228
    }
229
230
///////////////////////////////////////////////////////////////////////////////////////////////////
231
232
  public static boolean supportsRegion()
233
    {
234
    return mSupportsRegion;
235
    }
236
237 d40cfeb2 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
238
239 9167cfd4 Leszek Koltunski
  public Bitmap getBitmap()
240 d40cfeb2 Leszek Koltunski
    {
241 9167cfd4 Leszek Koltunski
    Bitmap bmp;
242
243
    if( mBitmap!=-1)
244
      {
245
      InputStream is = getResources().openRawResource(mBitmap);
246
247
      try
248
        {
249
        bmp = BitmapFactory.decodeStream(is);
250
        }
251
      finally
252
        {
253
        try
254
          {
255
          is.close();
256
          }
257
        catch(IOException e) { }
258
        }
259
      }
260
    else
261
      {
262
      final int W = 640;
263
      final int H = 640;
264
265
      Paint paint = new Paint();
266
      bmp = Bitmap.createBitmap(W,H, Bitmap.Config.ARGB_8888);
267
      Canvas canvas = new Canvas(bmp);
268
269
      paint.setAntiAlias(true);
270
      paint.setTextAlign(Paint.Align.CENTER);
271
      paint.setColor(0xff008800);
272
      paint.setStyle(Paint.Style.FILL);
273
      canvas.drawRect(0, 0, W, H, paint);
274
      paint.setColor(0xffffffff);
275
276
      for(int i=0; i<=mNumCols ; i++ )
277
        {
278
        canvas.drawRect(W*i/mNumCols - 1,                0,  W*i/mNumCols + 1,  H               , paint);
279
        canvas.drawRect(               0, H *i/mNumCols -1,  W               ,  H*i/mNumCols + 1, paint);
280
        }
281
      }
282
283
    return bmp;
284 d40cfeb2 Leszek Koltunski
    }
285
286
///////////////////////////////////////////////////////////////////////////////////////////////////
287
288 56cbe1cf Leszek Koltunski
  public void onClick(View view)
289 d40cfeb2 Leszek Koltunski
    {
290 56cbe1cf Leszek Koltunski
    Button tmp = (Button)view;
291
    int id = tmp.getId();
292
    mShape[id] = !mShape[id];
293
    tmp.setBackgroundColor(mShape[id] ? COLOR_ON:COLOR_OFF);
294 bcc8e016 Leszek Koltunski
    }
295
296 6f779cd4 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
297
298
  public void setRegion(float x, float y, float r)
299
    {
300
    mRegionX = x;
301 24991bc2 Leszek Koltunski
    mRegionY =-y;
302 6f779cd4 Leszek Koltunski
    mRegionR = r;
303
304
    Vertex3DSurfaceView view = (Vertex3DSurfaceView)findViewById(R.id.vertex3dSurfaceView);
305
306
    view.getRenderer().setRegion(mRegionX, mRegionY, mRegionR);
307
    }
308
309 950511ed Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
310
311
  public void setCenter(float x, float y)
312
    {
313
    mCenterX = x;
314
    mCenterY = y;
315
316
    Vertex3DSurfaceView view = (Vertex3DSurfaceView)findViewById(R.id.vertex3dSurfaceView);
317
318
    view.getRenderer().setCenter( mCenterX, mCenterY );
319
    }
320
321
///////////////////////////////////////////////////////////////////////////////////////////////////
322
323
  public float getCenterX()
324
    {
325
    return mCenterX;
326
    }
327
328
///////////////////////////////////////////////////////////////////////////////////////////////////
329
330
  public float getCenterY()
331
    {
332
    return mCenterY;
333
    }
334
335 6f779cd4 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
336
337
  public float getRegionX()
338
    {
339
    return mRegionX;
340
    }
341
342
///////////////////////////////////////////////////////////////////////////////////////////////////
343
344
  public float getRegionY()
345
    {
346
    return mRegionY;
347
    }
348
349
///////////////////////////////////////////////////////////////////////////////////////////////////
350
351
  public float getRegionR()
352
    {
353
    return mRegionR;
354
    }
355
356 bcc8e016 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
357 50ac40a6 Leszek Koltunski
358 bcc8e016 Leszek Koltunski
  public void Continue(View v)
359
    {
360 56cbe1cf Leszek Koltunski
    firstScreen = false;
361
362 50ac40a6 Leszek Koltunski
    if( mObjectType==1 )
363
      {
364
      mObject = new DistortedBitmap(100,100,mNumCols);
365 56cbe1cf Leszek Koltunski
      setVertexView();
366 50ac40a6 Leszek Koltunski
      }
367
    else
368
      {
369 bcc8e016 Leszek Koltunski
      View view = getLayoutInflater().inflate(R.layout.objectpicker2layout, null);
370 50ac40a6 Leszek Koltunski
371 bcc8e016 Leszek Koltunski
      setContentView(view);
372 50ac40a6 Leszek Koltunski
373 bcc8e016 Leszek Koltunski
      view.post(new Runnable() {
374
            @Override
375
            public void run() {
376
              setGrid();
377
            }
378
        });
379 50ac40a6 Leszek Koltunski
      }
380 bcc8e016 Leszek Koltunski
    }
381
382
///////////////////////////////////////////////////////////////////////////////////////////////////
383
384
  public void Create(View v)
385
    {
386
    firstScreen = false;
387
388
    String str = "";
389
390
    for(int i=0; i<mNumRows*mNumCols; i++)
391
      str += mShape[i] ? "1" : "0";
392
393
    mObject = new DistortedCubes(mNumCols, str, 10);
394 50ac40a6 Leszek Koltunski
395 56cbe1cf Leszek Koltunski
    setVertexView();
396 d40cfeb2 Leszek Koltunski
    }
397
398 50ac40a6 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
399
400
  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
401
    {
402
    switch(parent.getId())
403
      {
404 56cbe1cf Leszek Koltunski
      case R.id.objectpicker_spinnerType  : mObjectType = pos;
405
                                            break;
406 bcc8e016 Leszek Koltunski
      case R.id.objectpicker_spinnerBitmap: switch(pos)
407
                                              {
408 9167cfd4 Leszek Koltunski
                                              case 0: mBitmap = -1        ; break;
409
                                              case 1: mBitmap = R.raw.face; break;
410
                                              case 2: mBitmap = R.raw.dog;  break;
411
                                              case 3: mBitmap = R.raw.cat;  break;
412
                                              case 4: mBitmap = R.raw.grid; break;
413 bcc8e016 Leszek Koltunski
                                              }
414
                                            break;
415 56cbe1cf Leszek Koltunski
      case R.id.vertex3dspinner           : mEffectAdd = pos;
416
                                            break;
417 50ac40a6 Leszek Koltunski
      }
418
    }
419
420
///////////////////////////////////////////////////////////////////////////////////////////////////
421
422
  public void onNothingSelected(AdapterView<?> parent)
423
    {
424
    }
425
426 d40cfeb2 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
427
428 56cbe1cf Leszek Koltunski
  public int getWidth()
429 d40cfeb2 Leszek Koltunski
    {
430 56cbe1cf Leszek Koltunski
    return mObject==null ? 0: mObject.getWidth();
431 d40cfeb2 Leszek Koltunski
    }
432 08f92d82 Leszek Koltunski
433
///////////////////////////////////////////////////////////////////////////////////////////////////
434
435 56cbe1cf Leszek Koltunski
  public int getHeight()
436 d40cfeb2 Leszek Koltunski
    {
437 56cbe1cf Leszek Koltunski
    return mObject==null ? 0: mObject.getHeight();
438 d40cfeb2 Leszek Koltunski
    }
439 08f92d82 Leszek Koltunski
440
///////////////////////////////////////////////////////////////////////////////////////////////////
441
442 6f779cd4 Leszek Koltunski
  private void resetData()
443 d40cfeb2 Leszek Koltunski
    {
444 950511ed Leszek Koltunski
    mCenterX = 0.5f*getWidth();
445
    mCenterY = 0.5f*getHeight();
446 6f779cd4 Leszek Koltunski
    mRegionX = 0;
447
    mRegionY = 0;
448
    mRegionR = getWidth()/2;
449
    }
450
451
///////////////////////////////////////////////////////////////////////////////////////////////////
452
// 'second screen' methods
453
454
  private void setVertexView()
455
    {
456
    resetData();
457 950511ed Leszek Koltunski
458 56cbe1cf Leszek Koltunski
    final View view = getLayoutInflater().inflate(R.layout.vertex3dlayout, null);
459 e2d8ea1d Leszek Koltunski
460 56cbe1cf Leszek Koltunski
    setContentView(view);
461 794e6c4f Leszek Koltunski
462 24991bc2 Leszek Koltunski
    String[] effects = new String[mEffectNames.length];
463
464
    for(int i=0; i<mEffectNames.length; i++) effects[i] = mEffectNames[i].name();
465 794e6c4f Leszek Koltunski
466 56cbe1cf Leszek Koltunski
    Spinner effectSpinner = (Spinner)findViewById(R.id.vertex3dspinner );
467
    effectSpinner.setOnItemSelectedListener(this);
468 794e6c4f Leszek Koltunski
469 56cbe1cf Leszek Koltunski
    ArrayAdapter<String> adapterEffect = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, effects);
470
    adapterEffect.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
471
    effectSpinner.setAdapter(adapterEffect);
472 d2337a3a Leszek Koltunski
473 56cbe1cf Leszek Koltunski
    mEffectAdd = 0;
474 794e6c4f Leszek Koltunski
    }
475
476
///////////////////////////////////////////////////////////////////////////////////////////////////
477
478 56cbe1cf Leszek Koltunski
  public void newEffect(View v)
479 794e6c4f Leszek Koltunski
    {
480 24991bc2 Leszek Koltunski
    Vertex3DEffect eff = new Vertex3DEffect(mEffectNames[mEffectAdd], this);
481 56cbe1cf Leszek Koltunski
    mEffects.add(eff);
482 d2337a3a Leszek Koltunski
483 56cbe1cf Leszek Koltunski
    LinearLayout layout = (LinearLayout)findViewById(R.id.vertex3dlayout);
484
    View view = eff.createView();
485
    layout.addView(view);
486 950511ed Leszek Koltunski
487 24991bc2 Leszek Koltunski
    if( eff.supportsRegion() )
488 950511ed Leszek Koltunski
      {
489
      View region = eff.createRegion();
490
      layout.addView(region);
491
      }
492
493 56cbe1cf Leszek Koltunski
    View center = eff.createCenter();
494
    layout.addView(center);
495
496 24991bc2 Leszek Koltunski
    eff.apply(mObject);
497 d2337a3a Leszek Koltunski
    }
498
499
///////////////////////////////////////////////////////////////////////////////////////////////////
500
501 56cbe1cf Leszek Koltunski
  public void removeAll(View v)
502 d2337a3a Leszek Koltunski
    {
503 56cbe1cf Leszek Koltunski
    mEffects.clear();
504
    LinearLayout layout = (LinearLayout)findViewById(R.id.vertex3dlayout);
505
    layout.removeAllViews();
506
    mObject.abortEffects(EffectTypes.VERTEX);
507 950511ed Leszek Koltunski
508 6f779cd4 Leszek Koltunski
    resetData();
509 950511ed Leszek Koltunski
510
    Vertex3DSurfaceView view = (Vertex3DSurfaceView)findViewById(R.id.vertex3dSurfaceView);
511
    Vertex3DRenderer renderer= view.getRenderer();
512
513
    renderer.setCenter( mCenterX, mCenterY );
514 6f779cd4 Leszek Koltunski
    renderer.setRegion( mRegionX, mRegionY, mRegionR );
515 950511ed Leszek Koltunski
    renderer.mQuat1.set(0,0,0,1);
516
    renderer.mQuat2.set(0,0,0,1);
517 d2337a3a Leszek Koltunski
    }
518
519 08f92d82 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
520 d40cfeb2 Leszek Koltunski
// Overrides
521
522
  @Override
523
  protected void onPause()
524
    {
525
    GLSurfaceView mView = (GLSurfaceView)findViewById(R.id.vertex3dSurfaceView);
526
    if( mView!=null ) mView.onPause();
527
    super.onPause();
528
    }
529 08f92d82 Leszek Koltunski
530
///////////////////////////////////////////////////////////////////////////////////////////////////
531
    
532 d40cfeb2 Leszek Koltunski
  @Override
533
  protected void onResume()
534
    {
535
    super.onResume();
536
    GLSurfaceView mView = (GLSurfaceView)findViewById(R.id.vertex3dSurfaceView);
537
    if( mView!=null ) mView.onResume();
538
    }
539 08f92d82 Leszek Koltunski
540
///////////////////////////////////////////////////////////////////////////////////////////////////
541
    
542 d40cfeb2 Leszek Koltunski
  @Override
543
  public void onWindowFocusChanged(boolean hasFocus)
544
    {
545
    super.onWindowFocusChanged(hasFocus);
546
547
    if( firstScreen )
548
      {
549
      mColsPicker.setValue(mNumCols);
550
      mRowsPicker.setValue(mNumRows);
551
      }
552
    }
553 08f92d82 Leszek Koltunski
554
///////////////////////////////////////////////////////////////////////////////////////////////////
555
    
556 d40cfeb2 Leszek Koltunski
  @Override
557
  protected void onDestroy()
558
    {
559
    Distorted.onDestroy();
560
    super.onDestroy();
561
    }
562 08f92d82 Leszek Koltunski
563 d40cfeb2 Leszek Koltunski
  }