artisynth.core.mechmodels
Class MuscleExciter

java.lang.Object
  extended by artisynth.core.modelbase.ModelComponentBase
      extended by artisynth.core.mechmodels.MuscleExciter
All Implemented Interfaces:
ExcitationComponent, RequiresInitialize, ModelComponent, java.lang.Cloneable, HasProperties, HierarchyNode, Scannable

public class MuscleExciter
extends ModelComponentBase
implements ExcitationComponent


Nested Class Summary
 
Nested classes/interfaces inherited from interface artisynth.core.mechmodels.ExcitationComponent
ExcitationComponent.CombinationRule
 
Nested classes/interfaces inherited from interface artisynth.core.modelbase.ModelComponent
ModelComponent.NavpanelVisibility
 
Field Summary
static PropertyList myProps
           
 
Fields inherited from class artisynth.core.modelbase.ModelComponentBase
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
 
Constructor Summary
MuscleExciter()
           
MuscleExciter(java.lang.String name)
           
 
Method Summary
 void addExcitationSource(ExcitationComponent ex)
          Adds a new excitation source to this Excitable, with an assumed gain of 1.
 void addExcitationSource(ExcitationComponent ex, double gain)
          Adds a new excitation source to this Excitable with a specified gain.
 void addTarget(ExcitationComponent ex, double gain)
           
 int findTarget(ExcitationComponent ex)
           
 PropertyList getAllPropertyInfo()
          Returns a list giving static information about all properties exported by this object.
 ExcitationComponent.CombinationRule getCombinationRule()
          Return the combination rule for excitations.
 double getDefaultActivationWeight()
          Returns the default weight that should be used when this excitation component is being used for inverse actuation control.
 double getExcitation()
          Returns the primary excitation for this component.
 double getExcitationGain(ExcitationComponent ex)
          Gets the gain for an excitation source in this component.
 double getGain(int idx)
           
 double getNetExcitation()
          Returns the net excitation for this Excitable.
 void getSoftReferences(java.util.List<ModelComponent> refs)
          Appends all soft references for this component to a list.
 ExcitationComponent getTarget(int idx)
           
 ListView<ExcitationComponent> getTargetView()
           
 void initialize(double t)
          Called from within the model's initialize() method.
 int numTargets()
           
 void removeAllTargets()
           
 boolean removeExcitationSource(ExcitationComponent ex)
          Removes an excitation source from this Excitable.
 int removeTarget(ExcitationComponent ex)
           
 void setCombinationRule(ExcitationComponent.CombinationRule rule)
          Sets the rule for combining excitations.
 void setExcitation(double a)
          Sets the primary excitation for this component.
 boolean setExcitationGain(ExcitationComponent ex, double gain)
          Sets the gain for an excitation source in this component.
 void setGain(ExcitationComponent ex, double gain)
           
 void setGain(int idx, int gain)
           
 void updateReferences(boolean undo, java.util.Deque<java.lang.Object> undoInfo)
          May be called by the system if any of the soft references for this component are removed from the the component hierarchy.
 
Methods inherited from class artisynth.core.modelbase.ModelComponentBase
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, connectToHierarchy, copy, createTempFlag, disconnectFromHierarchy, getChildren, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, hasChildren, hasState, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, write
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface artisynth.core.modelbase.ModelComponent
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected
 
Methods inherited from interface maspack.properties.HasProperties
getProperty
 
Methods inherited from interface maspack.properties.HierarchyNode
getChildren, hasChildren
 
Methods inherited from interface maspack.util.Scannable
isWritable, write
 

Field Detail

myProps

public static PropertyList myProps
Constructor Detail

MuscleExciter

public MuscleExciter()

MuscleExciter

public MuscleExciter(java.lang.String name)
Method Detail

getAllPropertyInfo

public PropertyList getAllPropertyInfo()
Description copied from interface: HasProperties
Returns a list giving static information about all properties exported by this object.

Specified by:
getAllPropertyInfo in interface HasProperties
Overrides:
getAllPropertyInfo in class ModelComponentBase
Returns:
static information for all exported properties

findTarget

public int findTarget(ExcitationComponent ex)

getExcitation

public double getExcitation()
Returns the primary excitation for this component.

Specified by:
getExcitation in interface ExcitationComponent
Returns:
primary excitation value

initialize

public void initialize(double t)
Called from within the model's initialize() method.

Specified by:
initialize in interface RequiresInitialize
Parameters:
t - initialization time (seconds)

setExcitation

public void setExcitation(double a)
Sets the primary excitation for this component.

Specified by:
setExcitation in interface ExcitationComponent
Parameters:
a - excitation value

setCombinationRule

public void setCombinationRule(ExcitationComponent.CombinationRule rule)
Sets the rule for combining excitations.

Specified by:
setCombinationRule in interface ExcitationComponent
Parameters:
rule - rule for combining excitations

getCombinationRule

public ExcitationComponent.CombinationRule getCombinationRule()
Return the combination rule for excitations.

Specified by:
getCombinationRule in interface ExcitationComponent
Returns:
combination rule for excitations

addExcitationSource

public void addExcitationSource(ExcitationComponent ex)
Adds a new excitation source to this Excitable, with an assumed gain of 1.

Specified by:
addExcitationSource in interface ExcitationComponent
Parameters:
ex - excitatation source to be added

addExcitationSource

public void addExcitationSource(ExcitationComponent ex,
                                double gain)
Adds a new excitation source to this Excitable with a specified gain.

Specified by:
addExcitationSource in interface ExcitationComponent
Parameters:
ex - excitatation source to be added
gain - gain for the source

removeExcitationSource

public boolean removeExcitationSource(ExcitationComponent ex)
Removes an excitation source from this Excitable. Returns false if the source was not present.

Specified by:
removeExcitationSource in interface ExcitationComponent
Parameters:
ex - excitatation source to be removed
Returns:
true if the source was present and removed

getExcitationGain

public double getExcitationGain(ExcitationComponent ex)
Gets the gain for an excitation source in this component.

Specified by:
getExcitationGain in interface ExcitationComponent
Parameters:
ex - excitatation source whose gain is to be queried
Returns:
source gain value, or -1 if the source is not present in this component.

setExcitationGain

public boolean setExcitationGain(ExcitationComponent ex,
                                 double gain)
Sets the gain for an excitation source in this component.

Specified by:
setExcitationGain in interface ExcitationComponent
Parameters:
ex - excitatation source whose gain is to be modified
gain - new gain for the source
Returns:
false if the source is not present in this component.

getNetExcitation

public double getNetExcitation()
Returns the net excitation for this Excitable. The net excitation is the combination of the primary excitation and the net excitations of all the excitation sources.

Specified by:
getNetExcitation in interface ExcitationComponent

numTargets

public int numTargets()

addTarget

public void addTarget(ExcitationComponent ex,
                      double gain)

removeTarget

public int removeTarget(ExcitationComponent ex)

removeAllTargets

public void removeAllTargets()

getTarget

public ExcitationComponent getTarget(int idx)

getTargetView

public ListView<ExcitationComponent> getTargetView()

getGain

public double getGain(int idx)

setGain

public void setGain(int idx,
                    int gain)

setGain

public void setGain(ExcitationComponent ex,
                    double gain)

getDefaultActivationWeight

public double getDefaultActivationWeight()
Description copied from interface: ExcitationComponent
Returns the default weight that should be used when this excitation component is being used for inverse actuation control.

Specified by:
getDefaultActivationWeight in interface ExcitationComponent

getSoftReferences

public void getSoftReferences(java.util.List<ModelComponent> refs)
Description copied from class: ModelComponentBase
Appends all soft references for this component to a list. References are other components, outside of this component's immediate ancestry, on which this component depends. For example, an ExcitationComponent may refer to one or more other ExcitationComponents to act as excitation sources. A soft reference is one which can be removed from the referring component. In particular, if any soft references for a component are deleted, then that component's updateReferences() method will be called to update its internal reference information.

Specified by:
getSoftReferences in interface ModelComponent
Overrides:
getSoftReferences in class ModelComponentBase
Parameters:
refs - list to which soft references are appended

updateReferences

public void updateReferences(boolean undo,
                             java.util.Deque<java.lang.Object> undoInfo)
May be called by the system if any of the soft references for this component are removed from the the component hierarchy. If called with undo equal to false, this component should then examine its soft references and use ComponentUtils.isConnected() to determine which of them have been disconnected from the hierarchy. Disconnected references should be removed, and sufficient information should be appended to undoInfo to allow this update to be undone if this method is called later with undo equal to true. When undoing an update, the undo information should be removed from the front of undoInfo.

Specified by:
updateReferences in interface ModelComponent
Overrides:
updateReferences in class ModelComponentBase
Parameters:
undo - if true, indicates that the most recent reference update should be undone, using the supplied undo information.
undoInfo - if undo is false, should be used to store information allowing the reference update to be undone. Otherwise, if undo is true, then this supplied information to undo the most recent update.