Search in sources :

Example 16 with TransformGroup

use of javax.media.j3d.TransformGroup in project ffx by mjschnie.

the class GraphicsCanvas method initialize.

/**
 * Initialization of the GraphisCanvas.
 */
private void initialize() {
    setBackground(Color.black);
    universe = new SimpleUniverse(this);
    SimpleUniverse.setJ3DThreadPriority(Thread.MAX_PRIORITY);
    universe.getViewingPlatform().setNominalViewingTransform();
    // Create the Scene Root BranchGroup
    BranchGroup objRoot = new BranchGroup();
    baseTransformGroup = new TransformGroup();
    Transform3D t3d = new Transform3D();
    t3d.setScale(0.1d);
    baseTransformGroup.setTransform(t3d);
    baseTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    baseTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
    // Set the Background
    Color3f bgColor = new Color3f(RendererCache.BLACK);
    background = new Background(bgColor);
    background.setCapability(Background.ALLOW_COLOR_READ);
    background.setCapability(Background.ALLOW_COLOR_WRITE);
    bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 2000.0);
    background.setApplicationBounds(bounds);
    // Create lights
    AmbientLight aLgt = new AmbientLight(new Color3f(Color.darkGray));
    aLgt.setInfluencingBounds(bounds);
    Vector3f dir = new Vector3f(0.0f, -1.0f, -1.0f);
    Color3f dLgtColor = new Color3f(Color.lightGray);
    DirectionalLight dLgt = new DirectionalLight(dLgtColor, dir);
    dLgt.setInfluencingBounds(bounds);
    dir = new Vector3f(0.0f, 1.0f, -1.0f);
    dLgtColor = new Color3f(0.1f, 0.1f, 0.1f);
    DirectionalLight dLgt2 = new DirectionalLight(dLgtColor, dir);
    dLgt2.setInfluencingBounds(bounds);
    // Create the Base of the Molecular Scene
    baseBranchGroup = new BranchGroup();
    baseBranchGroup.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
    baseBranchGroup.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
    baseBranchGroup.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
    baseBranchGroup.setCapability(BranchGroup.ALLOW_BOUNDS_READ);
    // Add children created above to the base TransformGroup
    baseTransformGroup.addChild(background);
    baseTransformGroup.addChild(baseBranchGroup);
    objRoot.addChild(baseTransformGroup);
    // Position the view platmform and add lights
    View v = universe.getViewer().getView();
    v.setProjectionPolicy(View.PARALLEL_PROJECTION);
    v.setFrontClipPolicy(View.VIRTUAL_EYE);
    v.setFrontClipDistance(1.0);
    v.setBackClipPolicy(View.VIRTUAL_EYE);
    v.setBackClipDistance(10.0);
    v.setTransparencySortingPolicy(View.TRANSPARENCY_SORT_NONE);
    Transform3D trans = new Transform3D();
    trans.set(new Vector3d(0.0d, 0.0d, 2.0d));
    TransformGroup vptg = universe.getViewingPlatform().getViewPlatformTransform();
    vptg.setTransform(trans);
    BranchGroup viewBranch = new BranchGroup();
    viewBranch.addChild(aLgt);
    viewBranch.addChild(dLgt);
    viewBranch.addChild(dLgt2);
    vptg.addChild(viewBranch);
    // Initialize Behaviors
    graphicsAxis = new GraphicsAxis(universe.getViewingPlatform(), this, bounds);
    graphicsEvents = new GraphicsEvents(mainPanel, this, graphicsAxis, universe, bounds, baseBranchGroup, baseTransformGroup);
    baseBranchGroup.addChild(graphicsEvents);
    rendererPicking = new GraphicsPicking(baseBranchGroup, bounds, this, mainPanel);
    baseBranchGroup.addChild(rendererPicking);
    renderer = new ffx.potential.Renderer(bounds, mainPanel.getStatusBar());
    baseBranchGroup.addChild(renderer);
    // Compile the Root BranchGroup and add it to the Universe
    objRoot.compile();
    universe.addBranchGraph(objRoot);
}
Also used : Background(javax.media.j3d.Background) BoundingSphere(javax.media.j3d.BoundingSphere) BranchGroup(javax.media.j3d.BranchGroup) Transform3D(javax.media.j3d.Transform3D) Color3f(javax.vecmath.Color3f) SimpleUniverse(com.sun.j3d.utils.universe.SimpleUniverse) View(javax.media.j3d.View) TransformGroup(javax.media.j3d.TransformGroup) Vector3d(javax.vecmath.Vector3d) Point3d(javax.vecmath.Point3d) Vector3f(javax.vecmath.Vector3f) DirectionalLight(javax.media.j3d.DirectionalLight) AmbientLight(javax.media.j3d.AmbientLight)

Aggregations

TransformGroup (javax.media.j3d.TransformGroup)16 Transform3D (javax.media.j3d.Transform3D)6 BranchGroup (javax.media.j3d.BranchGroup)5 Vector3d (javax.vecmath.Vector3d)5 PickResult (com.sun.j3d.utils.picking.PickResult)4 Shape3D (javax.media.j3d.Shape3D)4 MSNode (ffx.potential.bonded.MSNode)2 Color3f (javax.vecmath.Color3f)2 Cone (com.sun.j3d.utils.geometry.Cone)1 Cylinder (com.sun.j3d.utils.geometry.Cylinder)1 Sphere (com.sun.j3d.utils.geometry.Sphere)1 SimpleUniverse (com.sun.j3d.utils.universe.SimpleUniverse)1 Atom (ffx.potential.bonded.Atom)1 Bond (ffx.potential.bonded.Bond)1 MSGroup (ffx.potential.bonded.MSGroup)1 MSRoot (ffx.potential.bonded.MSRoot)1 ROLS (ffx.potential.bonded.ROLS)1 MergeFilter (ffx.potential.parsers.MergeFilter)1 Font (java.awt.Font)1 File (java.io.File)1