Project

General

Profile

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

examples / src / main / java / org / distorted / examples / meshfile / MeshFileActivity.java @ 16b336db

1
///////////////////////////////////////////////////////////////////////////////////////////////////
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.meshfile;
21

    
22
import android.app.Activity;
23
import android.opengl.GLSurfaceView;
24
import android.os.Bundle;
25
import android.view.View;
26
import android.widget.AdapterView;
27
import android.widget.ArrayAdapter;
28
import android.widget.SeekBar;
29
import android.widget.Spinner;
30
import android.widget.TextView;
31

    
32
import org.distorted.examples.R;
33
import org.distorted.library.main.DistortedLibrary;
34

    
35
///////////////////////////////////////////////////////////////////////////////////////////////////
36

    
37
public class MeshFileActivity extends Activity implements AdapterView.OnItemSelectedListener, SeekBar.OnSeekBarChangeListener
38
{
39
    private int mResource;
40
    private String[] mNames = new String[] { "deferredjob",
41
                                             "meshjoin"   ,
42
                                             "predeform"  ,
43
                                             "cube2"      ,
44
                                             "cube3"      ,
45
                                             "cube4"      ,
46
                                             "cube5"      ,
47
                                             "pyra3"      ,
48
                                             "pyra4"      ,
49
                                             "pyra5"
50
                                           };
51

    
52
///////////////////////////////////////////////////////////////////////////////////////////////////
53

    
54
    @Override
55
    protected void onCreate(Bundle icicle) 
56
      {
57
      super.onCreate(icicle);
58
      setContentView(R.layout.meshfilelayout);
59

    
60
      Spinner meshSpinner  = findViewById(R.id.meshfileSpinner);
61
      meshSpinner.setOnItemSelectedListener(this);
62

    
63
      ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, mNames);
64
      adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
65
      meshSpinner.setAdapter(adapterBitmap);
66

    
67
      SeekBar barB = findViewById(R.id.meshfileScale);
68
      barB.setOnSeekBarChangeListener(this);
69
      barB.setProgress(50);
70
      }
71

    
72
///////////////////////////////////////////////////////////////////////////////////////////////////
73
    
74
    @Override
75
    protected void onPause() 
76
      {
77
      super.onPause();
78
      GLSurfaceView view = findViewById(R.id.meshfileSurfaceView);
79
      view.onPause();
80
      DistortedLibrary.onPause();
81
      }
82

    
83
///////////////////////////////////////////////////////////////////////////////////////////////////
84
    
85
    @Override
86
    protected void onResume() 
87
      {
88
      super.onResume();
89
      GLSurfaceView view = findViewById(R.id.meshfileSurfaceView);
90
      view.onResume();
91

    
92
      if( mResource!=0 ) Open(null);
93
      }
94
    
95
///////////////////////////////////////////////////////////////////////////////////////////////////
96
    
97
    @Override
98
    protected void onDestroy() 
99
      {
100
      DistortedLibrary.onDestroy();
101
      super.onDestroy();
102
      }
103

    
104
///////////////////////////////////////////////////////////////////////////////////////////////////
105

    
106
    public void Open(View v)
107
      {
108
      MeshFileSurfaceView view = findViewById(R.id.meshfileSurfaceView);
109
      MeshFileRenderer renderer = view.getRenderer();
110

    
111
      renderer.open(mResource);
112

    
113
      int bytes    = renderer.getBytes();
114
      int vertices = renderer.getVertices();
115
      long time    = renderer.getTime();
116

    
117
      TextView byt = findViewById(R.id.meshfileSize);
118
      TextView ver = findViewById(R.id.meshfileVertices);
119
      TextView tim = findViewById(R.id.meshfileTime);
120

    
121
      byt.setText( String.format("%d", bytes   ) );
122
      ver.setText( String.format("%d", vertices) );
123
      tim.setText( String.format("%d", time    ) );
124
      }
125

    
126
///////////////////////////////////////////////////////////////////////////////////////////////////
127

    
128
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
129
      {
130
      if( parent.getId()==R.id.meshfileSpinner )
131
        {
132
        switch(pos)
133
          {
134
          case  0: mResource = R.raw.deferredjob; break;
135
          case  1: mResource = R.raw.meshjoin   ; break;
136
          case  2: mResource = R.raw.predeform  ; break;
137
          case  3: mResource = R.raw.cube2      ; break;
138
          case  4: mResource = R.raw.cube3      ; break;
139
          case  5: mResource = R.raw.cube4      ; break;
140
          case  6: mResource = R.raw.cube5      ; break;
141
          case  7: mResource = R.raw.pyra3      ; break;
142
          case  8: mResource = R.raw.pyra4      ; break;
143
          case  9: mResource = R.raw.pyra5      ; break;
144
          }
145
        }
146
      }
147

    
148
///////////////////////////////////////////////////////////////////////////////////////////////////
149

    
150
    public void onNothingSelected(AdapterView<?> parent)
151
      {
152
      }
153

    
154
///////////////////////////////////////////////////////////////////////////////////////////////////
155

    
156
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
157
      {
158
      if( bar.getId() == R.id.meshfileScale )
159
        {
160
        MeshFileSurfaceView view = findViewById(R.id.meshfileSurfaceView);
161
        view.getRenderer().setScale(progress);
162
        }
163
      }
164

    
165
///////////////////////////////////////////////////////////////////////////////////////////////////
166

    
167
    public void onStartTrackingTouch(SeekBar bar) { }
168

    
169
///////////////////////////////////////////////////////////////////////////////////////////////////
170

    
171
    public void onStopTrackingTouch(SeekBar bar)  { }
172

    
173
}
(1-1/3)