ptolemy.domains.gr.lib
Class Rotate2D

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.GRActor2D
                                  extended by ptolemy.domains.gr.lib.GRTransform2D
                                      extended by ptolemy.domains.gr.lib.Rotate2D
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 Rotate2D
extends GRTransform2D

Rotate a two-dimensional figure based on the angle, and anchor point provided by the user. The angle, step, and anchor points can either be preset in the parameter edit window, or updated dynamically through the actor's ports. The angle can be specified in radians or degrees by selecting the angle type in the parameter edit window. Angles increase clockwise beginning at the positive X-axis in a Cartesian plane. If the accumulate parameter defined in the base class is set to true, any changes to the angle of rotation will be relative to the figure's current orientation. Otherwise, the angle specified will be relative to the positive X-axis.

Since:
Ptolemy II 4.0
Version:
$Id: Rotate2D.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Ismael M. Sarmiento, Steve Neuendorffer
See Also:
Serialized Form
Accepted Rating:
Yellow (chf)
Proposed Rating:
Green (ismael)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  double _oldAnchorX
           
private  double _oldAnchorY
           
private  double _oldAngle
           
 TypedIOPort anchorX
          The X coordinate of the point the figure is to be rotated about.
 TypedIOPort anchorY
          The Y coordinate of the point the figure is to be rotated about.
 StringAttribute angleType
          How the angle is specified.
 Parameter initialAnchorX
          The initial x-coordinate of the anchor point.
 Parameter initialAnchorY
          The initial y-coordinate of the anchor point.
 Parameter initialTheta
          The initial angle of rotation.
 TypedIOPort theta
          The angle the figure is to be rotated by, measured clockwise from the positive X-axis on a Cartesian plane.
 
Fields inherited from class ptolemy.domains.gr.lib.GRTransform2D
accumulate, sceneGraphIn, sceneGraphOut
 
Fields inherited from class ptolemy.domains.gr.kernel.GRActor2D
_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
Rotate2D(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
protected  void _applyInitialTransform(Figure figure)
          Apply the initial rotation to the figure.
protected  void _applyTransform(Figure figure)
          Apply the current rotation transformation to the figure.
 
Methods inherited from class ptolemy.domains.gr.lib.GRTransform2D
_isAccumulating, _makeSceneGraphConnection, fire, initialize
 
Methods inherited from class ptolemy.domains.gr.kernel.GRActor2D
_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

theta

public TypedIOPort theta
The angle the figure is to be rotated by, measured clockwise from the positive X-axis on a Cartesian plane. The default double value is 0.0.


anchorX

public TypedIOPort anchorX
The X coordinate of the point the figure is to be rotated about. The default double value is 0.0.


anchorY

public TypedIOPort anchorY
The Y coordinate of the point the figure is to be rotated about. The default double value is 0.0.


initialTheta

public Parameter initialTheta
The initial angle of rotation. The default double value is 0.0.


initialAnchorX

public Parameter initialAnchorX
The initial x-coordinate of the anchor point. The default double value is 0.0.


initialAnchorY

public Parameter initialAnchorY
The initial y-coordinate of the anchor point. The default double value is 0.0.


angleType

public StringAttribute angleType
How the angle is specified. Can be degrees or radians (default).


_oldAngle

private double _oldAngle

_oldAnchorX

private double _oldAnchorX

_oldAnchorY

private double _oldAnchorY
Constructor Detail

Rotate2D

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

_applyInitialTransform

protected void _applyInitialTransform(Figure figure)
                               throws IllegalActionException
Apply the initial rotation to the figure.

Specified by:
_applyInitialTransform in class GRTransform2D
Parameters:
figure - The figure the transformation is to be applied to.
Throws:
IllegalActionException - If the getToken() method throws such an exception.

_applyTransform

protected void _applyTransform(Figure figure)
                        throws IllegalActionException
Apply the current rotation transformation to the figure.

Specified by:
_applyTransform in class GRTransform2D
Parameters:
figure - The figure the transformation is to be applied to.
Throws:
IllegalActionException - If the getToken() method throws such an exception.