マウス操作を検出

Java_practice内でlwjglの機能を利用してマウス操作を検出
メソッドの整理

JohnnyModelクラスのメソッドを並び替えるなど
右ドラッグを伝達

Modelに右ドラッグの操作をカメラ移動として伝達し、
さらにCameraBodyに伝達して視点回転
セレクション描画

とりあえずセレクション描画を行う状態にした
セレクションクラス

セレクション描画の機能をクラス化した
Selectionクラスにカメラとピックする座標を伝えることで、
ピック処理が行われ、バッファから読みだした内容がコンソールに出る
コメント修正

コメントのちょっとした修正
ビューポート変更タイミングの修正

カメラ切替時、ビューポート切り替えフラグを立てるのでなく、
その場でビューポートの再設定が行われるようにした
カメラが切り替えてあれば、セレクション描画を先に行ったときに
ビューポートの取得がおかしくなるのを防げるようにする目的
セレクションバッファの内容取得

セレクションバッファの内容を、そのままコンソールに垂れ流すのではなく
整形された形で取り出せるように変更
Resultのソート

Resultインスタンスが手前にあるものから順に並ぶように修正
カメラ位置取得

Selectionからカメラの座標を取得できるように機能追加
reflectToGL()の廃止

メインカメラに設定されると同時に
ビューポート、プロジェクション、モデルビュー行列の設定をしておき、
変更時もその場で反映するように修正
コメント修正

前のコミットでし忘れたコメントの修正
セレクション用カメラ設定をCameraクラスへ

Cameraクラスにセレクションモード・通常モードの切り替え機能を付け、
SelectionクラスではなくCameraクラスでカメラ設定を行うようにした
不要なメソッドの削除

Selectionからカメラ設定のために呼び出していたCameraのメソッドを削除
Camera修正

reflectToGL()の廃止で、ビューポート等の変更がその場で反映されるようにした際、
必要な再設定が全て行われていなかったので修正
reflectToGL()の代わりになる機能追加

変更がその場で反映されるようにしたため、
複数のカメラがある場合に干渉するようになったはず
このため、メインカメラがどれなのかをクラス変数を利用して記憶し、
自分がメインカメラの時だけ反映するように変更するなど
SelectionをCameraに持たせる

CameraがSelectionをクラス変数として持ち、
カメラの設定とセレクションバッファの管理をまとめて行うようにした
セレクション描画呼び出しの変更

Windowから呼び出していたが、Java_practiceが呼び出すように変更
Cameraのセレクション関連メソッド改名

対で使うことが分かりやすいように、
pickDrawBegin()とpickDrawEnd()に改名
[draw/pickDraw][Begin/End]関数を用意

ピックだけでなく、通常の描画も準備はカメラに任せるようにした