
casmi - (2) サンプルプロジェクト
今回は、前エントリ(casmi - (1) インストール)の最後に書いたサンプルプロジェクトについて、もうちょっと詳しく書いてみます。
casmi, Mavenはインストール済という前提です。
まだの方は前エントリを参考にインストールしてください。
1. サンプルリポジトリのクローン
GitHubで公開されているcasmiのサンプルリポジトリをクローンします。
$ git clone https://github.com/casmi/casmi-examples.git
2. Eclipseにインポート
Eclipseを起動して、
[File] -> [Import...] -> [Maven] -> [Existing Maven Projects]
Root Directoryに、先ほどクローンした casmi-examplesディレクトリ を入れて[Finish]。
Mavenがきちんとセットアップされていれば、これだけでcasmiと依存ライブラリが自動的にダウンロードされます。
3. サンプルの内容
src/main/java以下にパッケージで分けられて大量のサンプルが置いてあり、それぞれ実行できます。これらのサンプルのソースを見ながら動かしてみれば、大体casmiの使い方が分かります。ここで、各サンプルコードが何のサンプルなのか、簡単にリストアップしてみます。
casmi
- CursorExample.java: カーソルを制御するサンプル。中央の円にカーソルを当てるとカーソルアイコンが変わる。
- FullScreenExample.java: フルスクリーンで表示するサンプル。
- KeyboardExample.java: メモ帳のような画面が表示され、キーボードでメッセージを書ける。エンターキーで改行も可。
- KeyboardSimpleExample.java:
- MouseExample.java: マウスの位置取得サンプル。三角形の1頂点がマウスに追従する。
- MouseWheelExample.java: マウスホイールを動かすと、四角形のオブジェクトが上下に動きます。
- RecordExample.java: 動画キャプチャのサンプル。
- ScreenshotExample.java: スクリーンショットのサンプル。
casmi.extension.coni
KinectやXtionといった流行りのレンジセンサを扱えるパッケージ。CONIはCasmi OpenNIの略。使うにはOpenNI/NITEのインストールと、JNIライブラリのパスを通す必要がある。
- HandControlExample.java: ハンドトラッキングを使って写真を切り替える。
- HandExample.java: ハンドトラッキングのサンプル。センサの前に立ち、手をプッシュ(突き出して→引く)か、ウェーブ(左右に振る)とトラッキングが開始される。
- IRExample.java: センサのIR画像を取得・表示するサンプル。
- RecorderExample.java:
- SimpleViewerExample.java: RGB画像と距離画像を取得・表示するシンプルなサンプル。クリックするとRGB画像と距離画像を切り替えられる。
- UserTrackerExample.java: ユーザトラッキングとスケルトントラッキングのサンプル。
casmi.extension.cpop
- CPopExample.java: casmiで右クリックのポップアップメニューを制御するサンプル。
casmi.extension.trackball
- TrackballExample.java: オブジェクトの直感的な回転操作を行うサンプル。
casmi.graphics
casmiの描画処理の基本サンプル群。casmiでは様々なエレメントを生成、追加することで簡単に描画できる。
- AlphaExample.java: オブジェクトの透過サンプル。
- ArcExample.java: 扇形オブジェクトの表示サンプル。
- BackGroundColorExample.java: 背景をデフォルト(黒色)以外の色に変更するサンプル。
- BezierExample.java:
- BoxExample.java:
- BoxTextureExample.java:
- CameraExample.java:
- CircleExample.java:
- ConeExample.java:
- CurveExample.java:
- EllipseExample.java:
- ImageModeExample.java:
- LightExample.java:
- LineExample.java:
- LinesExample.java:
- MaskExample.java:
- MaterialExample.java:
- PointExample.java:
- PolygonExample.java:
- QuadExample.java:
- QuadTextureExample.java:
- RectExample.java:
- RotateExample.java:
- RoundrectExample.java:
- SphereExample.java:
- SphereTextureExample.java:
- TextBoxExample.java: テキストボックスのサンプル。上から左揃え・中央揃え・右揃え。
- TextExample.java: シンプルなテキストを表示するサンプル。
- TextExample2.java: 長いテキストや、回転させてテキストを表示するサンプル。
- TextureExample.java:
- TextureMaskExample.java:
- TriangleExamle.java:
casmi.graphics.color
- ColorSetExample.java: 予め定義されたwebカラーから色を選択するサンプル。
- GrayColorExample.java: GrayColorクラスのサンプル。
- LerpColorExample.java:
casmi.graphics.font
- FontExample.java: アクセス可能なフォントを表示するサンプル。スクロールできる。
casmi.graphics.gradation
- GradationBezierExample.java:
- GradationExample.java:
casmi.graphics.group
- GroupExample.java: 複数のエレメントをまとめてグループエレメントとして扱うことができる。このサンプルでは、Group1.javaがグループとなっている。
casmi.graphics.mouseover
- MouseOverColorSetExample.java:
- MouseOverExample.java:
- MouseOverGroupExample.java:
- MouseOverTextExample.java:
casmi.graphics.object
- ObjectExample.java:
casmi.net
- HTTPExample.java:
casmi.parser
casmiにはCSV, JSON, XMLのパーサーがデフォルトで含まれている。
- CSVExample.java:
- JSONExample.java:
- XMLExample.java:
casmi.sql
Ruby on RailsのActiveRecordのようなO/Rマッピングをしてデータベースにアクセスできる。MySQLとSQLite3に対応。
- MySQLExample.java:
- SQLiteExample.java:
casmi.timeline
複数のシーンを作成しておき、スライドショーのように切り替える。
- TimelineExample.java: Scene0.java〜Scene3.javaで4つのシーンを定義。それらが順に切り替わる。
casmi.tween
FlashのTweenのような滑らかなアニメーションを行う。
- TweenCursorExample.java:
- TweenEquationsExample.java:
- TweenExample.java:
- TweenGroupRepeatExample.java:
- TweenParallelExample.java:
- TweenRepeatExample.java:
- TweenSimpleExample.java:
- TweenVertexExample.java:
casmi.util
- NoiseExample.java:
- RandomExample.java: