ptolemy.actor.lib.jai
Class JAIBorder

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.actor.lib.Transformer
                              extended by ptolemy.actor.lib.jai.JAIBorder
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 JAIBorder
extends Transformer

Adds a border to an image. The amount to pad must be specified for all four sides. There are five different borders to choose from.

Constant - A constant border adds constant values to the sides of the image. The user may specify either one constant to be applied to all bands, or one constant for each band.

Copy - This border copys the edges of the original image, and uses it to fill in the border values.

Reflect - This border reflects the edge of the image, and keeps flipping until it reaches the edge of the new image.

Wrap - This border periodically repeats the image and clamps the size to only include what is specified.

Zero - This border fills in the borders with zeros in each band.

Since:
Ptolemy II 3.0
Version:
$Id: JAIBorder.java 57040 2010-01-27 20:52:32Z cxh $
Author:
James Yeh
See Also:
Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Red (cxh)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private static int _BORDER_CONSTANT
           
private static int _BORDER_COPY
           
private static int _BORDER_REFLECT
           
private static int _BORDER_WRAP
           
private static int _BORDER_ZERO
           
private  int _borderType
          The type of border to use.
private  int _bottomPadding
          The amount to pad on the four sides.
private  double[] _constantValues
          The constant values to use if a constant border is desired.
private  DoubleToken[] _initialArray
          An initial array that simply copies a three banded image.
private  int _leftPadding
           
private  int _rightPadding
           
private  int _topPadding
           
 StringAttribute borderType
          The type of border to use.
 Parameter bottomPadding
          The amount of pixels to pad the bottom with.
 Parameter constants
          The constants to use if the Constant border type is chosen.
 Parameter leftPadding
          The amount of pixels to pad the left side with.
 Parameter rightPadding
          The amount of pixels to pad the right side with.
 Parameter topPadding
          The amount of pixels to pad the top with.
 
Fields inherited from class ptolemy.actor.lib.Transformer
input, output
 
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
JAIBorder(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
 void attributeChanged(Attribute attribute)
          Override the base class and set the border type and size.
 void fire()
          Fire this actor.
 
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, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, 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.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, 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, initialize, preinitialize, removeInitializable, wrapup
 
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

borderType

public StringAttribute borderType
The type of border to use.


constants

public Parameter constants
The constants to use if the Constant border type is chosen.


bottomPadding

public Parameter bottomPadding
The amount of pixels to pad the bottom with. The default is the integer value 0.


leftPadding

public Parameter leftPadding
The amount of pixels to pad the left side with. The default is the integer value 0.


rightPadding

public Parameter rightPadding
The amount of pixels to pad the right side with. The default is the integer value 0.


topPadding

public Parameter topPadding
The amount of pixels to pad the top with. The default is the integer value 0.


_constantValues

private double[] _constantValues
The constant values to use if a constant border is desired.


_borderType

private int _borderType
The type of border to use.


_initialArray

private DoubleToken[] _initialArray
An initial array that simply copies a three banded image.


_bottomPadding

private int _bottomPadding
The amount to pad on the four sides.


_leftPadding

private int _leftPadding

_rightPadding

private int _rightPadding

_topPadding

private int _topPadding

_BORDER_CONSTANT

private static final int _BORDER_CONSTANT
See Also:
Constant Field Values

_BORDER_COPY

private static final int _BORDER_COPY
See Also:
Constant Field Values

_BORDER_REFLECT

private static final int _BORDER_REFLECT
See Also:
Constant Field Values

_BORDER_WRAP

private static final int _BORDER_WRAP
See Also:
Constant Field Values

_BORDER_ZERO

private static final int _BORDER_ZERO
See Also:
Constant Field Values
Constructor Detail

JAIBorder

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

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
Override the base class and set the border type and size.

Overrides:
attributeChanged in class NamedObj
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the function is not recognized, or if a contained method throws it.

fire

public void fire()
          throws IllegalActionException
Fire this actor.

Specified by:
fire in interface Executable
Overrides:
fire in class AtomicActor
Throws:
IllegalActionException - If a contained method throws it, or if a token is received that contains a null image.