[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:00784] Re: Multi View
-----------------------------------------------------------
【地球にやさしく】 【資源再利用】 【リサイクル】
・パソコンプリンターのトナーカートリッジのリサイクル品
『新品に比べて格安、ほぼ半額。o(^-^)o』
・価格の確認→ http://www.ecotec.co.jp/cosmos/serv01.htm
------ 環境ネットワーク--->> http://www.ecotec.co.jp/ -----
えんどうです。
>>1つのシーングラフに複数の視点を設定して、
>>それぞれの視点を個別のCanvas3Dに割り当てるには
>>どのようにすればよいのでしょうか?
>
>試したことがないのですが、View側のツリーを複数 add すれば可能だと思います。
あまり良いサンプルとは言えないかもしれませんが、いちおう書きましたので投稿します。
1 // Java 3D Test Program
2 // SmallUniverse.java
3 // Copyright(c) 1999 ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
4
5 import javax.media.j3d.*;
6
7 public class SmallUniverse {
8 protected VirtualUniverse universe_ = null;
9 protected Locale locale_ = null;
10 protected BranchGroup root_ = null;
11 protected TransformGroup trans_ = null;
12 protected ViewPlatform vp_ = null;
13 protected View view_ = null;
14 protected PhysicalBody body_ = null;
15 protected PhysicalEnvironment env_ = null;
16 protected Canvas3D canvas_ = null;
17
18 public SmallUniverse() {
19 this( new Locale( new VirtualUniverse() ) );
20 }
21
22 public SmallUniverse(Locale locale) {
23 universe_ = locale.getVirtualUniverse();
24
25 locale_ = locale;
26
27 root_ = new BranchGroup();
28
29 trans_ = new TransformGroup();
30 trans_.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
31 trans_.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
32 root_.addChild(trans_);
33
34 vp_ = new ViewPlatform();
35 trans_.addChild(vp_);
36
37 view_ = new View();
38 view_.attachViewPlatform(vp_);
39
40 canvas_ = new Canvas3D(null);
41 view_.addCanvas3D(canvas_);
42
43 body_ = new PhysicalBody();
44 view_.setPhysicalBody(body_);
45
46 env_ = new PhysicalEnvironment();
47 view_.setPhysicalEnvironment(env_);
48
49 locale_.addBranchGraph(root_);
50 }
51
52 public Locale getLocale() { return locale_; }
53 public void setLocale(Locale locale) { locale_ = locale; }
54
55 public void getTransform(Transform3D t3d) { trans_.getTransform(t3d); }
56 public void setTransform(Transform3D t3d) { trans_.setTransform(t3d); }
57
58 public Canvas3D getCanvas() { return canvas_; }
59 public void setCanvas3D(Canvas3D canvas) { canvas_ = canvas; }
60
61 }
1 // Java 3D Test Program
2 // MultiViewTest.java
3 // Copyright(c) 1999 ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
4
5 import javax.media.j3d.*;
6 import javax.vecmath.*;
7 import com.sun.j3d.utils.geometry.ColorCube;
8 import java.awt.*;
9
10 public class MultiViewTest {
11 public MultiViewTest() {
12 SmallUniverse u1 = new SmallUniverse();
13 Locale locale = u1.getLocale();
14 SmallUniverse u2 = new SmallUniverse(locale);
15
16 BranchGroup scene = new BranchGroup();
17 scene.addChild( new ColorCube(0.4) );
18 locale.addBranchGraph(scene);
19
20 Transform3D t3d1 = new Transform3D();
21 t3d1.set( new Vector3d(0.0, 0.0, 2.0) );
22 u1.setTransform(t3d1);
23
24 Transform3D t3d2 = new Transform3D();
25 t3d2.lookAt( new Point3d(2.0, 2.0, 2.0), // eye
26 new Point3d(0.0, 0.0, 0.0), // center
27 new Vector3d(-0.57, 0.57, -0.57) ); // up
28 t3d2.invert(); // 必須
29 u2.setTransform(t3d2);
30
31 Frame f1 = new Frame();
32 f1.setLayout( new BorderLayout() );
33 f1.add(u1.getCanvas(), "Center");
34 f1.pack();
35 f1.setSize(200, 200);
36 f1.show();
37
38 Frame f2 = new Frame();
39 f2.setLayout( new BorderLayout() );
40 f2.add(u2.getCanvas(), "Center");
41 f2.pack();
42 f2.setSize(200, 200);
43 f2.show();
44 }
45
46 public static void main(String[] args) {
47 MultiViewTest MultiViewTest = new MultiViewTest();
48 }
49 }
50
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Japanese Only)