ptolemy.domains.gr.lib
Class Scale3D

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.Scale3D
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 Scale3D
extends GRTransform

Conceptually, this actor takes 3D geometry in its input and produces a scaled 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. Scaling can be done uniformly or non-uniformly. Uniform scaling scales the input geometry equally in all directions. Uniform scaling is done through modification of the scaleFactor parameter. Non-uniform scaling involves preferential scaling of the input geometry in a specified Cartesian axis. Non-uniform scaling is done through modification of the xScale, yScale, and zScale parameters.

Since:
Ptolemy II 1.0
Version:
$Id: Scale3D.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 _scaleXState
           
private  double _scaleYState
           
private  double _scaleZState
           
protected  javax.media.j3d.TransformGroup _transformNode
          The encapsulated Java 3D node of this actor.
 Parameter scaleFactor
          The scale factor.
 TypedIOPort scaleInput
          The amount of rescaling during firing.
 Parameter xScale
          The scale factor in the Cartesian x-axis.
 Parameter yScale
          The scale factor in the Cartesian y-axis.
 Parameter zScale
          The scale factor in the Cartesian z-axis.
 
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
Scale3D(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)
          Add a scene graph child node to this actor.
private  double _getInitialScaleX()
          Get the scaling factor in the x-axis
private  double _getInitialScaleY()
          Get the scaling factor in the y-axis
private  double _getInitialScaleZ()
          Get the scaling factor in the z-axis
protected  javax.media.j3d.Node _getNodeObject()
          Return the encapsulated Java3D node of this 3D actor.
 void fire()
          Check the input port for scaling input.
 void initialize()
          Setup the transformation needed for scaling.
 
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

scaleInput

public TypedIOPort scaleInput
The amount of rescaling during firing. If this transform is in accumulate mode, the scaling value is accumulated


scaleFactor

public Parameter scaleFactor
The scale factor. This parameter should contain a DoubleToken. The default value of this parameter is the DoubleToken 1.0


xScale

public Parameter xScale
The scale factor in the Cartesian x-axis. This parameter should contain a DoubleToken. The default value of this parameter is the DoubleToken 1.0


yScale

public Parameter yScale
The scale factor in the Cartesian y-axis. This parameter should contain a DoubleToken. The default value of this parameter is the DoubleToken 1.0


zScale

public Parameter zScale
The scale factor in the Cartesian z-axis. This parameter should contain a DoubleToken. The default value of this parameter is the DoubleToken 1.0


_transformNode

protected javax.media.j3d.TransformGroup _transformNode
The encapsulated Java 3D node of this actor.


_scaleXState

private double _scaleXState

_scaleYState

private double _scaleYState

_scaleZState

private double _scaleZState
Constructor Detail

Scale3D

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

fire

public void fire()
          throws IllegalActionException
Check the input port for scaling input.

Specified by:
fire in interface Executable
Overrides:
fire in class GRActor
Throws:
IllegalActionException - If the value of some parameters can't be obtained

initialize

public void initialize()
                throws IllegalActionException
Setup the transformation needed for scaling.

Specified by:
initialize in interface Initializable
Overrides:
initialize in class GRTransform
Throws:
IllegalActionException - If the current director is not a GRDirector.

_addChild

protected void _addChild(javax.media.j3d.Node node)
Add a scene graph child node to this actor.

Overrides:
_addChild in class GRActor3D
Parameters:
node - The child node to be attached.

_getNodeObject

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

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

_getInitialScaleX

private double _getInitialScaleX()
                          throws IllegalActionException
Get the scaling factor in the x-axis

Returns:
the scaling factor in the x-axis
Throws:
IllegalActionException - If the value of some parameters can't be obtained

_getInitialScaleY

private double _getInitialScaleY()
                          throws IllegalActionException
Get the scaling factor in the y-axis

Returns:
the scaling factor in the y-axis
Throws:
IllegalActionException - If the value of some parameters can't be obtained

_getInitialScaleZ

private double _getInitialScaleZ()
                          throws IllegalActionException
Get the scaling factor in the z-axis

Returns:
the scaling factor in the z-axis
Throws:
IllegalActionException - If the value of some parameters can't be obtained