#121 PlayerGameObject他若干修正
#121 ModelData他修正

NullPointerExceptionが出ています。
#121 ModelData他修正

エラーは出なくなりました。
#121 ModelData修正

ログ出力を追加
#121 ModelData更新
#121 ModelData修正
fix #153 #154 Camera, MainRenderer修正
#121 #153 #154 #155 #156 色々修正
#121　修正
2日14時11分までの更新
2日15時22分までの更新
2日16時11分までの更新
描画不能問題に対する試験状況1

状況
MainRenderer.onDrawFrame内、
    //_main_view.scene_manager.update( delta_time_in_ns );
    //_main_view.scene_manager.draw();
以上2行をコメントアウトし、前述の試験用三角ポリゴン1枚描画コードを挿入して最小限の描画試験を行う。
この際、頂点シェーダーコードから position の変形行列の処理をコメントアウトし、デバイス座標系に直接positionを描画するコードに一時的に修正。
また、簡易にレンダリング結果を確認するためにフラグメントシェーダーコード末尾にて glFragColor を赤色不透明で出力するように修正。

結果、不良。

原因、
   GLES20.glEnableVertexAttribArray( GLES20.glGetAttribLocation( program, "position" ) );
UseProgram以後に頂点バッファーを渡す前に必要な処理が欠落。

対応、MainRenderer.onSurfaceCreated、UseProgram直後に原因にて指摘のコードを挿入。
描画不能問題に対する試験状況2

状況
MainRenderer.onDrawFrame内での、 _main_view.scene_manager.update と draw のコメントアウトを解除し、少なくとも SceneManager.draw では描画可能である事を、 SceneManager.drawに描画テストコードを移して確認する。この際、SceneManager.drawからScene.drawは呼び出さないようにコメントアウトした。

結果、不良。

原因と対処
1. さしあたり理由は解明していないが、 SceneManager.update またはそれによる TestScene の生成を行うと描画されない。
2. 1.の対処として仮に SceneManager.update 内部を完全にコメントアウトし、 TestSceneの生成はctorで行うようにしたが、 MainView の ctor で SceneManager が GLES20 のコンテキスト初期化コード及び MainRenderer の生成よりも先に行われており、これでは SceneManager のctorで TestScene を生成する際に、TestSceneがGLES20の機能を使えずにSEGVで落ちる。
3. 2.のMainViewのctorでの初期化順序を変更し、SceneManagerはGLES20のコンテキスト及びMainRendererの生成よりも後にした。

結果
SceneManager.drawに移設した描画テストコードは成功し、赤い三角ポリゴンが1枚描画された。
描画不能問題に対する試験状況3

状況
SceneManager.drawの描画試験コードを除去し、 _scenes.peek().draw() をコールするように設定。

結果
_scenes.peek() により SceneManager の update にかわりのctorで生成している TestScene オブジェクトが取り出され、 TestScene.draw が呼び出される。
TestScene は draw を override していないから基底型の Scene.draw が呼び出される。
Scene.draw により TestScene が現在唯一含む PlayerGameObject オブジェクトの .draw が呼び出される。
PlayerGameObject.draw はoverrideされていないから基底型のRigitBodyGameObject.drawが呼び出されるが、これもoverrideされていないからGameObject.drawが呼び出される。
GameObject.drawからModelData.drawが呼び出され、そこに記述された描画試験コードにより赤い三角ポリゴンが描画された。

蛇足
1. TestSceneでのPlayerGameObjectのインスタンスを保持する変数名がobjectというのは意味がわかりにくい。 player に変更した。また、.modelや.positionの初期値の定義必要性についてはGameObjectで初期値を与える実装に変更した。今後Player専用のモデルデータをロードできる状況になればPlayerGameObjectのctorでそのデータをロードするようにすればよい。
2. ModelDataの生成系に意味のわからないパラメーターが追加されたいたので全て消した。（ModelDataはTestSceneに依存する設計ではない）
3. make_float_VBOとmake_byte_VBOについてRunnableのラッピングをコメントアウトし、直接コールに変更した。これらは現在ModelDataのctorで呼び出され、ModelDataのｃｔｏｒが呼び出されるタイミングは、全体のコード初期化でSceneの生成時か、あるいはMainRenderer.onDrawFrameからSceneManager.updateが呼ばれ、シーンが生成された場合のみで、つまりこのタイミングではRunnableラッパーによるキューイング実行は不要と思われる。
描画不能問題に対する試験状況4

状況
ModelData.draw 内部の調整

コメントアウトされた本来の描画コードに対して、それらは基本的にコメントアウトのままとしつつ、描画試験コードをその中で適当な場所へと潜り込ませ、diffuseやtransparentを有効に使用可能にした。
また、将来テクスチャーを使用する際のために必要になる一部ヒント、サンプルコード埋め込んだ。（但しコメントアウト状態として。またテクスチャーを使うためには他にもテクスチャーのロードと転送とモード設定が必要。）

結果
試しに緑のdiffuseと完全な不透明を明示的に与えたところ良好に適用されたポリゴンの描画を確認した。
描画不能問題に対する試験状況5

状況
描画試験コードを廃し、Model.drawで本来期待される頂点バッファー、インデックスバッファーによる描画試験を行う。

調整の結果、描画内容に問題はあるものの、コードパス、GPU設定等について、描画自体は問題無く行える状況を確認。
（妙な描画結果が得られるのは、頂点定義かインデックス定義がDraw命令か、ワールド変換行列かビュー変換行列かプロジェクション変換行列がおかしいのだろう。その調整は学生諸君に任せたい。）
refactoring and reformat.
#121 15:03まで

とりあえず四角形で表示はされるようになりました。
Merge remote-tracking branch 'origin/#104SceneCamera作成' into #121-a-Runnable

Conflicts:
	app/src/main/java/com/example/rollingball/app/PlayerGameObject.java