Upload
masashi-umezawa
View
278
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
3D GUI 別解解説
2014 SoftUmeYa, LLC
Masashi Umezawa
CROSS 2014
言語CROSS
Smalltalkによる
3D GUI課題
ボタンを押すと Hello, 3D World ! と表示されるようにしてください(編集可能であると、なお良い)。
ただし、文字列は 3D オブジェクトとしてパースがかかっているなど、3D であることが判るようにしてください。
どう解く?
じゅん
VisualWorks用、老舗
http://aokilab.kyoto-su.ac.jp/jun/index-j.html
Roassal 3D
Pharo用、発展途上
OpenQwaq
仮想3D世界作成プラットフォーム
https://code.google.com/p/openqwaq/
仕事で使っているOpenQwaqを採用
方針: なるべくコードを書かない 多分ツールの洗練さ、格好の良さでは
Delphiにかなわない
OpenQwaq既存の3Dコンポーネントを使う
QStickyNoteという付箋があるので、それを
仮想世界に生成して終わり
ボタンはライブな手法で生成
StickyNote生成用メソッドの定義 QwaqParticipantUI >> makeNewStickyNote
makeNewStickyNote | space island note pos wrap | self readyForEvents ifFalse: [^ self statusAlert: 'Not ready.']. space := mainView activeSpace. island := space island. pos := avatar translation - (avatar lookAt * 10). note := island future new: QStickyNote. wrap := island future new: QMotionAdapter. wrap future isGroundBound: false. wrap future isDeletable: true. wrap future grip: note. wrap future luggage: note. note future translation: pos. note future contents: 'HELLO 3D'. space future addChild: note.
StickyNote生成
動かせるようにラップ
Island(共有空間)取得
付箋の内容を'HELLO 3D'にして
共有空間に追加
ワークスペースで実行
QwaqForumsUI lastInstance makeNewStickyNote
でなく、ボタンを作ります
アバターの視線の先に付箋が出来る
クリックで編集
別ユーザがいれば協働編集も可能
futureって?
非同期メッセージ送信
別プロセス、又は別ノードのオブジェクトに
メッセージを送る
E言語に由来
興味が出てきた方は...
合同Smalltalk勉強会@名古屋 #2
「OpenQwaqの話」 • http://www.smalltalk-users.jp/Home/gao-zhi/smalltalkgoudou
benkyoukainagoya2/shiryou/OpenQwaq.pdf