01: /*
02: * Copyright (c) 2000 Silvere Martin-Michiellot All Rights Reserved.
03: *
04: * Silvere Martin-Michiellot grants you ("Licensee") a non-exclusive,
05: * royalty free, license to use, modify and redistribute this
06: * software in source and binary code form,
07: * provided that i) this copyright notice and license appear on all copies of
08: * the software; and ii) Licensee does not utilize the software in a manner
09: * which is disparaging to Silvere Martin-Michiellot.
10: *
11: * This software is provided "AS IS," without a warranty of any kind. ALL
12: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
13: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
14: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. Silvere Martin-Michiellot
15: * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
16: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
17: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
18: * Silvere Martin-Michiellot OR ITS LICENSORS BE LIABLE
19: * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
20: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
21: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
22: * OR INABILITY TO USE SOFTWARE, EVEN IF Silvere Martin-Michiellot HAS BEEN
23: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
24: *
25: * This software is not designed or intended for use in on-line control of
26: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
27: * the design, construction, operation or maintenance of any nuclear
28: * facility. Licensee represents and warrants that it will not use or
29: * redistribute the Software for such purposes.
30: *
31: */
32:
33: package com.db.utils;
34:
35: import javax.media.j3d.*;
36: import javax.vecmath.Vector3f;
37:
38: public class SimpleUniverseBuilder {
39:
40: Canvas3D canvas;
41: VirtualUniverse universe;
42: Locale locale;
43: TransformGroup vpTrans;
44: View view;
45: BranchGroup viewer;
46: BranchGroup scene;
47:
48: public SimpleUniverseBuilder(Canvas3D canvas3D) {
49:
50: canvas = canvas3D;
51: universe = new VirtualUniverse();
52: locale = new Locale(universe);
53: PhysicalBody physicalBody = new PhysicalBody();
54: PhysicalEnvironment physicalEnvironment = new PhysicalEnvironment();
55: view = new View();
56: view.addCanvas3D(canvas3D);
57: view.setPhysicalBody(physicalBody);
58: view.setPhysicalEnvironment(physicalEnvironment);
59: view.setFrontClipDistance(0.01);
60: view.setBackClipDistance(1000.0);
61: viewer = new BranchGroup();
62: Transform3D transform3D = new Transform3D();
63: transform3D.set(new Vector3f(0.0f, 10.0f, 30.0f));
64: ViewPlatform viewPlatform = new ViewPlatform();
65: vpTrans = new TransformGroup(transform3D);
66: vpTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
67: vpTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
68: vpTrans.addChild(viewPlatform);
69: viewer.addChild(vpTrans);
70: view.attachViewPlatform(viewPlatform);
71:
72: }
73:
74: public TransformGroup getVpTrans() {
75: return vpTrans;
76: }
77:
78: public void addBranchGraph(BranchGroup branchGroup) {
79:
80: scene = branchGroup;
81: }
82:
83: public void setLive() {
84: locale.addBranchGraph(scene);
85: locale.addBranchGraph(viewer);
86: }
87: }
|