ptolemy.actor.lib
Class Interpolator
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.Source
ptolemy.actor.lib.LimitedFiringSource
ptolemy.actor.lib.SequenceSource
ptolemy.actor.lib.Interpolator
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, SequenceActor, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class Interpolator
- extends SequenceSource
Produce an interpolation based on the parameters.
This class uses the Interpolation class in the math package to compute
the interpolation.
The values parameter specifies a sequence of values
to produce at the output. The indexes parameter specifies
when those values should be produced.
The values and indexes parameters must both contain
arrays, and have equal lengths or an exception will be thrown.
The indexes array must be increasing and non-negative.
The values are periodic if the period parameter contains a
positive value. In this case, the period must be greater than the
largest index, and values within the index range 0 to (period-1) are
repeated indefinitely. If the period is zero, the values are not
periodic, and the values outside the range of the indexes are
considered to be 0.0. The order parameter
specifies which order of interpolation to apply whenever the
iteration count does not match an index in indexes.
The Interpolation class currently supports zero, first, and third
order interpolations. The default parameter are those set in the
Interpolation class.
This actor counts iterations. Whenever the iteration count matches an entry
in the indexes array, the corresponding entry (at the same position)
in the values array is produced at the output. Whenever the iteration
count does not match a value in the indexes array, an interpolation
of the values is produced at the output.
Output type is DoubleToken.
- Since:
- Ptolemy II 0.3
- Version:
- $Id: Interpolator.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Sarah Packman, Yuhong Xiong
- See Also:
Interpolation
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Constructor Summary |
Interpolator(CompositeEntity container,
java.lang.String name)
Construct an actor with the specified container and name. |
Method Summary |
void |
attributeChanged(Attribute attribute)
Check the validity of the parameter. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Output the value at the current iteration count. |
void |
initialize()
Set the iteration count to zero. |
boolean |
postfire()
Update the iteration counter, then call the super class method. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
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.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 |
indexes
public Parameter indexes
- The indexes at which the specified values will be produced.
This parameter is an array of integers, with default value {0, 1}.
order
public Parameter order
- The order of interpolation for non-index iterations.
This parameter must contain an IntToken.
period
public Parameter period
- The period of the reference values.
This parameter must contain an IntToken.
values
public Parameter values
- The values that will be produced at the specified indexes.
This parameter is an array, with default value {1.0, 0.0}.
_indexes
private transient int[] _indexes
_iterationCount
private int _iterationCount
_interpolation
private Interpolation _interpolation
_values
private transient double[] _values
Interpolator
public Interpolator(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor with the specified container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the entity cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- Check the validity of the parameter.
- Overrides:
attributeChanged
in class LimitedFiringSource
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
- If the argument is the
values parameter and it does not contain an one dimensional
array; or the argument is the indexes parameter and it does
not contain an one dimensional array or is not increasing and
non-negative; or the argument is the period parameter and is
negative; or the argument is the order parameter and the order
is not supported by the Interpolation class.
clone
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
- Clone the actor into the specified workspace. This calls the
base class and then initializes private variables.
public members to the parameters of the new actor.
- Overrides:
clone
in class AtomicActor
- Parameters:
workspace
- The workspace for the new object.
- Returns:
- A new actor.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
fire
public void fire()
throws IllegalActionException
- Output the value at the current iteration count. The output is
one of the reference values if the iteration count matches one
of the indexes, or is interpolated otherwise.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class Source
- Throws:
IllegalActionException
- If the values and
indexes parameters do not contain arrays of the same length,
or the period is not 0 and not greater than the largest index.
initialize
public void initialize()
throws IllegalActionException
- Set the iteration count to zero.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class LimitedFiringSource
- Throws:
IllegalActionException
- If the super class throws it.
postfire
public boolean postfire()
throws IllegalActionException
- Update the iteration counter, then call the super class method.
- Specified by:
postfire
in interface Executable
- Overrides:
postfire
in class LimitedFiringSource
- Returns:
- A boolean returned by the super class method.
- Throws:
IllegalActionException
- If the super class throws it.