Project

General

Profile

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

examples / src / main / java / org / distorted / examples / olimpic / OlimpicActivity.java @ 77e66c58

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.olimpic;
21

    
22
import org.distorted.examples.R;
23
import org.distorted.library.main.DistortedLibrary;
24

    
25
import android.app.Activity;
26
import android.opengl.GLSurfaceView;
27
import android.os.Bundle;
28
import android.view.View;
29
import android.widget.CheckBox;
30
import android.widget.TextView;
31

    
32
///////////////////////////////////////////////////////////////////////////////////////////////////
33

    
34
public class OlimpicActivity extends Activity 
35
{
36
    private TextView mText;
37
    private boolean[] mBlue, mBlack, mRed, mYellow, mGreen;
38

    
39
///////////////////////////////////////////////////////////////////////////////////////////////////
40

    
41
    @Override
42
    protected void onCreate(Bundle savedState)
43
      {
44
      super.onCreate(savedState);
45
      DistortedLibrary.onCreate();
46
      setContentView(R.layout.olimpiclayout);
47
      mText = findViewById(R.id.olimpicText);
48

    
49
      int num = OlimpicRenderer.NUM_LEAVES+1;
50

    
51
      mBlue   = new boolean[num];
52
      mBlack  = new boolean[num];
53
      mRed    = new boolean[num];
54
      mYellow = new boolean[num];
55
      mGreen  = new boolean[num];
56

    
57
      if( savedState==null )
58
        {
59
        for (int i = 0; i < num; i++)
60
          {
61
          mBlue[i]   = true;
62
          mBlack[i]  = true;
63
          mRed[i]    = true;
64
          mYellow[i] = true;
65
          mGreen[i]  = true;
66
          }
67
        }
68
      }
69

    
70
///////////////////////////////////////////////////////////////////////////////////////////////////
71

    
72
    void setText(String text)
73
      {
74
      mText.setText(text);
75
      }
76

    
77
///////////////////////////////////////////////////////////////////////////////////////////////////
78

    
79
    public void onClick(View view)
80
      {
81
      CheckBox box = (CheckBox)view;
82
      int id = box.getId();
83
      boolean checked = box.isChecked();
84
      OlimpicSurfaceView v = findViewById(R.id.olimpicSurfaceView);
85
      OlimpicRenderer r = v.getRenderer();
86

    
87
      if( id == R.id.olimpicCheckBoxBlue0  ) r.pressed(0,0,checked); mBlue[0]  =checked;
88
      if( id == R.id.olimpicCheckBoxBlue1  ) r.pressed(0,1,checked); mBlue[1]  =checked;
89
      if( id == R.id.olimpicCheckBoxBlue2  ) r.pressed(0,2,checked); mBlue[2]  =checked;
90
      if( id == R.id.olimpicCheckBoxBlue3  ) r.pressed(0,3,checked); mBlue[3]  =checked;
91
      if( id == R.id.olimpicCheckBoxBlue4  ) r.pressed(0,4,checked); mBlue[4]  =checked;
92
      if( id == R.id.olimpicCheckBoxBlue5  ) r.pressed(0,5,checked); mBlue[5]  =checked;
93
      if( id == R.id.olimpicCheckBoxBlue6  ) r.pressed(0,6,checked); mBlue[6]  =checked;
94
      if( id == R.id.olimpicCheckBoxBlue7  ) r.pressed(0,7,checked); mBlue[7]  =checked;
95
      if( id == R.id.olimpicCheckBoxBlue8  ) r.pressed(0,8,checked); mBlue[8]  =checked;
96

    
97
      if( id == R.id.olimpicCheckBoxBlack0 ) r.pressed(1,0,checked); mBlack[0] =checked;
98
      if( id == R.id.olimpicCheckBoxBlack1 ) r.pressed(1,1,checked); mBlack[1] =checked;
99
      if( id == R.id.olimpicCheckBoxBlack2 ) r.pressed(1,2,checked); mBlack[2] =checked;
100
      if( id == R.id.olimpicCheckBoxBlack3 ) r.pressed(1,3,checked); mBlack[3] =checked;
101
      if( id == R.id.olimpicCheckBoxBlack4 ) r.pressed(1,4,checked); mBlack[4] =checked;
102
      if( id == R.id.olimpicCheckBoxBlack5 ) r.pressed(1,5,checked); mBlack[5] =checked;
103
      if( id == R.id.olimpicCheckBoxBlack6 ) r.pressed(1,6,checked); mBlack[6] =checked;
104
      if( id == R.id.olimpicCheckBoxBlack7 ) r.pressed(1,7,checked); mBlack[7] =checked;
105
      if( id == R.id.olimpicCheckBoxBlack8 ) r.pressed(1,8,checked); mBlack[8] =checked;
106

    
107
      if( id == R.id.olimpicCheckBoxRed0   ) r.pressed(2,0,checked); mRed[0]   =checked;
108
      if( id == R.id.olimpicCheckBoxRed1   ) r.pressed(2,1,checked); mRed[1]   =checked;
109
      if( id == R.id.olimpicCheckBoxRed2   ) r.pressed(2,2,checked); mRed[2]   =checked;
110
      if( id == R.id.olimpicCheckBoxRed3   ) r.pressed(2,3,checked); mRed[3]   =checked;
111
      if( id == R.id.olimpicCheckBoxRed4   ) r.pressed(2,4,checked); mRed[4]   =checked;
112
      if( id == R.id.olimpicCheckBoxRed5   ) r.pressed(2,5,checked); mRed[5]   =checked;
113
      if( id == R.id.olimpicCheckBoxRed6   ) r.pressed(2,6,checked); mRed[6]   =checked;
114
      if( id == R.id.olimpicCheckBoxRed7   ) r.pressed(2,7,checked); mRed[7]   =checked;
115
      if( id == R.id.olimpicCheckBoxRed8   ) r.pressed(2,8,checked); mRed[8]   =checked;
116

    
117
      if( id == R.id.olimpicCheckBoxYellow0) r.pressed(3,0,checked); mYellow[0]=checked;
118
      if( id == R.id.olimpicCheckBoxYellow1) r.pressed(3,1,checked); mYellow[1]=checked;
119
      if( id == R.id.olimpicCheckBoxYellow2) r.pressed(3,2,checked); mYellow[2]=checked;
120
      if( id == R.id.olimpicCheckBoxYellow3) r.pressed(3,3,checked); mYellow[3]=checked;
121
      if( id == R.id.olimpicCheckBoxYellow4) r.pressed(3,4,checked); mYellow[4]=checked;
122
      if( id == R.id.olimpicCheckBoxYellow5) r.pressed(3,5,checked); mYellow[5]=checked;
123
      if( id == R.id.olimpicCheckBoxYellow6) r.pressed(3,6,checked); mYellow[6]=checked;
124
      if( id == R.id.olimpicCheckBoxYellow7) r.pressed(3,7,checked); mYellow[7]=checked;
125
      if( id == R.id.olimpicCheckBoxYellow8) r.pressed(3,8,checked); mYellow[8]=checked;
126

    
127
      if( id == R.id.olimpicCheckBoxGreen0 ) r.pressed(4,0,checked); mGreen[0] =checked;
128
      if( id == R.id.olimpicCheckBoxGreen1 ) r.pressed(4,1,checked); mGreen[1] =checked;
129
      if( id == R.id.olimpicCheckBoxGreen2 ) r.pressed(4,2,checked); mGreen[2] =checked;
130
      if( id == R.id.olimpicCheckBoxGreen3 ) r.pressed(4,3,checked); mGreen[3] =checked;
131
      if( id == R.id.olimpicCheckBoxGreen4 ) r.pressed(4,4,checked); mGreen[4] =checked;
132
      if( id == R.id.olimpicCheckBoxGreen5 ) r.pressed(4,5,checked); mGreen[5] =checked;
133
      if( id == R.id.olimpicCheckBoxGreen6 ) r.pressed(4,6,checked); mGreen[6] =checked;
134
      if( id == R.id.olimpicCheckBoxGreen7 ) r.pressed(4,7,checked); mGreen[7] =checked;
135
      if( id == R.id.olimpicCheckBoxGreen8 ) r.pressed(4,8,checked); mGreen[8] =checked;
136
      }
137

    
138
///////////////////////////////////////////////////////////////////////////////////////////////////
139
    
140
    @Override
141
    protected void onPause() 
142
      {
143
      super.onPause();
144
      GLSurfaceView view = findViewById(R.id.olimpicSurfaceView);
145
      view.onPause();
146
      DistortedLibrary.onPause();
147
      }
148

    
149
///////////////////////////////////////////////////////////////////////////////////////////////////
150
    
151
    @Override
152
    protected void onResume() 
153
      {
154
      super.onResume();
155
      GLSurfaceView view = findViewById(R.id.olimpicSurfaceView);
156
      view.onResume();
157
      }
158
 
159
///////////////////////////////////////////////////////////////////////////////////////////////////
160
    
161
    @Override
162
    protected void onDestroy() 
163
      {
164
      DistortedLibrary.onDestroy();
165
      super.onDestroy();
166
      }
167

    
168
///////////////////////////////////////////////////////////////////////////////////////////////////
169

    
170
    @Override
171
    public void onSaveInstanceState(Bundle savedInstanceState)
172
      {
173
      super.onSaveInstanceState(savedInstanceState);
174

    
175
      savedInstanceState.putBooleanArray("blue"  , mBlue  );
176
      savedInstanceState.putBooleanArray("black" , mBlack );
177
      savedInstanceState.putBooleanArray("red"   , mRed   );
178
      savedInstanceState.putBooleanArray("yellow", mYellow);
179
      savedInstanceState.putBooleanArray("green" , mGreen );
180
      }
181

    
182
///////////////////////////////////////////////////////////////////////////////////////////////////
183

    
184
    @Override
185
    public void onRestoreInstanceState(Bundle savedInstanceState)
186
      {
187
      super.onRestoreInstanceState(savedInstanceState);
188

    
189
      mBlue   = savedInstanceState.getBooleanArray("blue"  );
190
      mBlack  = savedInstanceState.getBooleanArray("black" );
191
      mRed    = savedInstanceState.getBooleanArray("red"   );
192
      mYellow = savedInstanceState.getBooleanArray("yellow");
193
      mGreen  = savedInstanceState.getBooleanArray("green" );
194

    
195
      OlimpicSurfaceView view = findViewById(R.id.olimpicSurfaceView);
196
      OlimpicRenderer renderer = view.getRenderer();
197

    
198
      int num = OlimpicRenderer.NUM_LEAVES + 1;
199

    
200
      for(int i=0; i<num; i++)
201
        {
202
        if( !mBlue[i]   ) renderer.pressed(0, i, false );
203
        if( !mBlack[i]  ) renderer.pressed(1, i, false );
204
        if( !mRed[i]    ) renderer.pressed(2, i, false );
205
        if( !mYellow[i] ) renderer.pressed(3, i, false );
206
        if( !mGreen[i]  ) renderer.pressed(4, i, false );
207
        }
208
      }
209

    
210
}
(1-1/3)