Project

General

Profile

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

examples / src / main / java / org / distorted / examples / earth / EarthActivity.java @ c0f27889

1 64558e4e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4 71c8884f Leszek Koltunski
// This file is part of Distorted.                                                               //
5 64558e4e Leszek Koltunski
//                                                                                               //
6 71c8884f Leszek Koltunski
// Distorted is free software: you can redistribute it and/or modify                             //
7 64558e4e Leszek Koltunski
// 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 71c8884f Leszek Koltunski
// Distorted is distributed in the hope that it will be useful,                                  //
12 64558e4e Leszek Koltunski
// 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 71c8884f Leszek Koltunski
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18 64558e4e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
19
20
package org.distorted.examples.earth;
21
22
import android.app.Activity;
23 9814e53c Leszek Koltunski
import android.opengl.GLSurfaceView;
24 64558e4e Leszek Koltunski
import android.os.Bundle;
25 296d2e73 Leszek Koltunski
import android.view.View;
26
import android.widget.AdapterView;
27
import android.widget.ArrayAdapter;
28 9814e53c Leszek Koltunski
import android.widget.SeekBar;
29 296d2e73 Leszek Koltunski
import android.widget.Spinner;
30 64558e4e Leszek Koltunski
31
import org.distorted.examples.R;
32 296d2e73 Leszek Koltunski
import org.distorted.library.effect.EffectName;
33
import org.distorted.library.effect.EffectType;
34 e3900503 Leszek Koltunski
import org.distorted.library.main.DistortedLibrary;
35 64558e4e Leszek Koltunski
36
///////////////////////////////////////////////////////////////////////////////////////////////////
37
38 296d2e73 Leszek Koltunski
public class EarthActivity extends Activity implements SeekBar.OnSeekBarChangeListener, AdapterView.OnItemSelectedListener
39 9814e53c Leszek Koltunski
{
40 296d2e73 Leszek Koltunski
    private EffectName[] mEffectNames;
41 64558e4e Leszek Koltunski
42 2666a48c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
43
44
    @Override
45
    protected void onCreate(Bundle savedState)
46
      {
47
      super.onCreate(savedState);
48
49
      setContentView(R.layout.earthlayout);
50
51
      SeekBar levelBar = findViewById(R.id.earthInflateLevel);
52
      levelBar.setOnSeekBarChangeListener(this);
53
      levelBar.setProgress(50);
54
55
      Spinner renderSpinner  = findViewById(R.id.earthSpinnerEffect);
56
      renderSpinner.setOnItemSelectedListener(this);
57
58
      ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, createEffectNames() );
59
      adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
60
      renderSpinner.setAdapter(adapterBitmap);
61
      }
62
63 64558e4e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
64 296d2e73 Leszek Koltunski
65 9814e53c Leszek Koltunski
    @Override
66
    protected void onPause() 
67 64558e4e Leszek Koltunski
      {
68 c0f27889 Leszek Koltunski
      super.onPause();
69
70
      GLSurfaceView view = findViewById(R.id.earthSurfaceView);
71
      view.onPause();
72 296d2e73 Leszek Koltunski
73 c0f27889 Leszek Koltunski
      EarthSurfaceViewPicker pick = findViewById(R.id.earthSurfaceViewPicker);
74
      pick.onPause();
75 64558e4e Leszek Koltunski
76 e3900503 Leszek Koltunski
      DistortedLibrary.onPause();
77 64558e4e Leszek Koltunski
      }
78
79
///////////////////////////////////////////////////////////////////////////////////////////////////
80 9814e53c Leszek Koltunski
    
81
    @Override
82
    protected void onResume() 
83 64558e4e Leszek Koltunski
      {
84 9814e53c Leszek Koltunski
      super.onResume();
85
      
86 c0f27889 Leszek Koltunski
      GLSurfaceView view = findViewById(R.id.earthSurfaceView);
87
      view.onResume();
88 296d2e73 Leszek Koltunski
89 c0f27889 Leszek Koltunski
      EarthSurfaceViewPicker pick = findViewById(R.id.earthSurfaceViewPicker);
90
      pick.onResume();
91 64558e4e Leszek Koltunski
      }
92 9814e53c Leszek Koltunski
    
93 64558e4e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
94 9814e53c Leszek Koltunski
    
95
    @Override
96
    protected void onDestroy() 
97 64558e4e Leszek Koltunski
      {
98 e3900503 Leszek Koltunski
      DistortedLibrary.onDestroy();
99 9814e53c Leszek Koltunski
      super.onDestroy();
100 64558e4e Leszek Koltunski
      }
101 296d2e73 Leszek Koltunski
102
///////////////////////////////////////////////////////////////////////////////////////////////////
103
104
    @Override
105
    public void onSaveInstanceState(Bundle savedInstanceState)
106
      {
107
      super.onSaveInstanceState(savedInstanceState);
108
109 c0f27889 Leszek Koltunski
      EarthSurfaceViewPicker pick = findViewById(R.id.earthSurfaceViewPicker);
110 296d2e73 Leszek Koltunski
      pick.save(savedInstanceState);
111
      }
112
113
///////////////////////////////////////////////////////////////////////////////////////////////////
114
115
    @Override
116
    public void onRestoreInstanceState(Bundle savedInstanceState)
117
      {
118
      super.onRestoreInstanceState(savedInstanceState);
119
120 c0f27889 Leszek Koltunski
      EarthSurfaceViewPicker pick = findViewById(R.id.earthSurfaceViewPicker);
121 296d2e73 Leszek Koltunski
      pick.restore(savedInstanceState);
122 64558e4e Leszek Koltunski
      }
123
124
///////////////////////////////////////////////////////////////////////////////////////////////////
125
126 9814e53c Leszek Koltunski
    public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
127 64558e4e Leszek Koltunski
      {
128 c0f27889 Leszek Koltunski
      if (bar.getId() == R.id.earthInflateLevel )
129 9814e53c Leszek Koltunski
        {
130 c0f27889 Leszek Koltunski
        EarthSurfaceView view = findViewById(R.id.earthSurfaceView);
131
        view.getRenderer().setLevel(progress);
132 9814e53c Leszek Koltunski
        }
133 64558e4e Leszek Koltunski
      }
134
135
///////////////////////////////////////////////////////////////////////////////////////////////////
136
137 296d2e73 Leszek Koltunski
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
138 9814e53c Leszek Koltunski
      {
139 c0f27889 Leszek Koltunski
      EarthSurfaceViewPicker mPick = findViewById(R.id.earthSurfaceViewPicker);
140 296d2e73 Leszek Koltunski
      mPick.setEffectMode(mEffectNames[pos]);
141 9814e53c Leszek Koltunski
      }
142 64558e4e Leszek Koltunski
143 296d2e73 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
144
145
    public void Remove(View v)
146 9814e53c Leszek Koltunski
      {
147 c0f27889 Leszek Koltunski
      EarthSurfaceViewPicker mPick = findViewById(R.id.earthSurfaceViewPicker);
148 296d2e73 Leszek Koltunski
      mPick.clearPoints();
149
150 c0f27889 Leszek Koltunski
      EarthSurfaceView view = findViewById(R.id.earthSurfaceView);
151 296d2e73 Leszek Koltunski
      EarthRenderer renderer = view.getRenderer();
152
153
      renderer.removeAll();
154
      }
155
156
///////////////////////////////////////////////////////////////////////////////////////////////////
157
158 1585ba24 Leszek Koltunski
    void addNewPoint(float longitude, float latitude, EffectName effect)
159 296d2e73 Leszek Koltunski
      {
160
      EarthSurfaceView view = this.findViewById(R.id.earthSurfaceView);
161
      EarthRenderer renderer = view.getRenderer();
162
163 1585ba24 Leszek Koltunski
      renderer.addNewPoint(longitude,latitude,effect);
164 296d2e73 Leszek Koltunski
      }
165
166
///////////////////////////////////////////////////////////////////////////////////////////////////
167
168
    private String[] createEffectNames()
169
      {
170
      EffectType type;
171
      EffectName[] names = EffectName.values();
172
173
      int numEffects=0;
174
175 9df01f21 Leszek Koltunski
      for (EffectName effectName : names)
176 296d2e73 Leszek Koltunski
        {
177 9df01f21 Leszek Koltunski
        type = effectName.getType();
178 296d2e73 Leszek Koltunski
        if (type == EffectType.FRAGMENT || type == EffectType.VERTEX) numEffects++;
179
        }
180
181
      mEffectNames = new EffectName[numEffects];
182
      String[] effectStrings = new String[numEffects];
183
184
      numEffects=0;
185
186 9df01f21 Leszek Koltunski
      for (EffectName name : names)
187 296d2e73 Leszek Koltunski
        {
188 9df01f21 Leszek Koltunski
        type = name.getType();
189 296d2e73 Leszek Koltunski
190
        if (type == EffectType.FRAGMENT || type == EffectType.VERTEX)
191
          {
192 9df01f21 Leszek Koltunski
          mEffectNames[numEffects] = name;
193
          effectStrings[numEffects] = name.name();
194 296d2e73 Leszek Koltunski
195
          numEffects++;
196
          }
197
        }
198
199
      return effectStrings;
200 9814e53c Leszek Koltunski
      }
201 2666a48c Leszek Koltunski
202
///////////////////////////////////////////////////////////////////////////////////////////////////
203
204
    public void onStartTrackingTouch(SeekBar bar) { }
205
    public void onStopTrackingTouch(SeekBar bar)  { }
206
    public void onNothingSelected(AdapterView<?> parent) { }
207 9814e53c Leszek Koltunski
}