|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.wireless.lib.NodeRandomizer
public class NodeRandomizer
This actor, when fired, randomizes the locations of all actors in the same container that contain an attribute named "randomize" with value true. It can also optionally perform the randomization in its initialize() method. In both cases, the randomization is performed in a change request, so it will take effect after the current iteration.
This actor assumes that the location is represented in an object of class Locatable (which is an attribute that implements Settable) with name "_location". This is how Vergil represents locations.
The range parameter is an array of arrays giving the range of possible values for each dimension of the location. For example, if the location is in two dimensions, then range has the form {{x1, x2}, {y1, y2}}, indicating that the X value of the location is uniformly distributed between x1 and x2, and that the Y value is uniformly distributed between y1 and y2.
If the resetOnEachRun parameter is true (the default value), then each run resets the random number generator. If the seed is non-zero, then this makes each run identical. This is useful for constructing tests. If the seed is zero, then a new seed is generated on each run (using the current time and the hash code of this object).
The maxPrecision parameter specifies the number of digits to be used when generating a random location; results are rounded to this precision. If the value is 0 (the default value), then use the maximum precision allowed by the Java double type and the random number generator.
Locatable
,
Serialized Form
Red (sanjeev) |
Yellow (eal) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
private java.math.MathContext |
_mathContext
|
private java.util.Random |
_random
|
Parameter |
maxPrecision
The maximum precision (number of digits to be used, results are rounded to this precision) of the generated locations. |
Parameter |
randomizeInInitialize
If set to true, randomly distribute nodes in initialize(). |
Parameter |
range
The range of values for locations to be set when randomizing. |
Parameter |
resetOnEachRun
If set to true, reset the random number generator with the seed value each time preinitialize() is invoked. |
Parameter |
seed
The seed that controls the random number generation to use when randomizing. |
TypedIOPort |
trigger
A trigger input to cause this actor to fire in domains that require a trigger. |
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 | |
---|---|
NodeRandomizer(CompositeEntity container,
java.lang.String name)
Construct an actor in the given container with the given name. |
Method Summary | |
---|---|
protected java.lang.String |
_getLocationSetMoML(CompositeEntity container,
Entity node,
double[] location)
Return moml that will set the location of the specified node. |
protected void |
_randomize()
Randomly distribute the nodes in the model that contain a boolean valued parameter named "randomize" with value true. |
void |
attributeChanged(Attribute attribute)
Override the base class to react to changes in maxPrecision. |
void |
fire()
Issue a change request to randomize the locations of the nodes. |
void |
initialize()
Override the base class to randomize the positions of the nodes if randomizeInInitialize is set to true. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
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 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, 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 |
---|
public Parameter maxPrecision
public Parameter randomizeInInitialize
public Parameter range
public Parameter resetOnEachRun
public Parameter seed
public TypedIOPort trigger
private java.math.MathContext _mathContext
private java.util.Random _random
Constructor Detail |
---|
public NodeRandomizer(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- Container of the actor.name
- Name of the actor.
IllegalActionException
- If the
actor is not compatible with the specified container.
NameDuplicationException
- If the name collides
with an entity in the container.Method Detail |
---|
public void attributeChanged(Attribute attribute) throws IllegalActionException
attributeChanged
in class NamedObj
attribute
- The attribute that changed.
IllegalActionException
- If the change is not acceptable
to this container (not thrown in this base class).public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- If the superclass throws it.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor
IllegalActionException
- If the initialize() method of
one of the associated actors throws it, or if the range parameter
is malformed.protected void _randomize() throws IllegalActionException
IllegalActionException
- If the range parameter is malformed.protected java.lang.String _getLocationSetMoML(CompositeEntity container, Entity node, double[] location) throws IllegalActionException
container
- The container.location
- The specified location.node
- The node for which to set the location.
IllegalActionException
- If the location attribute
cannot be set.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |