Search in sources :

Example 1 with SimpleUniverse

use of com.sun.j3d.utils.universe.SimpleUniverse 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

SimpleUniverse (com.sun.j3d.utils.universe.SimpleUniverse)1 AmbientLight (javax.media.j3d.AmbientLight)1 Background (javax.media.j3d.Background)1 BoundingSphere (javax.media.j3d.BoundingSphere)1 BranchGroup (javax.media.j3d.BranchGroup)1 DirectionalLight (javax.media.j3d.DirectionalLight)1 Transform3D (javax.media.j3d.Transform3D)1 TransformGroup (javax.media.j3d.TransformGroup)1 View (javax.media.j3d.View)1 Color3f (javax.vecmath.Color3f)1 Point3d (javax.vecmath.Point3d)1 Vector3d (javax.vecmath.Vector3d)1 Vector3f (javax.vecmath.Vector3f)1