Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## sim.portrayal3d.simple
Class TransformedPortrayal3D

    java.lang.Object
      sim.portrayal3d.SimplePortrayal3D
          sim.portrayal3d.simple.TransformedPortrayal3D

All Implemented Interfaces:
  java.io.Serializable, Portrayal, Portrayal3D

    public class TransformedPortrayal3D

extends SimplePortrayal3D

A wrapper for other Portrayal3Ds which transforms them with an underlying Transform3D: meaning that you can rotate them, translate them, scale them, etc. When you create this TransformedPortrayal3D, you will pass in an underlying Portrayal3D which is supposed to represent the actual object; TransformedPortrayal3D will then transform it as requested. If the object will draw itself (it's its own Portrayal3D), you can signify this by passing in null for the underlying Portrayal3D.

You can provide a Transform3D with the child if you like. Otherwise a default Transform3D (which does nothing) will be provided. From there you can further rotate, translate, or scale the underlying Transform3D using the provided functions. This is essentially equivalent to the similar features provided in FieldPortrayal3Ds and in Display3D for transforming Fields or the entire scene.

If you change the transform at any time through the provided functions, the underlying models will be updated appropriately.

See Also:
  Serialized Form

Field Summary
`protected SimplePortrayal3D` | `child`

Fields inherited from class sim.portrayal3d.SimplePortrayal3D
`DEFAULT_APPEARANCE, parentPortrayal`

Constructor Summary
`TransformedPortrayal3D(SimplePortrayal3D child)`
`TransformedPortrayal3D(SimplePortrayal3D child, javax.media.j3d.Transform3D transform)`

Method Summary
`SimplePortrayal3D` | `getChild(java.lang.Object object)`
`javax.media.j3d.Transform3D` | `getDefaultTransform()` Returns the default internal transform suggested for this TransformedPortrayal3D.
`Inspector` | `getInspector(LocationWrapper wrapper, GUIState state)` Provide an inspector for an object.
`javax.media.j3d.TransformGroup` | `getModel(java.lang.Object obj, javax.media.j3d.TransformGroup previousTransformGroup)` Provides a TransformGroup which defines the node(s) to place in the scenegraph.
`java.lang.String` | `getName(LocationWrapper wrapper)` Returns a static, one-line name for the given object that is useful for a human to distinguish it from other objects.
`javax.media.j3d.Transform3D` | `getTransform()` Returns a copy of the current internal transform for the TransformedPortrayal3D.
`javax.media.j3d.PolygonAttributes` | `polygonAttributes()` Provides a PolygonAttributes which can be modified to change the underlying model's attributes (culling, vertex versus point versus fill).
`void` | `resetTransform()` Resets the internal transform to the value of getDefaultTransform()
`void` | `rotateX(double degrees)` Modifies the internal transform by rotating along the current X axis the provided number of degrees.
`void` | `rotateY(double degrees)` Modifies the internal transform by rotating along the current Y axis the provided number of degrees.
`void` | `rotateZ(double degrees)` Modifies the internal transform by rotating along the current Z axis the provided number of degrees.
`void` | `scale(double value)` Modifies the internal transform by uniformly scaling it in all directions by the provided amount.
`void` | `scale(double sx, double sy, double sz)` Modifies the internal transform by scaling it in a nonuniform fashion.
`void` | `setParentPortrayal(FieldPortrayal3D p)` Sets the parent portrayal (a FieldPortrayal3D).
`boolean` | `setSelected(LocationWrapper wrapper, boolean selected)` Change the portrayal state to reflect the fact that you've been selected or not selected.
`void` | `setTransform(javax.media.j3d.Transform3D transform)` Sets the TransformedPortrayal3D's internal Transform.
`void` | `transform(javax.media.j3d.Transform3D transform)` Changes the internal transform of the TransformedPortrayal3D by appending to it the provided transform operation.
`void` | `translate(double dx, double dy, double dz)` Modifies the internal transform by translating in the provided x, y, and z amounts.

Methods inherited from class sim.portrayal3d.SimplePortrayal3D
`appearanceForColor, appearanceForImage, clearPickableFlags, getStatus, setPickableFlags, setPickableFlags`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### child

    protected SimplePortrayal3D child

Constructor Detail

### TransformedPortrayal3D

    public TransformedPortrayal3D(SimplePortrayal3D child,
                                  javax.media.j3d.Transform3D transform)

### TransformedPortrayal3D

    public TransformedPortrayal3D(SimplePortrayal3D child)

Method Detail

### polygonAttributes

    public javax.media.j3d.PolygonAttributes polygonAttributes()

  Description copied from interface: `Portrayal3D`
  Provides a PolygonAttributes which can be modified to change the underlying model's attributes (culling, vertex versus point versus fill). This is an optional function: you are free to return null

  Specified by:
    `polygonAttributes` in interface `Portrayal3D`
  Overrides:
    `polygonAttributes` in class `SimplePortrayal3D`

### getInspector

    public Inspector getInspector(LocationWrapper wrapper,
                                  GUIState state)

  Description copied from interface: `Portrayal`
  Provide an inspector for an object.

  Specified by:
    `getInspector` in interface `Portrayal`
  Overrides:
    `getInspector` in class `SimplePortrayal3D`

### getName

    public java.lang.String getName(LocationWrapper wrapper)

  Description copied from interface: `Portrayal`
  Returns a static, one-line name for the given object that is useful for a human to distinguish it from other objects. A simple default would be just to return "" + object.

  Specified by:
    `getName` in interface `Portrayal`
  Overrides:
    `getName` in class `SimplePortrayal3D`

### setParentPortrayal

    public void setParentPortrayal(FieldPortrayal3D p)

  Description copied from class: `SimplePortrayal3D`
  Sets the parent portrayal (a FieldPortrayal3D).

  Overrides:
    `setParentPortrayal` in class `SimplePortrayal3D`

### setSelected

    public boolean setSelected(LocationWrapper wrapper,
                               boolean selected)

  Description copied from interface: `Portrayal`
  Change the portrayal state to reflect the fact that you've been selected or not selected. Always return true, except if you've received a setSelected(true) and in fact do not wish to be selectable, in which case return false in that sole situation.

  Specified by:
    `setSelected` in interface `Portrayal`
  Overrides:
    `setSelected` in class `SimplePortrayal3D`

### getChild

    public SimplePortrayal3D getChild(java.lang.Object object)

### getModel

    public javax.media.j3d.TransformGroup getModel(java.lang.Object obj,
                                                   javax.media.j3d.TransformGroup previousTransformGroup)

  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`

### setTransform

    public void setTransform(javax.media.j3d.Transform3D transform)

  Sets the TransformedPortrayal3D's internal Transform. This is a user-modifiable transform which should be used primarily to adjust the location of the TransformedPortrayal3D relative to other TransformedPortrayal3D objects. If null is provided, then the value of getDefaultTransform() is used.

### getDefaultTransform

    public javax.media.j3d.Transform3D getDefaultTransform()

  Returns the default internal transform suggested for this TransformedPortrayal3D.

### getTransform

    public javax.media.j3d.Transform3D getTransform()

  Returns a copy of the current internal transform for the TransformedPortrayal3D.

### transform

    public void transform(javax.media.j3d.Transform3D transform)

  Changes the internal transform of the TransformedPortrayal3D by appending to it the provided transform operation.

### resetTransform

    public void resetTransform()

  Resets the internal transform to the value of getDefaultTransform()

### rotateX

    public void rotateX(double degrees)

  Modifies the internal transform by rotating along the current X axis the provided number of degrees.

### rotateY

    public void rotateY(double degrees)

  Modifies the internal transform by rotating along the current Y axis the provided number of degrees.

### rotateZ

    public void rotateZ(double degrees)

  Modifies the internal transform by rotating along the current Z axis the provided number of degrees.

### translate

    public void translate(double dx,
                          double dy,
                          double dz)

  Modifies the internal transform by translating in the provided x, y, and z amounts.

### scale

    public void scale(double value)

  Modifies the internal transform by uniformly scaling it in all directions by the provided amount.

### scale

    public void scale(double sx,
                      double sy,
                      double sz)

  Modifies the internal transform by scaling it in a nonuniform fashion. Note that this is less efficient than a uniform scale

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD