Project

General

Profile

« Previous | Next » 

Revision c1f047b9

Added by Leszek Koltunski almost 4 years ago

Progress with the Predeform app.

View differences:

src/main/java/org/distorted/examples/predeform/PredeformActivity.java
312 312
    }
313 313

  
314 314
///////////////////////////////////////////////////////////////////////////////////////////////////
315
// TODO
315
// only if we want to draw the center, ignore here
316 316

  
317 317
  void setCenter(float x, float y, float z)
318 318
    {
......
320 320
    }
321 321

  
322 322
///////////////////////////////////////////////////////////////////////////////////////////////////
323
// TODO
323
// only if we want to draw the region, ignore here
324 324

  
325 325
  void setRegion(Static4D region)
326 326
    {
src/main/java/org/distorted/examples/predeform/PredeformActivity2.java
27 27
import android.opengl.GLSurfaceView;
28 28
import android.os.Bundle;
29 29
import android.view.View;
30
import android.widget.AdapterView;
31
import android.widget.ArrayAdapter;
30
import android.widget.CheckBox;
32 31
import android.widget.SeekBar;
33
import android.widget.Spinner;
34 32
import android.widget.TextView;
35 33

  
36 34
import org.distorted.examples.R;
......
43 41

  
44 42
///////////////////////////////////////////////////////////////////////////////////////////////////
45 43

  
46
public class PredeformActivity2 extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
44
public class PredeformActivity2 extends Activity implements SeekBar.OnSeekBarChangeListener
47 45
{
48 46
    private Bitmap mBitmap;
49 47
    private TextView mTextLevel;
......
108 106
      mTexture = new DistortedTexture();
109 107

  
110 108
      setContentView(R.layout.predeformlayout);
111

  
112
      Spinner renderSpinner = findViewById(R.id.predeformSpinnerMode);
113
      renderSpinner.setOnItemSelectedListener(this);
114

  
115
      String[] objectBitmap = new String[] { "Render: Normal", "Render: OIT" };
116

  
117
      ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap);
118
      adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
119
      renderSpinner.setAdapter(adapterBitmap);
120

  
109
;
121 110
      mTextLevel = findViewById(R.id.predeformInflateText);
122 111

  
123
      SeekBar transparencyBar = findViewById(R.id.predeformTransparency);
124
      transparencyBar.setOnSeekBarChangeListener(this);
125
      transparencyBar.setProgress(50);
126

  
127 112
      SeekBar inflateBar = findViewById(R.id.predeformInflateLevel);
128 113
      inflateBar.setOnSeekBarChangeListener(this);
129 114
      inflateBar.setProgress(50);
130 115
      }
131 116

  
117
///////////////////////////////////////////////////////////////////////////////////////////////////
118

  
119
    public void showNormal(View view)
120
      {
121
      CheckBox box = (CheckBox)view;
122
      boolean showNormal = box.isChecked();
123

  
124
      if ( mMesh!=null )
125
        {
126
        mMesh.setShowNormals(showNormal);
127
        }
128
      }
129

  
132 130
///////////////////////////////////////////////////////////////////////////////////////////////////
133 131

  
134 132
    private void createBitmap(int size, int bitmapID)
......
193 191
      return mBitmap;
194 192
      }
195 193

  
196
///////////////////////////////////////////////////////////////////////////////////////////////////
197

  
198
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
199
      {
200
      PredeformSurfaceView v = findViewById(R.id.predeformSurfaceView);
201
      PredeformRenderer renderer = v.getRenderer();
202

  
203
      if( parent.getId()==R.id.predeformSpinnerMode)
204
        {
205
        renderer.setRenderModeToOIT(pos==1);
206
        }
207
      }
208

  
209
///////////////////////////////////////////////////////////////////////////////////////////////////
210

  
211
    public void onNothingSelected(AdapterView<?> parent)
212
      {
213
      }
214

  
215 194
///////////////////////////////////////////////////////////////////////////////////////////////////
216 195

  
217 196
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
218 197
      {
219
      switch (bar.getId())
198
      if(bar.getId() == R.id.predeformInflateLevel)
220 199
        {
221
        case R.id.predeformTransparency: PredeformSurfaceView v1 = findViewById(R.id.predeformSurfaceView);
222
                                         v1.getRenderer().setTransparency(progress);
223
                                         break;
224
        case R.id.predeformInflateLevel: PredeformSurfaceView v2 = findViewById(R.id.predeformSurfaceView);
225
                                         float level = v2.getRenderer().setLevel(progress);
226
                                         mTextLevel.setText(getString(R.string.inflate_placeholder, level));
227
                                         break;
200
        PredeformSurfaceView v2 = findViewById(R.id.predeformSurfaceView);
201
        float level = v2.getRenderer().setLevel(progress);
202
        mTextLevel.setText(getString(R.string.inflate_placeholder, level));
228 203
        }
229 204
      }
230 205

  
src/main/java/org/distorted/examples/predeform/PredeformRenderer.java
31 31
import org.distorted.library.main.DistortedTexture;
32 32
import org.distorted.library.mesh.MeshBase;
33 33
import org.distorted.library.type.DynamicQuat;
34
import org.distorted.library.type.Static1D;
35 34
import org.distorted.library.type.Static3D;
36 35
import org.distorted.library.type.Static4D;
37 36

  
......
52 51
    private DistortedScreen mScreen;
53 52
    private float mObjWidth, mObjHeight, mObjDepth;
54 53
    private Static3D mScale;
55
    private Static1D mAlpha;
56 54

  
57 55
    Static4D mQuat1, mQuat2;
58 56
    int mScreenMin;
......
63 61
      {
64 62
      mView = v;
65 63

  
66
      mAlpha = new Static1D(1.0f);
67 64
      mScale= new Static3D(1,1,1);
68 65

  
69 66
      Static3D center=new Static3D(0,0,0);
......
91 88
      mEffects.apply( new MatrixEffectScale(mScale));
92 89
      mEffects.apply( new MatrixEffectQuaternion(quatInt2, center) );
93 90
      mEffects.apply( new MatrixEffectQuaternion(quatInt1, center) );
94
      mEffects.apply( new FragmentEffectAlpha(mAlpha));
95 91

  
96 92
      mScreen = new DistortedScreen();
97 93
      mScreen.glClearColor(1.0f,1.0f,1.0f,0.0f);
......
117 113
      mScreen.resize(width, height);
118 114
      }
119 115

  
120
///////////////////////////////////////////////////////////////////////////////////////////////////
121

  
122
    void setRenderModeToOIT(boolean oit)
123
      {
124
      mScreen.setOrderIndependentTransparency(oit);
125
      }
126

  
127
///////////////////////////////////////////////////////////////////////////////////////////////////
128

  
129
    void setTransparency(int level)
130
      {
131
      mAlpha.set((float)level/100.0f);
132
      }
133

  
134 116
///////////////////////////////////////////////////////////////////////////////////////////////////
135 117

  
136 118
    float setLevel(int level)
src/main/res/layout/predeformlayout.xml
21 21

  
22 22
        <TextView
23 23
            android:id="@+id/predeformInflateText"
24
            android:layout_width="0dp"
24
            android:layout_width="wrap_content"
25 25
            android:layout_height="wrap_content"
26
            android:layout_weight="0.3"
26
            android:layout_weight="1"
27 27
            android:paddingLeft="10dp"
28 28
            android:text="@string/inflate" />
29 29

  
30 30
        <SeekBar
31 31
            android:id="@+id/predeformInflateLevel"
32
            android:layout_weight="0.7"
33
            android:layout_width="0dp"
34
            android:layout_height="50dp"
35
            android:paddingLeft="10dp"
32
            android:layout_width="wrap_content"
33
            android:layout_height="wrap_content"
34
            android:layout_weight="3"
35
            android:paddingLeft="5dp"
36 36
            android:paddingRight="5dp" />
37 37

  
38
    </LinearLayout>
39

  
40
    <LinearLayout
41
        android:id="@+id/linearLayout3"
42
        android:layout_width="fill_parent"
43
        android:layout_height="wrap_content"
44
        android:gravity="center|fill_horizontal"
45
        android:orientation="horizontal"
46
        android:background="@color/blue">
47

  
48
        <SeekBar
49
            android:id="@+id/predeformTransparency"
50
            android:layout_weight="0.50"
51
            android:layout_width="0dp"
52
            android:layout_height="50dp"
53
            android:paddingLeft="10dp"
54
            android:paddingRight="10dp" />
38
        <CheckBox
39
            android:id="@+id/predeformNormal"
40
            android:layout_width="wrap_content"
41
            android:layout_height="wrap_content"
42
            android:layout_weight="1"
43
            android:checked="false"
44
            android:onClick="showNormal"
45
            android:text="@string/show_normal"
46
            android:textSize="12sp"/>
55 47

  
56
        <Spinner
57
            android:layout_width="0dp"
58
            android:layout_height="50dp"
59
            android:layout_weight="0.5"
60
            android:id="@+id/predeformSpinnerMode"
61
            />
62 48
    </LinearLayout>
63

  
64 49
</LinearLayout>

Also available in: Unified diff