sim.portrayal3d.simple
Class Shape3DPortrayal3D

java.lang.Object
  extended bysim.portrayal3d.SimplePortrayal3D
      extended bysim.portrayal3d.simple.Shape3DPortrayal3D
All Implemented Interfaces:
Portrayal, Portrayal3D, java.io.Serializable

public class Shape3DPortrayal3D
extends SimplePortrayal3D

A simple portrayal for displaying Shape3D objects. You can find Shape3D objects, or CompressedGeometry objects (which you can make into a Shape3D in its constructor) all over the web.

Note that this is not the superclass of ConePortrayal, SpherePortrayal, etc. Those display, in Java3D-speak, "Primitives": bundles of shapes. No, we don't understand why either.

See Also:
Serialized Form

Field Summary
 javax.media.j3d.Appearance appearance
           
 javax.media.j3d.Shape3D shape
           
 
Fields inherited from class sim.portrayal3d.SimplePortrayal3D
DEFAULT_APPEARANCE, parentPortrayal
 
Constructor Summary
Shape3DPortrayal3D(javax.media.j3d.Shape3D shape)
          Constructs a Shape3DPortrayal3D with the given shape and a default (flat opaque white) appearance.
Shape3DPortrayal3D(javax.media.j3d.Shape3D shape, javax.media.j3d.Appearance appearance)
          Constructs a Shape3DPortrayal3D with the given shape and appearance.
Shape3DPortrayal3D(javax.media.j3d.Shape3D shape, java.awt.Color color)
          Constructs a Shape3DPortrayal3D with the given shape and a flat opaque appearance of the given color.
Shape3DPortrayal3D(javax.media.j3d.Shape3D shape, java.awt.Image image)
          Constructs a Shape3DPortrayal3D with the given shape and (opaque) image.
 
Method Summary
 javax.media.j3d.TransformGroup getModel(java.lang.Object obj, javax.media.j3d.TransformGroup j3dModel)
          Provides a TransformGroup which defines the node(s) to place in the scenegraph.
 
Methods inherited from class sim.portrayal3d.SimplePortrayal3D
appearanceForColor, appearanceForImage, clearPickableFlags, getInspector, getName, polygonAttributes, setParentPortrayal, setPickableFlags, setPickableFlags, setSelected
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

shape

public javax.media.j3d.Shape3D shape

appearance

public javax.media.j3d.Appearance appearance
Constructor Detail

Shape3DPortrayal3D

public Shape3DPortrayal3D(javax.media.j3d.Shape3D shape)
Constructs a Shape3DPortrayal3D with the given shape and a default (flat opaque white) appearance.


Shape3DPortrayal3D

public Shape3DPortrayal3D(javax.media.j3d.Shape3D shape,
                          java.awt.Color color)
Constructs a Shape3DPortrayal3D with the given shape and a flat opaque appearance of the given color.


Shape3DPortrayal3D

public Shape3DPortrayal3D(javax.media.j3d.Shape3D shape,
                          java.awt.Image image)
Constructs a Shape3DPortrayal3D with the given shape and (opaque) image.


Shape3DPortrayal3D

public Shape3DPortrayal3D(javax.media.j3d.Shape3D shape,
                          javax.media.j3d.Appearance appearance)
Constructs a Shape3DPortrayal3D with the given shape and appearance.

Method Detail

getModel

public javax.media.j3d.TransformGroup getModel(java.lang.Object obj,
                                               javax.media.j3d.TransformGroup j3dModel)
Description copied from interface: Portrayal3D
Provides a TransformGroup which defines the node(s) to place in the scenegraph. This is the Portrayal3D equivalent of Portrayal2D's draw(object, graphics, drawinfo) method.

You should hang your model off of the TransformGroup provided. You should not transform that TransformGroup in any way -- it is used elsewhere. Instead if you wish to transform your model (rotate it etc.) you should add your own additional TransformGroup as necessary.

The provided TransformGroup can be null; in this case you need to create and return the outer TransformGroup for the object. If the provided TransformGroup is non-null, you should modify it and return the same.

SimplePortrayals should assume the following contract: at the point that getModel(...) is called, the parentPortrayal will have already been set if it exists, else it will be null.

Specified by:
getModel in interface Portrayal3D
Overrides:
getModel in class SimplePortrayal3D