下のコードの3Dオブジェクト一つ一つにタッチイベントをつけたいのですがどうしたらいいですか?
lang
1package example.android.taiyoukei; 2import javax.microedition.khronos.egl.EGLConfig; 3import javax.microedition.khronos.opengles.GL10; 4 5import net.npaka.gles.GLES; 6import net.npaka.gles.ObjLoader; 7import net.npaka.gles.Object3D; 8import android.annotation.SuppressLint; 9import android.content.Context; 10import android.opengl.GLES20; 11import android.opengl.GLSurfaceView; 12import android.opengl.Matrix; 13import android.view.MotionEvent; 14import android.view.View; 15import android.view.View.OnTouchListener; 16 17//レンダラー 18@SuppressLint("ClickableViewAccessibility") 19public class GLRenderer implements 20 GLSurfaceView.Renderer, OnTouchListener { 21 //システム 22 private float aspect;//アスペクト比 23 private int angle; //回転角度 24 //システム 25 26 //モデル 27 private Object3D background=new Object3D();//背景用 28 private Object3D model=new Object3D();//(3)-[1] 29 private Object3D model01=new Object3D(); 30 private Object3D model02=new Object3D(); 31 private Object3D model03=new Object3D(); 32 private Object3D model04=new Object3D(); 33 private Object3D model05=new Object3D(); 34 private Object3D model06=new Object3D(); 35 private Object3D model07=new Object3D(); 36 private Object3D model08=new Object3D(); 37 38 39 //コンストラクタ 40 public GLRenderer(Context context) { 41 GLES.context=context;//(A) 42 43 } 44 //サーフェイス生成時に呼ばれる 45 @Override 46 public void onSurfaceCreated(GL10 gl10,EGLConfig eglConfig) { 47 //プログラムの生成 48 GLES.makeProgram();//(A) 49 50 //デプステストと光源の有効化 51 GLES20.glEnable(GLES20.GL_DEPTH_TEST); 52 GLES20.glUniform1i(GLES.useLightHandle,1); 53 54 //光源色の指定 55 GLES20.glUniform4f(GLES.lightAmbientHandle,0.2f,0.2f,0.2f,1.0f); 56 GLES20.glUniform4f(GLES.lightDiffuseHandle,0.7f,0.7f,0.7f,1.0f); 57 GLES20.glUniform4f(GLES.lightSpecularHandle,0.9f,0.9f,0.9f,1.0f); 58 59 //モデルデータの読み込み(2) 60 try { 61 background.figure=ObjLoader.load("back.obj"); 62 model.position.set(0.0f,0.0f,0.0f); 63 model.figure=ObjLoader.load("taiyou.obj");//(3)-[2] 64 model.position.set(0.0f,0.0f,0.0f); 65 model01.figure=ObjLoader.load("suisei.obj"); 66 model01.position.set(0.0f,0.0f,0.0f); 67 model02.figure=ObjLoader.load("kinsei.obj"); 68 model02.position.set(0.0f,0.0f,0.0f); 69 model03.figure=ObjLoader.load("tikyu.obj"); 70 model03.position.set(0.0f,0.0f,0.0f); 71 model04.figure=ObjLoader.load("kasei.obj"); 72 model04.position.set(0.0f,0.0f,0.0f); 73 model05.figure=ObjLoader.load("mokusei.obj"); 74 model05.position.set(0.0f,0.0f,0.0f); 75 model06.figure=ObjLoader.load("dosei.obj"); 76 model06.position.set(0.0f,0.0f,0.0f); 77 model07.figure=ObjLoader.load("tenousei.obj"); 78 model07.position.set(0.0f,0.0f,0.0f); 79 model08.figure=ObjLoader.load("kaiousei.obj"); 80 model08.position.set(0.0f,0.0f,0.0f); 81 } catch (Exception e) { 82 android.util.Log.e("debug",e.toString()); 83 for (StackTraceElement ste:e.getStackTrace()) { 84 android.util.Log.e("debug"," "+ste); 85 } 86 } 87 } 88 89 //画面サイズ変更時に呼ばれる 90 @Override 91 public void onSurfaceChanged(GL10 gl10,int w,int h) { 92 //ビューポート変換 93 GLES20.glViewport(0,0,w,h); 94 aspect=(float)w/(float)h; 95 } 96 97 //毎フレーム描画時に呼ばれる 98 @Override 99 public void onDrawFrame(GL10 gl10) { 100 //画面のクリア 101 GLES20.glClearColor(1.0f,1.0f,1.0f,1.0f); 102 GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT| 103 GLES20.GL_DEPTH_BUFFER_BIT); 104 105 //射影変換 106 Matrix.setIdentityM(GLES.pMatrix,0); 107 GLES.gluPerspective(GLES.pMatrix, 108 45.0f, //Y方向の画角 109 aspect, //アスペクト比 110 0.01f, //ニアクリップ 111 10000.0f);//ファークリップ 112 113 //光源位置の指定 114 GLES20.glUniform4f(GLES.lightPosHandle,5.0f,5.0f,5.0f,1.0f); 115 116 //ビュー変換 117 Matrix.setIdentityM(GLES.mMatrix,0); 118 GLES.gluLookAt(GLES.mMatrix, 119 0.0f,0.0f,55.0f, //カメラの視点 120 0.0f,0.8f,0.0f, //カメラの焦点 121 0.0f,1.0f,0.0f);//カメラの上方向 122 123 //モデル変換 124 background.rotate.set(0,100,0); 125 model.rotate.set(0,0,(angle++)/2);//(3)-[3] 126 model01.rotate.set(0,100,(angle++)/6); 127 model02.rotate.set(0,100,(angle++)/8); 128 model03.rotate.set(0,100,(angle++)/11); 129 model04.rotate.set(0,100,(angle++)/13); 130 model05.rotate.set(0,100,(angle++)/16); 131 model06.rotate.set(0,100,(angle++)/19); 132 model07.rotate.set(0,100,(angle++)/22); 133 model08.rotate.set(0,100,(angle++)/27); 134 135 //モデルの描画 136 background.draw(); 137 model.draw();//(3)-[4] 138 model01.draw(); 139 model02.draw(); 140 model03.draw(); 141 model04.draw(); 142 model05.draw(); 143 model06.draw(); 144 model07.draw(); 145 model08.draw(); 146 147 } 148 149 @Override 150public boolean onTouch(View v, MotionEvent event) { 151 152 switch ( event.getAction() ) { 153 //タッチ 154 case MotionEvent.ACTION_DOWN: 155 156 157 if(0 <= (float)event.getX() && 158 0 <= (float)event.getY()){ 159 160 161 162 } 163 164 break; 165 166 case MotionEvent.ACTION_UP: 167 break; 168 default: 169 break; 170 } 171 // TODO Auto-generated method stub 172 return true; 173 } 174 175}

下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。