scalaの練習にlwjglでプログラム中
scalaの練習用に去年途中で放棄したのを発掘して、ぼちぼちプログラム中。
なるべくscalaのいろんな機能を使ってみる方向でコーディングしているのだが、traitでシーングラフを構築するのがなかなか面白い。
こんな感じ。
// view val view=new opengl.View(100) with opengl.Perspective with device.Resizable { override val fovy=30.0f; var aspectRatio=1.0f; override def aspect=aspectRatio; override val near=1.0f; override val far=5000.0f; override def resize(w:Int, h:Int){ if(h>0){ aspectRatio=w.toFloat/h.toFloat; } } }
newするときtraitを山盛りにして、クロージャのように抽象フィールドを投入するというやり口は柔軟性が高い。
設計的にいけているのかどうかはよくわからないのだが、とりえあずwithをいっぱいつけたい。
無名クラスの合成を濫用すると、後でキャストしてその型を使いたいときに困ることが判明w
今からまたスキニングを実装する。