Project

General

Profile

« Previous | Next » 

Revision 7198e5c9

Added by Leszek Koltunski over 3 years ago

Progress with the MeshFile app.

View differences:

src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
25 25
import android.view.View;
26 26
import android.widget.AdapterView;
27 27
import android.widget.ArrayAdapter;
28
import android.widget.Button;
29
import android.widget.LinearLayout;
28 30
import android.widget.SeekBar;
29 31
import android.widget.Spinner;
30 32
import android.widget.TextView;
......
34 36

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

  
37
public class MeshFileActivity extends Activity implements AdapterView.OnItemSelectedListener, SeekBar.OnSeekBarChangeListener
39
public class MeshFileActivity extends Activity implements AdapterView.OnItemSelectedListener,
40
                                                          SeekBar.OnSeekBarChangeListener,
41
                                                          View.OnClickListener
38 42
{
43
    private LinearLayout mLayout;
39 44
    private int mResource;
40 45
    private String[] mNames = new String[] { "deferredjob",
41 46
                                             "meshjoin"   ,
......
67 72
      SeekBar barB = findViewById(R.id.meshfileScale);
68 73
      barB.setOnSeekBarChangeListener(this);
69 74
      barB.setProgress(50);
75

  
76
      mLayout = findViewById(R.id.meshfileComponentLayout);
70 77
      }
71 78

  
72 79
///////////////////////////////////////////////////////////////////////////////////////////////////
......
121 128
      byt.setText( String.format("%d", bytes   ) );
122 129
      ver.setText( String.format("%d", vertices) );
123 130
      tim.setText( String.format("%d", time    ) );
131

  
132
      mLayout.removeAllViews();
133

  
134
      int effComponentNum = renderer.getEffComponentNum();
135

  
136
      for(int i=0; i<effComponentNum; i++)
137
        {
138
        View compView = createComponentView(renderer,i);
139
        mLayout.addView(compView);
140
        }
141
      }
142

  
143
///////////////////////////////////////////////////////////////////////////////////////////////////
144

  
145
    private View createComponentView(MeshFileRenderer renderer, int component)
146
      {
147
      View view = getLayoutInflater().inflate(R.layout.meshfilecomponent, null);
148

  
149
      TextView id = view.findViewById(R.id.meshfileComponentID);
150
      id.setText(String.valueOf(component));
151

  
152
      int endIndex = renderer.getEndEffIndex(component);
153
      TextView index = view.findViewById(R.id.meshfileComponentText);
154
      index.setText(String.valueOf(endIndex));
155

  
156
      Button butt = view.findViewById(R.id.meshfileComponentDisappear);
157
      butt.setId(component);
158
      butt.setOnClickListener(this);
159

  
160
      return view;
124 161
      }
125 162

  
126 163
///////////////////////////////////////////////////////////////////////////////////////////////////
......
151 188
      {
152 189
      }
153 190

  
191
///////////////////////////////////////////////////////////////////////////////////////////////////
192

  
193
  @Override
194
  public void onClick(View v)
195
    {
196
    int id = v.getId();
197

  
198
    android.util.Log.e("act", "clicked: "+id);
199
    }
200

  
154 201
///////////////////////////////////////////////////////////////////////////////////////////////////
155 202

  
156 203
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
33 33
import org.distorted.library.main.DistortedLibrary;
34 34
import org.distorted.library.main.DistortedScreen;
35 35
import org.distorted.library.main.DistortedTexture;
36
import org.distorted.library.mesh.MeshBase;
37 36
import org.distorted.library.mesh.MeshFile;
38 37
import org.distorted.library.type.DynamicQuat;
39 38
import org.distorted.library.type.Static3D;
......
58 57
    private DistortedEffects mEffects;
59 58
    private Static3D mScale;
60 59
    private long mTime;
61
    private int mBytes;
62
    private int mVertices;
63 60
    private float mCurrentScale;
61
    private MeshFile mMesh;
64 62

  
65 63
    Static4D mQuat1, mQuat2;
66 64
    int mScreenMin;
......
155 153
      mTexture.setTexture( createTexture(resourceID) );
156 154

  
157 155
      long t1 = System.currentTimeMillis();
158
      MeshBase mesh = createMesh(resourceID);
156
      createMesh(resourceID);
159 157
      long t2 = System.currentTimeMillis();
160 158

  
161 159
      mTime = t2-t1;
162 160

  
163 161
      mScreen.detachAll();
164
      mScreen.attach(mTexture,mEffects,mesh);
162
      mScreen.attach(mTexture,mEffects,mMesh);
165 163
      }
166 164

  
167 165
///////////////////////////////////////////////////////////////////////////////////////////////////
......
298 296

  
299 297
///////////////////////////////////////////////////////////////////////////////////////////////////
300 298

  
301
    private MeshBase createMesh(int resourceID)
299
    private void createMesh(int resourceID)
302 300
      {
303 301
      Context con = mView.getContext();
304 302
      Resources res = con.getResources();
305 303
      InputStream is = res.openRawResource(resourceID);
306 304
      DataInputStream dos = new DataInputStream(is);
307
      MeshFile mesh = new MeshFile(dos);
308

  
309
      mBytes = mesh.getNumBytes();
310
      mVertices = mesh.getNumVertices();
305
      mMesh = new MeshFile(dos);
311 306

  
312 307
      try
313 308
        {
......
317 312
        {
318 313
        android.util.Log.e("MeshFile", "Error closing InputStream: "+e.toString());
319 314
        }
320

  
321
      return mesh;
322 315
      }
323 316

  
324 317
///////////////////////////////////////////////////////////////////////////////////////////////////
......
332 325

  
333 326
    int getBytes()
334 327
      {
335
      return mBytes;
328
      return mMesh.getNumBytes();
336 329
      }
337 330

  
338 331
///////////////////////////////////////////////////////////////////////////////////////////////////
339 332

  
340 333
    int getVertices()
341 334
      {
342
      return mVertices;
335
      return mMesh.getNumVertices();
336
      }
337

  
338
///////////////////////////////////////////////////////////////////////////////////////////////////
339

  
340
    int getEndEffIndex(int component)
341
      {
342
      return mMesh.getLastVertexEff(component);
343
      }
344

  
345
///////////////////////////////////////////////////////////////////////////////////////////////////
346

  
347
    int getEndTexIndex(int component)
348
      {
349
      return mMesh.getLastVertexTex(component);
350
      }
351

  
352
///////////////////////////////////////////////////////////////////////////////////////////////////
353

  
354
    int getEffComponentNum()
355
      {
356
      return mMesh.numEffComponents();
357
      }
358

  
359
///////////////////////////////////////////////////////////////////////////////////////////////////
360

  
361
    int getTexComponentNum()
362
      {
363
      return mMesh.numTexComponents();
343 364
      }
344 365
}
src/main/res/layout/meshfilecomponent.xml
1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
     android:layout_width="match_parent"
4
     android:layout_height="match_parent"
5
     android:orientation="horizontal">
6

  
7
     <TextView
8
          android:id="@+id/meshfileComponentID"
9
          android:layout_width="wrap_content"
10
          android:layout_height="wrap_content"
11
          android:layout_marginEnd="5dp"
12
          android:layout_marginStart="5dp"
13
          android:layout_marginTop="5dp"
14
          android:layout_weight="1"/>
15

  
16
     <TextView
17
          android:id="@+id/meshfileComponentText"
18
          android:layout_width="wrap_content"
19
          android:layout_height="wrap_content"
20
          android:layout_marginEnd="5dp"
21
          android:layout_marginStart="5dp"
22
          android:layout_marginTop="5dp"
23
          android:layout_weight="1"/>
24

  
25
     <Button
26
          android:id="@+id/meshfileComponentDisappear"
27
          android:text="@string/disappear"
28
          android:layout_width="wrap_content"
29
          android:layout_height="wrap_content"
30
          android:layout_weight="0.2"
31
          android:layout_marginEnd="5dp"
32
          android:layout_marginStart="10dp"
33
          android:layout_marginTop="5dp"/>
34
</LinearLayout>
src/main/res/layout/meshfilelayout.xml
94 94

  
95 95
    </LinearLayout>
96 96

  
97
    <View
98
        android:layout_height="4dip"
99
        android:background="#777777"
100
        android:layout_width="match_parent"
101
        />
102

  
103
    <TextView
104
          android:text="@string/effComponents"
105
          android:layout_width="wrap_content"
106
          android:layout_height="wrap_content"
107
          android:gravity="center"
108
          android:layout_marginEnd="5dp"
109
          android:layout_marginStart="5dp"
110
          android:layout_marginTop="5dp"/>
111

  
112
    <View
113
        android:layout_height="4dip"
114
        android:background="#777777"
115
        android:layout_width="match_parent"
116
        />
117

  
118
    <ScrollView
119
        android:id="@+id/meshfileScrollView"
120
        android:layout_width="match_parent"
121
        android:layout_height="0dp"
122
        android:layout_weight="0.5">
123

  
124
        <LinearLayout
125
            android:id="@+id/meshfileComponentLayout"
126
            android:layout_width="match_parent"
127
            android:layout_height="wrap_content"
128
            android:orientation="vertical" >
129
        </LinearLayout>
130

  
131
    </ScrollView>
132

  
97 133
</LinearLayout>
src/main/res/values/strings.xml
90 90
    <string name="open">Open</string>
91 91
    <string name="vertices">Vert</string>
92 92
    <string name="time">Time</string>
93
    <string name="disappear">Disappear</string>
94
    <string name="appear">Appear</string>
95
    <string name="effComponents">Effect Components</string>
93 96

  
94 97
    <string name="quality0">Highest</string>
95 98
    <string name="quality1">High</string>

Also available in: Unified diff