[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01133] Re: [Q] SimpleUniverse==Builder pattern?
=== 眠っているあなたの「資格」を活かして、「情報教育」の現場へ!===
デジタルクリエイターカレッジWAO!は、来年4月に高校で始まる「情報」科目
の指導者養成コースを開設します! 教員免許、MOT、MOUS、MCP、マルチメディア
検定…。頑張って取得したあなたの「資格」を今こそ活かしましょう。
受講お申し込み受付中!今すぐWAO!までご連絡下さい。
========= 詳しくは>>http://www.dcc-wao.co.jp/ ========
えんどうです。
> [Q] SimpleUniverse は Builder パターンなのでしょうか?
予想通り(?)反響が無いようですね。^^;
きのう「Java 3D API 仕様」を読み直していたら、
Java 3D 1.1 Alpha の頃は SimpleUniverse ではなく
UniverseBuilder クラスが提供されていたのを思い出しました。
このクラス名は Builder パターンとの関連を匂わせますね。
今手元にこの本が無いのですが、たしか UniverseBuilder というのは
こんなクラスだったと思います。
import javax.media.j3d.VirtualUniverse;
import javax.media.j3d.Locale;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Transform3D;
import javax.vecmath.Vector3d;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.ViewPlatform;
import javax.media.j3d.View;
import javax.media.j3d.PhysicalBody;
import javax.media.j3d.PhysicalEnvironment;
import javax.media.j3d.Canvas3D;
public class UniverseBuilder {
VirtualUniverse universe = null;
Locale locale = null;
BranchGroup root = null;
Transform3D t3d = null;
TransformGroup trans = null;
ViewPlatform vp = null;
View view = null;
PhysicalBody body = null;
PhysicalEnvironment env = null;
Canvas3D canvas = null;
public UniverseBuilder(Canvas3D aCanvas) {
canvas = aCanvas;
universe = new VirtualUniverse();
locale = new Locale(universe);
root = new BranchGroup();
t3d = new Transform3D();
t3d.setTranslation(new Vector3d(0.0, 0.0, 2.0));
trans = new TransformGroup(t3d);
root.addChild(trans);
vp = new ViewPlatform();
trans.addChild(vp);
view = new View();
view.attachViewPlatform(vp);
body = new PhysicalBody();
view.setPhysicalBody(body);
env = new PhysicalEnvironment();
view.setPhysicalEnvironment(env);
if (canvas == null) canvas = new Canvas3D(null);
view.addCanvas3D(canvas);
locale.addBranchGraph(root);
}
public void addBranchGraph(BranchGroup aBranchGroup) {
locale.addBranchGraph(aBranchGroup);
}
}
図にすると、
(////) VirtualUniverse
|
▼
◇ Locale
\
▲
(BG) BranchGroup
|
▼
(TG) TransformGroup
|
▼
/\ ←……┌──┐←……┌────┐
/ VP \……→│View│……→│Canvas3D│
 ̄ ̄ ̄ ̄ └──┘ └────┘
ViewPaltform : :
↓ ↓
□ □
Physical Physical
Body Environment
このようなかたちが Builder パターンに適合しているという理解で
よろしいでしょうか。
---
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/index.html (Japanese Only)