ptolemy.domains.gr.lib
Class PolyCylinder3D

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.actor.AtomicActor
                      extended by ptolemy.actor.TypedAtomicActor
                          extended by ptolemy.domains.gr.kernel.GRActor
                              extended by ptolemy.domains.gr.kernel.GRActor3D
                                  extended by ptolemy.domains.gr.lib.GRShadedShape
                                      extended by ptolemy.domains.gr.lib.PolyCylinder3D
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class PolyCylinder3D
extends GRShadedShape

This actor produces a generalized cylindrical shape in the GR domain. The output port is used to connect this actor to the Java3D scene graph. This actor will only have meaning in the GR domain. The parameter polygon determines the polygonal shape of the base of this generalized cylinder. One will need to enter an array of coordinates in the X-Y plane to specify the polygonal shape for the base. The parameter thickness determines the thickness of the generalized cylinder.

Since:
Ptolemy II 1.0
Version:
$Id: PolyCylinder3D.java 57040 2010-01-27 20:52:32Z cxh $
Author:
C. Fong and Edward A. Lee
See Also:
Serialized Form
Accepted Rating:
Yellow (liuxj)
Proposed Rating:
Green (eal)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  javax.media.j3d.Shape3D _containedNode
          The contained shape.
 Parameter polygon
          The polygonal shape of the base This parameter should contain a ArrayToken with an even number of DoubleToken values.
 Parameter thickness
          The thickness of the generalized cylinder This parameter should contain a DoubleToken.
 
Fields inherited from class ptolemy.domains.gr.lib.GRShadedShape
_appearance, _changesAllowedNow, _coloringAttributes, _material, _polygonAttributes, _transparencyAttributes, allowRuntimeChanges, diffuseColor, emissiveColor, flat, sceneGraphOut, shininess, specularColor, texture, transparency, wireFrame
 
Fields inherited from class ptolemy.domains.gr.kernel.GRActor3D
_viewScreen
 
Fields inherited from class ptolemy.domains.gr.kernel.GRActor
_allowAttributeChanges, _isSceneGraphInitialized
 
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Constructor Summary
PolyCylinder3D(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
protected  void _createModel()
          Create the shape and appearance of the encapsulated generalized cylinder.
private  javax.media.j3d.GeometryArray _getGeometry()
          Create the shape and appearance of the encapsulated generalized cylinder and return as a geometry array.
protected  javax.media.j3d.Node _getNodeObject()
          Return the encapsulated Java3D node of this 3D actor.
private  float[] _getPolygon()
          Get the array that contains the 2D polygonal representation of the base of this cylinder.
private  int _getVertexCount()
          Get the number of vertices in the 2D polygonal base of this generalized cylinder.
 void attributeChanged(Attribute attribute)
          If the specified attribute is polygon or thickness and runtime changes are allowed, then update the geometry.
 
Methods inherited from class ptolemy.domains.gr.lib.GRShadedShape
_createAppearance, _makeSceneGraphConnection, _setViewScreen, clone, initialize, prefire, preinitialize, wrapup
 
Methods inherited from class ptolemy.domains.gr.kernel.GRActor3D
_addChild
 
Methods inherited from class ptolemy.domains.gr.kernel.GRActor
fire
 
Methods inherited from class ptolemy.actor.TypedAtomicActor
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, postfire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, removeInitializable
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

polygon

public Parameter polygon
The polygonal shape of the base This parameter should contain a ArrayToken with an even number of DoubleToken values. The default shape for this polygon is a triangle


thickness

public Parameter thickness
The thickness of the generalized cylinder This parameter should contain a DoubleToken. The default value of this parameter is the DoubleToken 0.3


_containedNode

private javax.media.j3d.Shape3D _containedNode
The contained shape.

Constructor Detail

PolyCylinder3D

public PolyCylinder3D(CompositeEntity container,
                      java.lang.String name)
               throws IllegalActionException,
                      NameDuplicationException
Construct an actor with the given container and name.

Parameters:
container - The container.
name - The name of this actor.
Throws:
IllegalActionException - If the actor cannot be contained by the proposed container.
NameDuplicationException - If the container already has an actor with this name.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
If the specified attribute is polygon or thickness and runtime changes are allowed, then update the geometry.

Overrides:
attributeChanged in class GRShadedShape
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If thrown by the parent class.

_createModel

protected void _createModel()
                     throws IllegalActionException
Create the shape and appearance of the encapsulated generalized cylinder.

Overrides:
_createModel in class GRShadedShape
Throws:
IllegalActionException - If the value of some parameters can't be obtained.

_getNodeObject

protected javax.media.j3d.Node _getNodeObject()
Return the encapsulated Java3D node of this 3D actor. The encapsulated node for this actor is a generalized polygonal cylinder.

Specified by:
_getNodeObject in class GRActor3D
Returns:
the generalized polygonal cylinder

_getGeometry

private javax.media.j3d.GeometryArray _getGeometry()
                                            throws IllegalActionException
Create the shape and appearance of the encapsulated generalized cylinder and return as a geometry array.

Throws:
IllegalActionException - If the value of some parameters can't be obtained.

_getPolygon

private float[] _getPolygon()
                     throws IllegalActionException
Get the array that contains the 2D polygonal representation of the base of this cylinder.

Returns:
An array that contains the 2D polygonal vertex coordinates.
Throws:
IllegalActionException - If the value of the polygon parameter can't be obtained.

_getVertexCount

private int _getVertexCount()
                     throws IllegalActionException
Get the number of vertices in the 2D polygonal base of this generalized cylinder.

Returns:
the number of vertices in the base polygon
Throws:
IllegalActionException - If the value of some parameters can't be obtained