VisualSim.simulators.gr.lib
Class Rotate2D

java.lang.Object
  extended byVisualSim.kernel.util.NamedObj
      extended byVisualSim.kernel.InstantiableNamedObj
          extended byVisualSim.kernel.Entity
              extended byVisualSim.kernel.ComponentEntity
                  extended byVisualSim.actor.AtomicActor
                      extended byVisualSim.actor.TypedAtomicActor
                          extended byVisualSim.simulators.gr.kernel.GRActor
                              extended byVisualSim.simulators.gr.kernel.GRActor2D
                                  extended byVisualSim.simulators.gr.lib.GRTransform2D
                                      extended byVisualSim.simulators.gr.lib.Rotate2D
All Implemented Interfaces:
VisualSim.actor.Actor, VisualSim.kernel.util.Changeable, java.lang.Cloneable, VisualSim.kernel.util.Debuggable, VisualSim.kernel.util.DebugListener, VisualSim.kernel.util.Derivable, VisualSim.actor.Executable, VisualSim.kernel.util.Instantiable, VisualSim.kernel.util.ModelErrorHandler, VisualSim.kernel.util.MoMLExportable, VisualSim.kernel.util.Moveable, VisualSim.kernel.util.Nameable, java.io.Serializable, VisualSim.actor.TypedActor

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:
VisualSim4.0
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class VisualSim.kernel.Entity
VisualSim.kernel.Entity.ContainedObjectsIterator
 
Field Summary
 VisualSim.actor.TypedIOPort anchorX
          The X coordinate of the point the figure is to be rotated about.
 VisualSim.actor.TypedIOPort anchorY
          The Y coordinate of the point the figure is to be rotated about.
 VisualSim.kernel.util.StringAttribute angleType
          How the angle is specified.
 VisualSim.data.expr.Parameter initialAnchorX
          The initial x-coordinate of the anchor point.
 VisualSim.data.expr.Parameter initialAnchorY
          The initial y-coordinate of the anchor point.
 VisualSim.data.expr.Parameter initialTheta
          The initial angle of rotation.
 VisualSim.actor.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 VisualSim.simulators.gr.lib.GRTransform2D
accumulate, sceneGraphIn, sceneGraphOut
 
Fields inherited from class VisualSim.simulators.gr.kernel.GRActor2D
_viewScreen
 
Fields inherited from class VisualSim.simulators.gr.kernel.GRActor
_allowAttributeChanges, _isSceneGraphInitialized
 
Fields inherited from class VisualSim.actor.AtomicActor
_stopRequested, Block_Documentation
 
Fields inherited from class VisualSim.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Fields inherited from interface VisualSim.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Constructor Summary
Rotate2D(VisualSim.kernel.CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
protected  void _applyInitialTransform(diva.canvas.Figure figure)
          Apply the initial rotation to the figure.
protected  void _applyTransform(diva.canvas.Figure figure)
          Apply the current rotation transformation to the figure.
 
Methods inherited from class VisualSim.simulators.gr.lib.GRTransform2D
_isAccumulating, _makeSceneGraphConnection, fire, initialize
 
Methods inherited from class VisualSim.simulators.gr.kernel.GRActor2D
_setViewScreen
 
Methods inherited from class VisualSim.simulators.gr.kernel.GRActor
wrapup
 
Methods inherited from class VisualSim.actor.TypedAtomicActor
_addPort, attributeTypeChanged, clone, newPort, typeConstraintList
 
Methods inherited from class VisualSim.actor.AtomicActor
_createReceivers, clone, connectionsChanged, getDirector, getExecutiveDirector, getFunctionDependency, getManager, inputPortList, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, removeDependency, setContainer, stop, stopFire, terminate
 
Methods inherited from class VisualSim.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 
Methods inherited from class VisualSim.kernel.Entity
_description, _exportMoMLContents, _removePort, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName, validateSettables
 
Methods inherited from class VisualSim.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition
 
Methods inherited from class VisualSim.kernel.util.NamedObj
_addAttribute, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, getAttribute, getAttributes, getChangeListeners, getClassName, getDerivedLevel, getDerivedList, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setModelErrorHandler, setNormalDebugging, setPersistent, setSource, setVerboseDebugging, sortContainedObjects, toplevel, toString, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface VisualSim.actor.Actor
getDirector, getExecutiveDirector, getFunctionDependency, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface VisualSim.actor.Executable
iterate, postfire, prefire, preinitialize, stop, stopFire, terminate
 
Methods inherited from interface VisualSim.kernel.util.Nameable
description, getContainer, getFullName, getName, getName, setName
 
Methods inherited from interface VisualSim.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

theta

public VisualSim.actor.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 VisualSim.actor.TypedIOPort anchorX
The X coordinate of the point the figure is to be rotated about. The default double value is 0.0.


anchorY

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


initialTheta

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


initialAnchorX

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


initialAnchorY

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


angleType

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

Constructor Detail

Rotate2D

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

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

_applyInitialTransform

protected void _applyInitialTransform(diva.canvas.Figure figure)
                               throws VisualSim.kernel.util.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:
VisualSim.kernel.util.IllegalActionException - If the getToken() method throws such an exception.

_applyTransform

protected void _applyTransform(diva.canvas.Figure figure)
                        throws VisualSim.kernel.util.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:
VisualSim.kernel.util.IllegalActionException - If the getToken() method throws such an exception.