ptolemy.domains.gr.lib
Class Rotate3D

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.GRTransform
                                      extended by ptolemy.domains.gr.lib.Rotate3D
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 Rotate3D
extends GRTransform

Conceptually, this actor takes 3D geometry in its input and produces a rotated version in its output. In reality, this actor encapsulates a Java3D TransformGroup which is converted into a node in the resulting Java3D scene graph. This actor will only have meaning in the GR domain. The parameters axisDirectionX,axisDirectionY, and axisDirectionZ determine the direction of the axis of rotation. The parameters baseX, baseY, and baseZ determine the pivot point for axis of the rotation. The parameter initialAngle determines the initial angle of rotation.

Since:
Ptolemy II 1.0
Version:
$Id: Rotate3D.java 57040 2010-01-27 20:52:32Z cxh $
Author:
C. Fong
See Also:
Serialized Form
Accepted Rating:
Red (chf)
Proposed Rating:
Red (chf)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  double _accumulatedAngle
           
private  double _baseX
           
private  double _baseY
           
private  double _baseZ
           
private  javax.media.j3d.TransformGroup _bottomTranslate
           
private  javax.media.j3d.TransformGroup _middleRotate
           
private  javax.media.j3d.Transform3D _rotation
           
private  javax.media.j3d.TransformGroup _topTranslate
           
private  double _xAxis
           
private  double _yAxis
           
private  double _zAxis
           
 TypedIOPort angle
          The amount of rotation during firing.
 Parameter axisDirection
          The direction of the axis of rotation.
 Parameter initialAngle
          The initial angle of rotation.
 PortParameter pivotLocation
          The pivot location of the axis of rotation.
 
Fields inherited from class ptolemy.domains.gr.lib.GRTransform
accumulate, sceneGraphIn, sceneGraphOut
 
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
Rotate3D(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
protected  void _addChild(javax.media.j3d.Node node)
          Connect other Java3D nodes as children of the encapsulated node in this actor.
protected  javax.media.j3d.Node _getNodeObject()
          Return the encapsulated Java3D node of this 3D actor.
 void fire()
          Change the rotation angle depending on the value given in the input port.
 void initialize()
          Setup the initial rotation.
 
Methods inherited from class ptolemy.domains.gr.lib.GRTransform
_isAccumulating, _makeSceneGraphConnection
 
Methods inherited from class ptolemy.domains.gr.kernel.GRActor3D
_setViewScreen
 
Methods inherited from class ptolemy.domains.gr.kernel.GRActor
wrapup
 
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, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, 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, attributeChanged, 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, prefire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, 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

angle

public TypedIOPort angle
The amount of rotation during firing. If this transform is in accumulate mode, the angle value is accumulated for each firing.


initialAngle

public Parameter initialAngle
The initial angle of rotation. This parameter should contain a DoubleToken. The default value of this parameter is 0.0.


axisDirection

public Parameter axisDirection
The direction of the axis of rotation. The parameter should contain a DoubleMatrixToken The default value of this parameter is [0.0, 1.0, 0.0]


pivotLocation

public PortParameter pivotLocation
The pivot location of the axis of rotation. This parameter should contain a DoubleMatrixToken The default value of this parameter is [0.0, 0.0, 0.0]


_xAxis

private double _xAxis

_yAxis

private double _yAxis

_zAxis

private double _zAxis

_baseX

private double _baseX

_baseY

private double _baseY

_baseZ

private double _baseZ

_topTranslate

private javax.media.j3d.TransformGroup _topTranslate

_middleRotate

private javax.media.j3d.TransformGroup _middleRotate

_bottomTranslate

private javax.media.j3d.TransformGroup _bottomTranslate

_rotation

private javax.media.j3d.Transform3D _rotation

_accumulatedAngle

private double _accumulatedAngle
Constructor Detail

Rotate3D

public Rotate3D(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

_addChild

protected void _addChild(javax.media.j3d.Node node)
Connect other Java3D nodes as children of the encapsulated node in this actor.

Overrides:
_addChild in class GRActor3D
Parameters:
node - The child Java3D node.

fire

public void fire()
          throws IllegalActionException
Change the rotation angle depending on the value given in the input port.

Specified by:
fire in interface Executable
Overrides:
fire in class GRActor
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 TransformGroup

Specified by:
_getNodeObject in class GRActor3D
Returns:
the Java3D TransformGroup

initialize

public void initialize()
                throws IllegalActionException
Setup the initial rotation.

Specified by:
initialize in interface Initializable
Overrides:
initialize in class GRTransform
Throws:
IllegalActionException - If the value of some parameters can't be obtained