Project

General

Profile

« Previous | Next » 

Revision e8b6aa95

Added by Leszek Koltunski over 7 years ago

Major change in API: separate the GRID from DistortedObject; completely remove classes derived from DistortedObject.

View differences:

src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
26 26

  
27 27
import org.distorted.examples.R;
28 28
import org.distorted.library.Distorted;
29
import org.distorted.library.DistortedBitmap;
29
import org.distorted.library.DistortedBitmapGrid;
30 30
import org.distorted.library.DistortedObject;
31 31
import org.distorted.library.EffectTypes;
32 32
import org.distorted.library.type.Static3D;
......
43 43
{
44 44
   private GLSurfaceView mView;
45 45
   private DistortedObject mObject;
46
   private DistortedBitmapGrid mGrid;
46 47
   private AroundTheWorldEffectsManager mEffects;
47 48
   private int mObjWidth, mObjHeight;
48 49

  
......
69 70
   public void onDrawFrame(GL10 glUnused) 
70 71
      {
71 72
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
72
      mObject.draw(System.currentTimeMillis());
73
      mObject.draw(System.currentTimeMillis(), mGrid);
73 74
      }
74 75

  
75 76
///////////////////////////////////////////////////////////////////////////////////////////////////
......
118 119
        catch(IOException e) { }
119 120
        }
120 121

  
121
      mObject = new DistortedBitmap(bitmap.getWidth(),bitmap.getHeight(),30);
122 122

  
123 123
      mObjWidth = mObject.getWidth();
124 124
      mObjHeight= mObject.getHeight();
125 125

  
126
      mObject.setBitmap(bitmap);
126
      mObject = new DistortedObject(mObjWidth,mObjHeight,1);
127
      mObject.setTexture(bitmap);
127 128
      mEffects.apply(mObject);
128 129

  
130
      mGrid = new DistortedBitmapGrid(30,30*mObjHeight/mObjWidth);
131

  
129 132
      try
130 133
        {
131 134
        Distorted.onSurfaceCreated(mView.getContext());
src/main/java/org/distorted/examples/bean/BeanRenderer.java
29 29

  
30 30
import org.distorted.library.EffectTypes;
31 31
import org.distorted.library.Distorted;
32
import org.distorted.library.DistortedBitmap;
32
import org.distorted.library.DistortedObject;
33
import org.distorted.library.DistortedBitmapGrid;
33 34
import org.distorted.library.type.Dynamic3D;
34 35
import org.distorted.library.type.Static3D;
35 36
import org.distorted.library.type.Static4D;
......
44 45
class BeanRenderer implements GLSurfaceView.Renderer 
45 46
{
46 47
   private GLSurfaceView mView;
47
   private DistortedBitmap mBean;
48
   private DistortedObject mBean;
49
   private DistortedBitmapGrid mGrid;
48 50
   private Static3D pLeft, pRight;
49 51
   private Dynamic3D dLeft, dRight;
50 52
   private Static4D rLeft, rRight;
......
88 90
    public void onDrawFrame(GL10 glUnused) 
89 91
      {
90 92
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
91
      mBean.draw(System.currentTimeMillis());
93
      mBean.draw(System.currentTimeMillis(), mGrid);
92 94
      }
93 95

  
94 96
///////////////////////////////////////////////////////////////////////////////////////////////////
......
142 144
      bmpHeight = bitmap.getHeight();
143 145
      bmpWidth  = bitmap.getWidth();
144 146
      
145
      mBean = new DistortedBitmap(bitmap, 25);
147
      mBean = new DistortedObject(bmpWidth, bmpHeight, 1);
148
      mBean.setTexture(bitmap);
146 149
      mBean.distort(dLeft , pLeft , rLeft );
147 150
      mBean.distort(dRight, pRight, rRight);
148
      
151

  
152
      mGrid = new DistortedBitmapGrid(25,25*bmpHeight/bmpWidth);
153

  
149 154
      try
150 155
        {
151 156
        Distorted.onSurfaceCreated(mView.getContext());
src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
27 27

  
28 28
import org.distorted.examples.R;
29 29
import org.distorted.library.Distorted;
30
import org.distorted.library.DistortedBitmap;
30
import org.distorted.library.DistortedObject;
31
import org.distorted.library.DistortedBitmapGrid;
31 32
import org.distorted.library.EffectTypes;
32 33
import org.distorted.library.type.Dynamic1D;
33 34
import org.distorted.library.type.Dynamic3D;
......
45 46
class CatAndDogRenderer implements GLSurfaceView.Renderer
46 47
{
47 48
    private GLSurfaceView mView;
48
    private DistortedBitmap catanddog;
49
    private DistortedObject mObject;
50
    private DistortedBitmapGrid mGrid;
49 51
    private Static4D chromaRegion, alphaRegion;
50 52
    private int bmpHeight, bmpWidth;
51 53

  
......
64 66
    public void onDrawFrame(GL10 glUnused) 
65 67
      {
66 68
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
67
      catanddog.draw(System.currentTimeMillis());
69
      mObject.draw(System.currentTimeMillis(), mGrid);
68 70
      }
69 71

  
70 72
///////////////////////////////////////////////////////////////////////////////////////////////////
......
91 93
      
92 94
      bmpHeight = bitmap.getHeight();
93 95
      bmpWidth  = bitmap.getWidth();
94
      
95
      catanddog = new DistortedBitmap(bitmap, 30);
96

  
97
      mGrid = new DistortedBitmapGrid(1,1);  // no vertex effects, grid can be a (1x1) quad.
98

  
99
      mObject = new DistortedObject(bmpWidth,bmpHeight,1);
100
      mObject.setTexture(bitmap);
96 101

  
97 102
      Dynamic1D chromaDyn = new Dynamic1D(3000,0.0f);
98 103
      chromaDyn.add(new Static1D(1));
99 104
      chromaDyn.add(new Static1D(0));
100 105

  
101
      catanddog.chroma(chromaDyn, new Static3D(1,0,0), chromaRegion ,true);
106
      mObject.chroma(chromaDyn, new Static3D(1,0,0), chromaRegion ,true);
102 107

  
103 108
      Dynamic1D alphaDyn = new Dynamic1D(3000,0.0f);
104 109
      alphaDyn.add(new Static1D(1));
105 110
      alphaDyn.add(new Static1D(0));
106 111

  
107
      catanddog.alpha( alphaDyn, alphaRegion, false );
112
      mObject.alpha( alphaDyn, alphaRegion, false );
108 113
      
109 114
      try
110 115
        {
......
134 139
      diRotate.add(new Static1D(  0));
135 140
      diRotate.add(new Static1D(360));
136 141
      
137
      catanddog.abortEffects(EffectTypes.MATRIX);
142
      mObject.abortEffects(EffectTypes.MATRIX);
138 143

  
139
      catanddog.move(diMove);
140
      catanddog.scale(diScale);
141
      catanddog.rotate( diRotate, new Static3D(0,0,1), new Static3D(bmpWidth/2,bmpHeight/2,0) );
144
      mObject.move(diMove);
145
      mObject.scale(diScale);
146
      mObject.rotate( diRotate, new Static3D(0,0,1), new Static3D(bmpWidth/2,bmpHeight/2,0) );
142 147

  
143 148
      Distorted.onSurfaceChanged(width, height); 
144 149
      }
src/main/java/org/distorted/examples/check/CheckRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedBitmap;
31
import org.distorted.library.DistortedObject;
32
import org.distorted.library.DistortedBitmapGrid;
32 33
import org.distorted.library.EffectTypes;
33 34
import org.distorted.library.type.Dynamic3D;
34 35
import org.distorted.library.type.Static1D;
35
import org.distorted.library.type.Static2D;
36 36
import org.distorted.library.type.Static3D;
37 37
import org.distorted.library.type.Static4D;
38 38
import org.distorted.library.type.Dynamic1D;
39
import org.distorted.library.type.Dynamic2D;
40 39

  
41 40
import android.app.AlertDialog;
42 41
import android.content.Context;
......
55 54
    private static String compilationTitle;
56 55

  
57 56
    private GLSurfaceView mView;
58
    private DistortedBitmap mSuccess;
57
    private DistortedObject mSuccess;
58
    private DistortedBitmapGrid mGrid;
59 59
    private int bmpHeight, bmpWidth;
60 60

  
61 61
///////////////////////////////////////////////////////////////////////////////////////////////////
......
75 75
    public void onDrawFrame(GL10 glUnused) 
76 76
      {
77 77
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
78
      mSuccess.draw(System.currentTimeMillis());
78
      mSuccess.draw(System.currentTimeMillis(), mGrid);
79 79
      }
80 80

  
81 81
///////////////////////////////////////////////////////////////////////////////////////////////////
......
126 126
        catch(IOException e) { }
127 127
        }
128 128

  
129
      mSuccess = new DistortedBitmap(bitmap, 30);
130

  
131 129
      bmpHeight = bitmap.getHeight();
132 130
      bmpWidth  = bitmap.getWidth();
133 131

  
132
      mSuccess = new DistortedObject(bmpWidth,bmpHeight,1);
133
      mSuccess.setTexture(bitmap);
134
      mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
135

  
134 136
      // Try adding 2 Vertex Effects to the Bitmap.
135 137
      // This will fail if we have set maxVertexEffects to something < 2.
136 138
      //
src/main/java/org/distorted/examples/cubes/CubesActivity.java
21 21

  
22 22
import org.distorted.library.Distorted;
23 23
import org.distorted.examples.R;
24
import org.distorted.library.DistortedCubes;
25 24
import org.distorted.library.DistortedObject;
25
import org.distorted.library.DistortedObjectGrid;
26
import org.distorted.library.DistortedCubesGrid;
26 27

  
27 28
import android.app.Activity;
28 29
import android.opengl.GLSurfaceView;
......
48 49
    private LinearLayout mLay;
49 50
    private boolean[] mShape;
50 51
    private DistortedObject mObject;
52
    private DistortedObjectGrid mGrid;
51 53

  
52 54
///////////////////////////////////////////////////////////////////////////////////////////////////
53 55
    
......
197 199
      for(int i=0; i<mNumRows*mNumCols; i++)
198 200
        str += mShape[i] ? "1" : "0";
199 201

  
200
      mObject = new DistortedCubes(mNumCols, str, 10);
202
      mGrid = new DistortedCubesGrid(mNumCols, str, false);
203
      mObject = new DistortedObject(mNumCols,mNumRows,1);
201 204

  
202 205
      setContentView(R.layout.cubeslayout);
203 206
      }
......
208 211
      {
209 212
      return mObject;
210 213
      }
214

  
215
///////////////////////////////////////////////////////////////////////////////////////////////////
216

  
217
    public DistortedObjectGrid getGrid()
218
      {
219
      return mGrid;
220
      }
211 221
}
src/main/java/org/distorted/examples/cubes/CubesRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.DistortedObject;
31
import org.distorted.library.DistortedObjectGrid;
31 32
import org.distorted.library.EffectTypes;
32 33
import org.distorted.library.type.DynamicQuat;
33 34
import org.distorted.library.type.Static4D;
......
45 46
{
46 47
    private GLSurfaceView mView;
47 48
    private DistortedObject mObject;
49
    private DistortedObjectGrid mGrid;
48 50
    private int mObjWidth, mObjHeight;
49 51

  
50 52
    private DynamicQuat mQuatInt1, mQuatInt2;
......
58 60
      {
59 61
      mView = v;
60 62

  
61
      mObject = ((CubesActivity)v.getContext()).getObject();
63
      CubesActivity act = (CubesActivity)v.getContext();
64

  
65
      mObject = act.getObject();
66
      mGrid   = act.getGrid();
62 67

  
63 68
      mObjWidth = mObject.getWidth();
64 69
      mObjHeight= mObject.getHeight();
......
78 83
    public void onDrawFrame(GL10 glUnused) 
79 84
      {
80 85
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
81
      mObject.draw(System.currentTimeMillis());
86
      mObject.draw(System.currentTimeMillis(),mGrid);
82 87
      }
83 88

  
84 89
///////////////////////////////////////////////////////////////////////////////////////////////////
......
131 136
        catch(IOException e) { }
132 137
        }  
133 138
      
134
      mObject.setBitmap(bitmap);
139
      mObject.setTexture(bitmap);
135 140
      
136 141
      try
137 142
        {
src/main/java/org/distorted/examples/deform/DeformRenderer.java
23 23
import javax.microedition.khronos.opengles.GL10;
24 24

  
25 25
import org.distorted.library.Distorted;
26
import org.distorted.library.DistortedBitmap;
26
import org.distorted.library.DistortedObject;
27
import org.distorted.library.DistortedObjectGrid;
28
import org.distorted.library.DistortedBitmapGrid;
29

  
27 30
import org.distorted.library.EffectNames;
28 31
import org.distorted.library.EffectTypes;
29 32
import org.distorted.library.type.Dynamic3D;
......
41 44

  
42 45
class DeformRenderer implements GLSurfaceView.Renderer 
43 46
{
44
   private static final int NUM_VECTORS = 8;
45
   private static final int NUM_LINES = 10;
46
   private static final int NUM_FRAMES =10;
47
   private static final int NUM_VECTORS =  8;
48
   private static final int NUM_LINES   = 10;
49
   private static final int NUM_FRAMES  = 10;
47 50

  
48 51
   private GLSurfaceView mView;
49
   private DistortedBitmap fps;
50
   private DistortedBitmap stretch;
52
   private DistortedObject fps, stretch;
53
   private DistortedObjectGrid fpsGrid, stretchGrid;
51 54
   private Static3D touchPoint;
52 55

  
53 56
   private Dynamic3D mReleasedDistortDynamic;
......
169 172
    
170 173
      long time = System.currentTimeMillis();
171 174
      
172
      stretch.draw(time);
175
      stretch.draw(time,stretchGrid);
173 176
      
174 177
      mPaint.setColor(0xffffffff);
175 178
      fpsCanvas.drawRect(0, 0, fpsW, fpsH, mPaint);
176 179
      mPaint.setColor(0xff000000);
177 180
      fpsCanvas.drawText(fpsString, fpsW/2, 5*fpsH/6, mPaint);
178 181
      
179
      fps.setBitmap(fpsBitmap);
180
      fps.draw(time);
182
      fps.setTexture(fpsBitmap);
183
      fps.draw(time,fpsGrid);
181 184
      
182 185
      computeFPS(time);
183 186
      }
......
193 196

  
194 197
      Distorted.onSurfaceChanged(width, height);
195 198
      
196
      if( bitmapCreated==false )
199
      if( !bitmapCreated )
197 200
        {
198 201
        createBitmap(scrWidth/2,scrHeight/2);
199 202
        stretch.move( new Static3D(scrWidth/4,scrHeight/4,0) );
......
231 234
      Canvas stretchCanvas;   
232 235
      
233 236
      mPaint = new Paint();
234
      stretch = new DistortedBitmap(w,h, 50);   
237
      stretch = new DistortedObject(w,h,1);
238
      stretchGrid = new DistortedBitmapGrid(50,50*h/w);
235 239
      Bitmap stretchBitmap = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888);
236 240
      stretchCanvas = new Canvas(stretchBitmap);
237 241
      
......
254 258
        
255 259
      touchPoint= new Static3D(0,0,0);
256 260
        
257
      fps = new DistortedBitmap( fpsW, fpsH, 2);
261
      fps = new DistortedObject( fpsW, fpsH, 1);
262
      fpsGrid = new DistortedBitmapGrid(1,1);
263

  
258 264
      fpsBitmap = Bitmap.createBitmap(fpsW,fpsH, Bitmap.Config.ARGB_8888);
259 265
      fpsCanvas = new Canvas(fpsBitmap);
260 266
        
261
      stretch.setBitmap(stretchBitmap);
262
      fps.setBitmap(fpsBitmap);
267
      stretch.setTexture(stretchBitmap);
268
      fps.setTexture(fpsBitmap);
263 269
      }
264 270

  
265 271
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedBitmap;
31
import org.distorted.library.DistortedObject;
32
import org.distorted.library.DistortedBitmapGrid;
32 33
import org.distorted.library.EffectTypes;
33 34
import org.distorted.library.type.Dynamic3D;
34 35
import org.distorted.library.type.Static1D;
35
import org.distorted.library.type.Static2D;
36 36
import org.distorted.library.type.Static3D;
37 37
import org.distorted.library.type.Static4D;
38 38

  
......
48 48
   private static final int NUM = 3;
49 49
   
50 50
   private GLSurfaceView mView;
51
   private DistortedBitmap[] bmp;
51
   private DistortedObject[] mObj;
52
   private DistortedBitmapGrid mGrid;
52 53
   private Static3D mPoint;
53 54
   private Dynamic3D dDistort;
54 55
   private int bmpHeight, bmpWidth;
......
97 98
      
98 99
      long time = System.currentTimeMillis();
99 100
      
100
      for(int i=NUM-1; i>=0; i--) bmp[i].draw(time); 
101
      for(int i=NUM-1; i>=0; i--) mObj[i].draw(time, mGrid);
101 102
      }
102 103

  
103 104
///////////////////////////////////////////////////////////////////////////////////////////////////
......
106 107
      {  
107 108
      for(int i=NUM-1; i>=0; i--) 
108 109
        {   
109
        bmp[i].abortEffects(EffectTypes.MATRIX);
110
        mObj[i].abortEffects(EffectTypes.MATRIX);
110 111
        }
111 112
      
112 113
      if( (float)bmpHeight/(NUM*bmpWidth) > (float)height/width )
......
116 117

  
117 118
        for(int i=NUM-1; i>=0; i--) 
118 119
          {
119
          bmp[i].move( new Static3D((width-NUM*w)/2 +i*w ,0,0) );
120
          bmp[i].scale(factor);
120
          mObj[i].move( new Static3D((width-NUM*w)/2 +i*w ,0,0) );
121
          mObj[i].scale(factor);
121 122
          }
122 123
        }
123 124
      else
......
128 129

  
129 130
        for(int i=NUM-1; i>=0; i--) 
130 131
          {
131
          bmp[i].move( new Static3D(i*w,(height-h)/2,0) );
132
          bmp[i].scale(factor);
132
          mObj[i].move( new Static3D(i*w,(height-h)/2,0) );
133
          mObj[i].scale(factor);
133 134
          }
134 135
        }
135 136
         
......
150 151
      bmpWidth  = bitmap0.getWidth();
151 152
      
152 153
      // create NUM DistortedBitmaps with shared effects
153
      bmp = new DistortedBitmap[NUM];
154
      bmp[0] = new DistortedBitmap(bmpWidth, bmpHeight, 30);
154
      mObj = new DistortedObject[NUM];
155
      mObj[0] = new DistortedObject(bmpWidth, bmpHeight, 1);
155 156
      for(int i=1; i<NUM; i++) 
156
      bmp[i] = new DistortedBitmap(bmp[0], Distorted.CLONE_VERTEX|Distorted.CLONE_FRAGMENT);
157
        mObj[i] = new DistortedObject(mObj[0], Distorted.CLONE_VERTEX|Distorted.CLONE_FRAGMENT);
157 158
      
158
      bmp[0].setBitmap(bitmap0);
159
      bmp[1].setBitmap(bitmap1);
160
      bmp[2].setBitmap(bitmap2);
159
      mObj[0].setTexture(bitmap0);
160
      mObj[1].setTexture(bitmap1);
161
      mObj[2].setTexture(bitmap2);
161 162
         
162
      bmp[0].sink( new Static1D(8), mPoint, new Static4D(0,0,80,80));
163
      bmp[0].distort(dDistort,mPoint);
164
      
163
      mObj[0].sink( new Static1D(8), mPoint, new Static4D(0,0,80,80));
164
      mObj[0].distort(dDistort,mPoint);
165

  
166
      mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
167

  
165 168
      try
166 169
        {
167 170
        Distorted.onSurfaceCreated(mView.getContext());
src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedBitmap;
31
import org.distorted.library.DistortedBitmapGrid;
32
import org.distorted.library.DistortedObject;
32 33
import org.distorted.library.EffectTypes;
33 34
import org.distorted.library.type.Dynamic1D;
34 35
import org.distorted.library.type.Dynamic3D;
35 36
import org.distorted.library.type.Static1D;
36
import org.distorted.library.type.Static2D;
37 37
import org.distorted.library.type.Static3D;
38 38
import org.distorted.library.type.Static4D;
39 39

  
......
49 49
   private static final int NUM = 3;
50 50
   
51 51
   private GLSurfaceView mView;
52
   private DistortedBitmap[] bmp;
52
   private DistortedObject[] mObj;
53
   private DistortedBitmapGrid mGrid;
53 54
   private Static3D pLeft, pRight, pNose1;
54 55
   private Static4D RegionEye;
55 56
   private Dynamic3D mDI;
......
61 62
      {     
62 63
      mView = v;
63 64
      
64
      // bmp[0] effects
65
      // mObj[0] effects
65 66
      pLeft = new Static3D(214, 206, 0);
66 67
      pRight= new Static3D(390, 212, 0);
67 68
      RegionEye = new Static4D(0,0,60,60);
68 69
      
69
      // bmp[1] effects
70
      // mObj[1] effects
70 71
      mDI = new Dynamic3D(1000,0.0f);
71 72
      mDI.add(new Static3D( 50,0,0));
72 73
      mDI.add(new Static3D(-50,0,0));
......
83 84
      
84 85
     long time = System.currentTimeMillis();
85 86
   
86
     for(int i=NUM-1; i>=0; i--) bmp[i].draw(time);
87
     for(int i=NUM-1; i>=0; i--) mObj[i].draw(time, mGrid);
87 88
     }
88 89

  
89 90
///////////////////////////////////////////////////////////////////////////////////////////////////
......
92 93
     {
93 94
     for(int i=NUM-1; i>=0; i--)
94 95
       {
95
       bmp[i].abortEffects(EffectTypes.MATRIX);
96
       mObj[i].abortEffects(EffectTypes.MATRIX);
96 97
       }
97 98
      
98 99
     if( (float)bmpHeight/(NUM*bmpWidth) > (float)height/width )
......
102 103

  
103 104
       for(int i=NUM-1; i>=0; i--)
104 105
         {
105
         bmp[i].move( new Static3D((width-NUM*w)/2 +i*w , 0, 0) );
106
         bmp[i].scale(factor);
106
         mObj[i].move( new Static3D((width-NUM*w)/2 +i*w , 0, 0) );
107
         mObj[i].scale(factor);
107 108
         }
108 109
       }
109 110
     else
......
114 115

  
115 116
       for(int i=NUM-1; i>=0; i--)
116 117
         {
117
         bmp[i].move( new Static3D(i*w, (height-h)/2, 0) );
118
         bmp[i].scale(factor);
118
         mObj[i].move( new Static3D(i*w, (height-h)/2, 0) );
119
         mObj[i].scale(factor);
119 120
         }
120 121
       }
121 122
       
......
146 147
      
147 148
     bmpHeight = bitmap.getHeight();
148 149
     bmpWidth  = bitmap.getWidth();
150

  
151
     mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
152

  
153
     mObj = new DistortedObject[NUM];
154
     mObj[0] = new DistortedObject(bmpWidth, bmpHeight, 1);
149 155
      
150
     bmp = new DistortedBitmap[NUM];
151
     bmp[0] = new DistortedBitmap(bmpWidth, bmpHeight, 30);
152
      
153
     for(int i=1; i<NUM; i++) bmp[i] = new DistortedBitmap(bmp[0], Distorted.CLONE_BITMAP);
156
     for(int i=1; i<NUM; i++) mObj[i] = new DistortedObject(mObj[0], Distorted.CLONE_BITMAP);
154 157
      
155 158
     // setting the bitmap once is enough; others are cloned!
156
     bmp[0].setBitmap(bitmap);
159
     mObj[0].setTexture(bitmap);
157 160

  
158 161
     Dynamic1D sink = new Dynamic1D(2000,0.0f);
159 162
     sink.add(new Static1D( 1));
160 163
     sink.add(new Static1D(10));
161 164

  
162
     bmp[0].sink(sink, pLeft, RegionEye);
163
     bmp[0].sink(sink, pRight,RegionEye);
164
     bmp[1].distort(mDI, pNose1);
165
     mObj[0].sink(sink, pLeft, RegionEye);
166
     mObj[0].sink(sink, pRight,RegionEye);
167
     mObj[1].distort(mDI, pNose1);
165 168

  
166 169
     Dynamic1D chromaDyn = new Dynamic1D(3000,0.0f);
167 170
     chromaDyn.add(new Static1D(0));
168 171
     chromaDyn.add(new Static1D(1));
169 172

  
170
     bmp[2].chroma(chromaDyn, new Static3D(0,1,0) );
173
     mObj[2].chroma(chromaDyn, new Static3D(0,1,0) );
171 174
      
172 175
     try
173 176
       {
src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
29 29
import android.opengl.GLES20;
30 30
import android.opengl.GLSurfaceView;
31 31

  
32
import org.distorted.library.DistortedBitmap;
32
import org.distorted.library.DistortedBitmapGrid;
33
import org.distorted.library.DistortedObject;
33 34
import org.distorted.library.Distorted;
34 35

  
35 36
///////////////////////////////////////////////////////////////////////////////////////////////////
......
37 38
class DynamicRenderer implements GLSurfaceView.Renderer
38 39
   {  
39 40
   private DynamicSurfaceView mView;
40
   private DistortedBitmap mBackground;
41
   private DistortedObject mBackground;
42
   private DistortedBitmapGrid mGrid;
41 43
   private Canvas mCanvas;
42 44
   private Bitmap mBitmap;
43 45
   private Paint mPaint;
......
78 80
     texW = width;
79 81
     texH = height;
80 82

  
81
     mBackground = new DistortedBitmap(texW,texH, 2);
82
     mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888);
83
     mCanvas = new Canvas(mBitmap);
83
     mGrid       = new DistortedBitmapGrid(1,1);
84
     mBackground = new DistortedObject(texW,texH,1);
85
     mBitmap     = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888);
86
     mCanvas     = new Canvas(mBitmap);
84 87

  
85 88
     Distorted.onSurfaceChanged(texW,texH);
86 89
     mView.onSurfaceChanged(texW,texH);
......
96 99
      
97 100
     mCanvas.drawRect(0, 0, texW, texH, mPaint);
98 101
     mView.drawCurve(mCanvas,time);
99
     mBackground.setBitmap(mBitmap);
100
     mBackground.draw(time);
102
     mBackground.setTexture(mBitmap);
103
     mBackground.draw(time,mGrid);
101 104
     }
102 105

  
103 106
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
29 29
import android.opengl.GLES20;
30 30
import android.opengl.GLSurfaceView;
31 31

  
32
import org.distorted.library.DistortedBitmap;
32
import org.distorted.library.DistortedBitmapGrid;
33
import org.distorted.library.DistortedObject;
33 34
import org.distorted.library.Distorted;
34 35
import org.distorted.library.EffectNames;
35 36
import org.distorted.library.EffectTypes;
......
49 50
  private Paint mPaint;
50 51
  private int texWidth, texHeight;
51 52

  
52
  DistortedBitmap mBackground;
53
  DistortedObject mBackground;
54
  DistortedBitmapGrid mGrid;
53 55

  
54 56
///////////////////////////////////////////////////////////////////////////////////////////////////
55 57

  
......
64 66
      
65 67
    texWidth = BWID;
66 68
    texHeight= BHEI;
69

  
70
    mGrid      = new DistortedBitmapGrid(80,80*texHeight/texWidth);
71
    mBackground= new DistortedObject(texWidth,texHeight,1);
72

  
73
    mBackground.addEventListener(this);
67 74
    }
68 75

  
69 76
///////////////////////////////////////////////////////////////////////////////////////////////////
70 77
   
71 78
  public void onSurfaceCreated(GL10 glUnused, EGLConfig config) 
72
    {      
73
    mBackground = new DistortedBitmap(texWidth,texHeight, 80);
79
    {
74 80
    Bitmap bitmap = Bitmap.createBitmap(texWidth,texHeight, Bitmap.Config.ARGB_8888);
75
    Canvas canvas = new Canvas(bitmap);  
76
      
81
    Canvas canvas = new Canvas(bitmap);
82

  
77 83
    mPaint.setColor(0xff008800);
78 84
    canvas.drawRect(0, 0, texWidth, texHeight, mPaint);
79 85
    mPaint.setColor(0xffffffff);
80
         
86

  
81 87
    for(int i=0; i<=NUMLINES ; i++ )
82 88
      {
83 89
      canvas.drawRect(texWidth*i/NUMLINES - 1,                       0,  texWidth*i/NUMLINES + 1,  texHeight               , mPaint);
84
      canvas.drawRect(                      0, texHeight*i/NUMLINES -1,  texWidth               ,  texHeight*i/NUMLINES + 1, mPaint);  
90
      canvas.drawRect(                      0, texHeight*i/NUMLINES -1,  texWidth               ,  texHeight*i/NUMLINES + 1, mPaint);
85 91
      }
86
          
87
    mBackground.setBitmap(bitmap);
88
    mBackground.addEventListener(this);
92
    mBackground.setTexture(bitmap);
89 93

  
90 94
    try
91 95
      {
......
93 97
      }
94 98
    catch(Exception ex)
95 99
      {
96
      android.util.Log.e("Effects2D", ex.getMessage() );
100
      android.util.Log.e("EffectQueue", ex.getMessage() );
97 101
      }
98 102
    }
99 103

  
......
112 116
  public void onDrawFrame(GL10 glUnused)
113 117
    {   
114 118
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
115
    mBackground.draw(System.currentTimeMillis());
119
    mBackground.draw(System.currentTimeMillis(), mGrid);
116 120
    }
117 121

  
118 122
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
38 38

  
39 39
import org.distorted.examples.R;
40 40
import org.distorted.library.Distorted;
41
import org.distorted.library.DistortedBitmap;
42
import org.distorted.library.DistortedCubes;
41
import org.distorted.library.DistortedBitmapGrid;
42
import org.distorted.library.DistortedCubesGrid;
43
import org.distorted.library.DistortedObjectGrid;
43 44
import org.distorted.library.DistortedObject;
44 45
import org.distorted.library.EffectNames;
45 46
import org.distorted.library.EffectTypes;
......
66 67
  private NumberPicker mColsPicker, mRowsPicker;
67 68
  private boolean[] mShape;
68 69
  private DistortedObject mObject;
70
  private DistortedObjectGrid mGrid;
69 71
  private int mObjectType;
70 72
  private int mBitmapID;
71 73
  private Bitmap mBitmap;
......
220 222
    return mObject;
221 223
    }
222 224

  
225
///////////////////////////////////////////////////////////////////////////////////////////////////
226

  
227
  public DistortedObjectGrid getGrid()
228
    {
229
    return mGrid;
230
    }
231

  
223 232
///////////////////////////////////////////////////////////////////////////////////////////////////
224 233

  
225 234
  public static void setSupportsRegion(boolean supports)
......
388 397
    if( mObjectType==1 )
389 398
      {
390 399
      getBitmap();
391
      mObject = new DistortedBitmap(mBitmap.getWidth(),mBitmap.getHeight(),mNumCols);
400

  
401
      int w = mBitmap.getWidth();
402
      int h = mBitmap.getHeight();
403

  
404
      mObject = new DistortedObject(w,h,1);
405
      mGrid   = new DistortedBitmapGrid(mNumCols,mNumCols*h/w);
392 406
      setEffectView();
393 407
      }
394 408
    else
......
417 431
    for(int i=0; i<mNumRows*mNumCols; i++)
418 432
      str += mShape[i] ? "1" : "0";
419 433

  
420
    mObject = new DistortedCubes(mNumCols, str, 10);
434
    mObject = new DistortedObject(mNumCols,mNumRows,1);
435
    mGrid   = new DistortedCubesGrid(mNumCols, str, false);
421 436

  
422 437
    setEffectView();
423 438
    }
src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
26 26

  
27 27
import org.distorted.examples.R;
28 28
import org.distorted.library.Distorted;
29
import org.distorted.library.DistortedBitmap;
29
import org.distorted.library.DistortedBitmapGrid;
30 30
import org.distorted.library.DistortedObject;
31
import org.distorted.library.DistortedObjectGrid;
31 32
import org.distorted.library.EffectTypes;
32 33
import org.distorted.library.type.Dynamic3D;
33 34
import org.distorted.library.type.DynamicQuat;
......
46 47
{
47 48
    private GLSurfaceView mView;
48 49
    private DistortedObject mObject;
49
    private DistortedBitmap mBackground;
50
    private DistortedBitmap mCenter;
51
    private DistortedBitmap mRegion;
50
    private DistortedObject mBackground;
51
    private DistortedObject mCenter;
52
    private DistortedObject mRegion;
53
    private DistortedBitmapGrid mQuad;
54
    private DistortedObjectGrid mGrid;
52 55
    private int mObjWidth, mObjHeight, mObjDepth;
53 56
    private DynamicQuat mQuatInt1, mQuatInt2;
54 57

  
......
68 71
      {
69 72
      mView = v;
70 73

  
71
      mObject     = ((Effects3DActivity)v.getContext()).getObject();
72
      mBackground = new DistortedBitmap(100, 100, 1);
73
      mCenter     = new DistortedBitmap(100, 100, 1);
74
      mRegion     = new DistortedBitmap(100, 100, 1);
74
      Effects3DActivity act = (Effects3DActivity)v.getContext();
75

  
76
      mObject     = act.getObject();
77
      mGrid       = act.getGrid();
78
      mBackground = new DistortedObject(100, 100, 1);
79
      mCenter     = new DistortedObject(100, 100, 1);
80
      mRegion     = new DistortedObject(100, 100, 1);
81
      mQuad       = new DistortedBitmapGrid(1,1);
75 82

  
76 83
      mObjWidth = mObject.getWidth();
77 84
      mObjHeight= mObject.getHeight();
......
123 130

  
124 131
      long time = System.currentTimeMillis();
125 132

  
126
      mBackground.draw(time);
127
      mObject.draw(time);
133
      mBackground.draw(time,mQuad);
134
      mObject.draw(time,mGrid);
128 135

  
129 136
      if( Effects3DActivity.supportsCenter() )
130 137
        {
131
        mCenter.draw(time);
132
        if( Effects3DActivity.supportsRegion() ) mRegion.draw(time);
138
        mCenter.draw(time, mQuad);
139
        if( Effects3DActivity.supportsRegion() ) mRegion.draw(time, mQuad);
133 140
        }
134 141
      }
135 142

  
......
234 241
        catch(IOException e) { }
235 242
        }  
236 243
      
237
      mObject.setBitmap( act.getBitmap() );
238
      mBackground.setBitmap(bitmap1);
239
      mCenter.setBitmap(bitmap2);
240
      mRegion.setBitmap(bitmap3);
244
      mObject.setTexture( act.getBitmap() );
245
      mBackground.setTexture(bitmap1);
246
      mCenter.setTexture(bitmap2);
247
      mRegion.setTexture(bitmap3);
241 248

  
242 249
      try
243 250
        {
src/main/java/org/distorted/examples/fbo/FBORenderer.java
29 29

  
30 30
import org.distorted.library.DistortedNode;
31 31
import org.distorted.library.Distorted;
32
import org.distorted.library.DistortedBitmap;
32
import org.distorted.library.DistortedBitmapGrid;
33
import org.distorted.library.DistortedObject;
33 34
import org.distorted.library.EffectTypes;
34 35
import org.distorted.library.type.Dynamic1D;
35 36
import org.distorted.library.type.Static1D;
36
import org.distorted.library.type.Static2D;
37 37
import org.distorted.library.type.Static3D;
38 38

  
39 39
import android.graphics.Bitmap;
......
46 46
class FBORenderer implements GLSurfaceView.Renderer 
47 47
{
48 48
   private GLSurfaceView mView;
49
   private DistortedBitmap mLisa;
49
   private DistortedObject mLisa;
50 50
   private int lisaHeight, lisaWidth;
51 51
    
52 52
   private DistortedNode mRoot;
......
121 121
      lisaHeight = bitmap1.getHeight();
122 122
      lisaWidth  = bitmap1.getWidth();
123 123
      
124
      mLisa = new DistortedBitmap(bitmap1, 20);
125
      DistortedBitmap text = new DistortedBitmap(bitmap2, 20);
126
      
127
      mRoot = new DistortedNode(mLisa);
128
      mRoot.attach(text);
124
      mLisa = new DistortedObject(lisaWidth, lisaHeight, 1);
125
      mLisa.setTexture(bitmap1);
126
      DistortedObject text = new DistortedObject(bitmap2.getWidth(),bitmap2.getHeight(),1);
127
      text.setTexture(bitmap2);
128

  
129
      mRoot = new DistortedNode(mLisa,new DistortedBitmapGrid(1,1));
130
      mRoot.attach(text,new DistortedBitmapGrid(20,5));
129 131
     
130 132
      int textWidth  = text.getWidth();
131 133
      int textHeight = text.getHeight();
......
153 155
        }
154 156
      catch(Exception ex)
155 157
        {
156
        android.util.Log.e("MonaLisa", ex.getMessage() );
158
        android.util.Log.e("FBO", ex.getMessage() );
157 159
        }
158 160
      }
159 161
}
src/main/java/org/distorted/examples/flag/FlagRenderer.java
26 26

  
27 27
import org.distorted.examples.R;
28 28
import org.distorted.library.Distorted;
29
import org.distorted.library.DistortedCubes;
29
import org.distorted.library.DistortedCubesGrid;
30 30
import org.distorted.library.DistortedObject;
31 31
import org.distorted.library.EffectTypes;
32 32
import org.distorted.library.type.Dynamic;
33 33
import org.distorted.library.type.Dynamic5D;
34 34
import org.distorted.library.type.DynamicQuat;
35
import org.distorted.library.type.Static2D;
36 35
import org.distorted.library.type.Static3D;
37 36
import org.distorted.library.type.Static4D;
38 37
import org.distorted.library.type.Static5D;
......
49 48
{
50 49
    private GLSurfaceView mView;
51 50
    private DistortedObject mObject;
51
    private DistortedCubesGrid mGrid;
52 52
    private int mObjWidth, mObjHeight;
53 53
    private DynamicQuat mQuatInt1, mQuatInt2;
54 54
    private Dynamic5D mWaveDyn;
......
63 63
      {
64 64
      mView = v;
65 65

  
66
      mObject = new DistortedCubes(50,30,10,false);
66
      mGrid = new DistortedCubesGrid(50,30,false);
67
      mObject = new DistortedObject(50,30,1);
67 68

  
68 69
      mObjWidth = mObject.getWidth();
69 70
      mObjHeight= mObject.getHeight();
......
135 136
    public void onDrawFrame(GL10 glUnused) 
136 137
      {
137 138
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
138
      mObject.draw(System.currentTimeMillis());
139
      mObject.draw(System.currentTimeMillis(), mGrid);
139 140
      }
140 141

  
141 142
///////////////////////////////////////////////////////////////////////////////////////////////////
......
188 189
        catch(IOException e) { }
189 190
        }  
190 191
      
191
      mObject.setBitmap(bitmap);
192
      mObject.setTexture(bitmap);
192 193
      
193 194
      try
194 195
        {
src/main/java/org/distorted/examples/girl/GirlRenderer.java
28 28
import org.distorted.examples.R;
29 29

  
30 30
import org.distorted.library.Distorted;
31
import org.distorted.library.DistortedBitmap;
31
import org.distorted.library.DistortedBitmapGrid;
32
import org.distorted.library.DistortedObject;
32 33
import org.distorted.library.EffectTypes;
33 34
import org.distorted.library.type.Dynamic1D;
34 35
import org.distorted.library.type.Dynamic3D;
35 36
import org.distorted.library.type.Static1D;
36
import org.distorted.library.type.Static2D;
37 37
import org.distorted.library.type.Static3D;
38 38
import org.distorted.library.type.Static4D;
39 39

  
......
47 47
class GirlRenderer implements GLSurfaceView.Renderer 
48 48
{
49 49
    private GLSurfaceView mView;
50
    private DistortedBitmap mGirl;
50
    private DistortedObject mGirl;
51
    private DistortedBitmapGrid mGrid;
51 52
    private Static3D pLeft, pRight, pHips;
52 53
    private Static4D Region, sinkRegion, HipsRegion;
53 54
    private Dynamic3D diL, diR;
......
152 153
   public void onDrawFrame(GL10 glUnused) 
153 154
      {
154 155
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
155
      mGirl.draw(System.currentTimeMillis());
156
      mGirl.draw(System.currentTimeMillis(),mGrid);
156 157
      }
157 158

  
158 159
///////////////////////////////////////////////////////////////////////////////////////////////////
......
205 206
      
206 207
      bmpHeight = bitmap.getHeight();
207 208
      bmpWidth  = bitmap.getWidth();
208
      
209
      mGirl = new DistortedBitmap(bitmap, 30);
209

  
210
      mGrid = new DistortedBitmapGrid(30,30*bmpHeight/bmpWidth);
211
      mGirl = new DistortedObject(bmpWidth,bmpHeight,1);
212
      mGirl.setTexture(bitmap);
210 213

  
211 214
      mGirl.sink( diSink, pLeft, sinkRegion );
212 215
      mGirl.sink( diSink, pRight,sinkRegion );
src/main/java/org/distorted/examples/listener/ListenerRenderer.java
29 29
import org.distorted.examples.R;
30 30

  
31 31
import org.distorted.library.Distorted;
32
import org.distorted.library.DistortedBitmap;
32
import org.distorted.library.DistortedBitmapGrid;
33
import org.distorted.library.DistortedObject;
33 34
import org.distorted.library.EffectNames;
34 35
import org.distorted.library.EffectTypes;
35 36
import org.distorted.library.type.Dynamic3D;
36
import org.distorted.library.type.Static2D;
37 37
import org.distorted.library.type.Static3D;
38 38
import org.distorted.library.type.Static4D;
39 39
import org.distorted.library.message.EffectListener;
......
51 51
   private final int NUM_BUBBLES = 12;
52 52

  
53 53
   private GLSurfaceView mView;
54
   private DistortedBitmap water;
54
   private DistortedObject mWater;
55
   private DistortedBitmapGrid mGrid;
55 56
   private int bmpHeight, bmpWidth;
56 57
   private Random mRnd;
57 58

  
......
77 78
      dDistort.add(new Static3D(0,0,     0));
78 79
      dDistort.add(new Static3D(0,0,height));
79 80

  
80
      return water.distort(dDistort, new Static3D(pointx,pointy,0), new Static4D(0,0,radius,radius));
81
      return mWater.distort(dDistort, new Static3D(pointx,pointy,0), new Static4D(0,0,radius,radius));
81 82
      }
82 83
   
83 84
///////////////////////////////////////////////////////////////////////////////////////////////////
......
97 98
    public void onDrawFrame(GL10 glUnused) 
98 99
      {
99 100
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
100
      water.draw(System.currentTimeMillis());
101
      mWater.draw(System.currentTimeMillis(), mGrid);
101 102
      }
102 103

  
103 104
///////////////////////////////////////////////////////////////////////////////////////////////////
104 105
    
105 106
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
106 107
      { 
107
      water.abortEffects(EffectTypes.MATRIX);
108
      mWater.abortEffects(EffectTypes.MATRIX);
108 109
         
109 110
      if( (float)bmpHeight/bmpWidth > (float)height/width )
110 111
        {
111 112
        int w = (height*bmpWidth)/bmpHeight;
112 113
        float factor = (float)height/bmpHeight;
113 114

  
114
        water.move( new Static3D((width-w)/2,0,0) );
115
        water.scale(factor);
115
        mWater.move( new Static3D((width-w)/2,0,0) );
116
        mWater.scale(factor);
116 117
        }
117 118
      else
118 119
        {
119 120
        int h = (width*bmpHeight)/bmpWidth;
120 121
        float factor = (float)width/bmpWidth;
121 122

  
122
        water.move( new Static3D(0,(height-h)/2,0) );
123
        water.scale(factor);
123
        mWater.move( new Static3D(0,(height-h)/2,0) );
124
        mWater.scale(factor);
124 125
        }
125 126
      
126 127
      Distorted.onSurfaceChanged(width, height); 
......
152 153
      
153 154
      bmpHeight = bitmap.getHeight();
154 155
      bmpWidth  = bitmap.getWidth();
155
      
156
      water = new DistortedBitmap(bitmap, 50);
157
      water.addEventListener(this);
156

  
157
      mGrid  = new DistortedBitmapGrid(50,50*bmpHeight/bmpWidth);
158
      mWater = new DistortedObject(bmpWidth,bmpHeight,1);
159
      mWater.setTexture(bitmap);
160
      mWater.addEventListener(this);
158 161
      
159 162
      for(int i=0; i<NUM_BUBBLES; i++) randomizeNewBubble();
160 163
      
src/main/java/org/distorted/examples/matrix3d/Matrix3DActivity.java
32 32

  
33 33
import org.distorted.examples.R;
34 34
import org.distorted.library.Distorted;
35
import org.distorted.library.DistortedCubes;
35
import org.distorted.library.DistortedObjectGrid;
36
import org.distorted.library.DistortedCubesGrid;
36 37
import org.distorted.library.DistortedObject;
37 38
import org.distorted.library.EffectNames;
38 39
import org.distorted.library.EffectTypes;
......
46 47
public class Matrix3DActivity extends Activity implements AdapterView.OnItemSelectedListener
47 48
  {
48 49
  private DistortedObject mObject;
50
  private DistortedObjectGrid mGrid;
49 51

  
50 52
  private ArrayList<Matrix3DEffect> mEffects;
51 53
  private int mEffectAdd;
......
66 68

  
67 69
    createEffectNames();
68 70

  
69
    mObject = new DistortedCubes( 1, "1", 100);
71
    mGrid   = new DistortedCubesGrid(1,1,false);
72
    mObject = new DistortedObject(1,1,1);
70 73

  
71 74
    setEffectView();
72 75
    }
......
102 105
    return mObject;
103 106
    }
104 107

  
108
///////////////////////////////////////////////////////////////////////////////////////////////////
109

  
110
  public DistortedObjectGrid getGrid()
111
    {
112
    return mGrid;
113
    }
114

  
105 115
///////////////////////////////////////////////////////////////////////////////////////////////////
106 116

  
107 117
  public void setRegion(float x, float y, float r)
src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
23 23
import android.opengl.GLSurfaceView;
24 24

  
25 25
import org.distorted.library.Distorted;
26
import org.distorted.library.DistortedObjectGrid;
26 27
import org.distorted.library.DistortedObject;
27 28
import org.distorted.library.EffectTypes;
28 29

  
......
35 36
{
36 37
    private GLSurfaceView mView;
37 38
    private DistortedObject mObject;
39
    private DistortedObjectGrid mGrid;
38 40

  
39 41
    private int mWidth, mHeight;
40 42

  
......
44 46
      {
45 47
      mView = v;
46 48

  
47
      mObject= ((Matrix3DActivity)v.getContext()).getObject();
49
      Matrix3DActivity act = (Matrix3DActivity)v.getContext();
50

  
51
      mObject= act.getObject();
52
      mGrid  = act.getGrid();
48 53
      }
49 54

  
50 55
///////////////////////////////////////////////////////////////////////////////////////////////////
......
55 60

  
56 61
      long time = System.currentTimeMillis();
57 62

  
58
      mObject.draw(time);
63
      mObject.draw(time,mGrid);
59 64
      }
60 65

  
61 66
///////////////////////////////////////////////////////////////////////////////////////////////////
......
92 97

  
93 98
      Matrix3DActivity act = (Matrix3DActivity)mView.getContext();
94 99

  
95
      mObject.setBitmap( act.getBitmap() );
100
      mObject.setTexture(act.getBitmap());
96 101

  
97 102
      try
98 103
        {
src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
27 27

  
28 28
import org.distorted.examples.R;
29 29
import org.distorted.library.Distorted;
30
import org.distorted.library.DistortedBitmap;
30
import org.distorted.library.DistortedObject;
31
import org.distorted.library.DistortedBitmapGrid;
31 32
import org.distorted.library.EffectTypes;
32 33
import org.distorted.library.type.Dynamic3D;
33
import org.distorted.library.type.Static2D;
34 34
import org.distorted.library.type.Static3D;
35 35
import org.distorted.library.type.Static4D;
36 36

  
......
44 44
class MonaLisaRenderer implements GLSurfaceView.Renderer 
45 45
{
46 46
    private GLSurfaceView mView;
47
    private DistortedBitmap monaLisa;
47
    private DistortedObject mObject;
48
    private DistortedBitmapGrid mGrid;
48 49
    private Static3D pLeft, pRight;
49 50
    private Static4D rLeft, rRight;
50 51
    private Dynamic3D dLeft, dRight;
......
75 76
    public void onDrawFrame(GL10 glUnused) 
76 77
      {
77 78
      GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
78
      monaLisa.draw(System.currentTimeMillis());
79
      mObject.draw(System.currentTimeMillis(),mGrid);
79 80
      }
80 81

  
81 82
///////////////////////////////////////////////////////////////////////////////////////////////////
82 83
    
83 84
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
84 85
      { 
85
      monaLisa.abortEffects(EffectTypes.MATRIX);
86
      mObject.abortEffects(EffectTypes.MATRIX);
86 87

  
87 88
      if( (float)bmpHeight/bmpWidth > (float)height/width )
88 89
        {
89 90
        int w = (height*bmpWidth)/bmpHeight;
90 91
        float factor = (float)height/bmpHeight;
91
        monaLisa.move( new Static3D((width-w)/2,0,0) );
92
        monaLisa.scale(factor);
92
        mObject.move( new Static3D((width-w)/2,0,0) );
93
        mObject.scale(factor);
93 94
        }
94 95
      else
95 96
        {
96 97
        int h = (width*bmpHeight)/bmpWidth;
97 98
        float factor = (float)width/bmpWidth;
98
        monaLisa.move( new Static3D(0,(height-h)/2,0) );
99
        monaLisa.scale(factor);
99
        mObject.move( new Static3D(0,(height-h)/2,0) );
100
        mObject.scale(factor);
100 101
        }
101 102

  
102 103
      Distorted.onSurfaceChanged(width, height); 
......
127 128
      bmpHeight = bitmap.getHeight();
128 129
      bmpWidth  = bitmap.getWidth();
129 130

  
130
      monaLisa = new DistortedBitmap(bitmap, 9);
131
      monaLisa.distort( dLeft, pLeft , rLeft );
132
      monaLisa.distort(dRight, pRight, rRight);
131
      mGrid = new DistortedBitmapGrid(9,9*bmpHeight/bmpWidth);
132
      mObject = new DistortedObject(bmpWidth,bmpHeight,1);
133
      mObject.setTexture(bitmap);
134
      mObject.distort( dLeft, pLeft , rLeft );
135
      mObject.distort(dRight, pRight, rRight);
133 136

  
134 137
      try
135 138
        {
src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
29 29
import android.opengl.GLES20;
30 30
import android.opengl.GLSurfaceView;
31 31

  
32
import org.distorted.library.DistortedBitmap;
32
import org.distorted.library.DistortedObject;
33
import org.distorted.library.DistortedBitmapGrid;
33 34
import org.distorted.library.Distorted;
34 35

  
35 36
///////////////////////////////////////////////////////////////////////////////////////////////////
......
42 43
   private Paint mPaint;
43 44
   private int texW, texH;
44 45

  
45
   static DistortedBitmap mBackground;
46
   private DistortedBitmapGrid mGrid;
47

  
48
   static DistortedObject mBackground;
46 49

  
47 50
///////////////////////////////////////////////////////////////////////////////////////////////////
48 51

  
......
102 105
     texW = width;
103 106
     texH = height;
104 107

  
105
     mBackground = new DistortedBitmap(texW,texH, 80);
108
     mGrid = new DistortedBitmapGrid(80,80*height/width);
109
     mBackground = new DistortedObject(texW,texH,1);
106 110
     mBitmap = Bitmap.createBitmap(texW,texH, Bitmap.Config.ARGB_8888);
107 111
     mCanvas = new Canvas(mBitmap);
108 112

  
......
122 126
       {
123 127
       drawBackground();   
124 128
       mView.drawCurve(mCanvas,time);
125
       mBackground.setBitmap(mBitmap);  
129
       mBackground.setTexture(mBitmap);
126 130
       }
127 131
      
128
     mBackground.draw(time);
132
     mBackground.draw(time,mGrid);
129 133
     }
130 134

  
131 135
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
33 33
import org.distorted.library.type.Static3D;
34 34
import org.distorted.library.type.Static1D;
35 35
import org.distorted.library.Distorted;
36
import org.distorted.library.DistortedBitmap;
36
import org.distorted.library.DistortedBitmapGrid;
37
import org.distorted.library.DistortedObject;
37 38

  
38 39
import android.graphics.Bitmap;
39 40
import android.graphics.BitmapFactory;
......
50 51
   
51 52
   private GLSurfaceView mView;
52 53
   private DistortedNode mScreen;
53
   private DistortedBitmap mLeaf;
54
   private DistortedObject mLeaf;
54 55

  
55 56
///////////////////////////////////////////////////////////////////////////////////////////////////
56 57

  
57 58
   OlimpicRenderer(GLSurfaceView v)
58 59
      {     
59 60
      mView = v;
60
    
61
      mLeaf = new DistortedBitmap(LEAF_SIZE,LEAF_SIZE,1);
62
      
63
      mScreen = new DistortedNode(new DistortedBitmap(9*LEAF_SIZE,9*LEAF_SIZE,1));
61

  
62
      mLeaf = new DistortedObject(LEAF_SIZE,LEAF_SIZE,1);
63
      DistortedBitmapGrid grid = new DistortedBitmapGrid(1,1);
64

  
65
      mScreen = new DistortedNode(new DistortedObject(9*LEAF_SIZE,9*LEAF_SIZE,1), grid);
64 66
     
65 67
      Dynamic1D rot = new Dynamic1D(5000,0.0f);
66 68
      rot.setMode(Dynamic1D.MODE_JUMP);
......
72 74
      int[] colors    = new int[] {0,0,1,  0,0,0,  1,0,0,  1,1,0,  0,1,0}; // blue, black, red, yellow, green  
73 75
      int[] positions = new int[] {0*LEAF_SIZE,2*LEAF_SIZE,  3*LEAF_SIZE,2*LEAF_SIZE,  6*LEAF_SIZE,2*LEAF_SIZE,  3*LEAF_SIZE/2,9*LEAF_SIZE/2,  9*LEAF_SIZE/2,9*LEAF_SIZE/2};
74 76
      
75
      DistortedBitmap tmp;
77
      DistortedObject tmp;
76 78
      Static3D center = new Static3D(3*LEAF_SIZE/2, 3*LEAF_SIZE/2, 0);
77 79
      Static3D axis   = new Static3D(0,0,1);
78 80
      Static3D moveVector = new Static3D(0,LEAF_SIZE,0);
......
81 83
        {
82 84
        if( i==0 )
83 85
          {
84
          mCircleNode[i] = new DistortedNode(new DistortedBitmap(3*LEAF_SIZE,3*LEAF_SIZE,1));
86
          mCircleNode[i] = new DistortedNode(new DistortedObject(3*LEAF_SIZE,3*LEAF_SIZE,1), grid);
85 87
        
86 88
          for(int j=0; j<NUM_LEAVES; j++)
87 89
            {
88
            tmp = new DistortedBitmap(mLeaf, Distorted.CLONE_BITMAP);
89
            mCircleNode[i].attach(tmp);
90
            tmp = new DistortedObject(mLeaf, Distorted.CLONE_BITMAP);
91
            mCircleNode[i].attach(tmp,grid);
90 92
            tmp.rotate( new Static1D(j*(360/NUM_LEAVES)), axis, center );
91 93
            tmp.move(moveVector);
92 94
            }
......
97 99
          }
98 100
      
99 101
        mScreen.attach(mCircleNode[i]);
100
        tmp = (DistortedBitmap)mCircleNode[i].getObject();
102
        tmp = mCircleNode[i].getObject();
101 103
        tmp.move( new Static3D(positions[2*i], positions[2*i+1], 0) );
102 104
        tmp.rotate( rot, axis, center );
103 105
        tmp.chroma( new Static1D(0.5f), new Static3D(colors[3*i],colors[3*i+1], colors[3*i+2]) );
......
116 118
    
117 119
    public void onSurfaceChanged(GL10 glUnused, int width, int height) 
118 120
      {
119
      DistortedBitmap bmp = (DistortedBitmap)mScreen.getObject();
121
      DistortedObject bmp = mScreen.getObject();
120 122
      int bmpWidth  = bmp.getWidth();
121 123
      int bmpHeight = bmp.getHeight();
122 124
     
......
164 166
        catch(IOException e) { }
165 167
        }  
166 168
      
167
      mLeaf.setBitmap(leaf);
169
      mLeaf.setTexture(leaf);
168 170
      
169 171
      try
170 172
        {
src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
31 31
import android.view.SurfaceView;
32 32

  
33 33
import org.distorted.library.Distorted;
34
import org.distorted.library.DistortedBitmap;
34
import org.distorted.library.DistortedBitmapGrid;
35
import org.distorted.library.DistortedObject;
35 36
import org.distorted.library.EffectTypes;
36 37
import org.distorted.library.type.Dynamic3D;
37
import org.distorted.library.type.Static2D;
38 38
import org.distorted.library.type.Static3D;
39 39
import org.distorted.library.type.Static4D;
40 40
import org.distorted.examples.R;
......
60 60
  private EglCore eglCore;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff