public abstract class FrameAttachment extends DynamicAttachment implements CopyableComponent, ScalableUnits
ModelComponent.NavpanelVisibilityenforceUniqueCompositeNames, enforceUniqueNames, myNumber, myProps, NULL_OBJ, useCompactPathNamesCOPY_REFERENCES| Constructor and Description | 
|---|
| FrameAttachment() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | applyForces() | 
| FrameAttachment | copy(int flags,
    java.util.Map<ModelComponent,ModelComponent> copyMap)Create a copy of this component. | 
| abstract double | getAverageMasterInertia()Returns the average rotational inertia of the master components as seen
 by the attached frame. | 
| abstract double | getAverageMasterMass()Returns the average mass of the master components as seen by the attached
 frame. | 
| boolean | getCopyReferences(java.util.List<ModelComponent> refs,
                 ModelComponent ancestor)Collects external references which must also be copied in order to
 duplicate this component. | 
| abstract void | getCurrentTFW(RigidTransform3d TFW)Returns the current pose of the attached frame, in world coordinates. | 
| abstract void | getCurrentVel(Twist vel,
             Twist dvel)Returns the current velocity of the attached frame, in frame coordinates. | 
| Frame | getFrame() | 
| MatrixBlock[] | getMasterBlocks() | 
| DynamicComponent[] | getMasters() | 
| Frame | getSlave()Returns the slave DynamicMechComponent associated with this attachment. | 
| int | getSlaveSolveIndex()Returns the block index within the system solve matrix of the 
 slave DynamicMechComponent associated with this attachment. | 
| abstract void | getUndeformedTFW(RigidTransform3d TFW)Returns the current undeformed pose of the attached frame, in world
 coordinates. | 
| void | invalidateMasters() | 
| boolean | isDuplicatable()Returns true if this component can be duplicated. | 
| abstract boolean | isFlexible()Indicates that this attachment is flexible. | 
| int | numMasters() | 
| void | scaleMass(double m)Nothing to do for scale mass. | 
| abstract boolean | setCurrentTFW(RigidTransform3d TFW)Sets the current pose of the attached frame, in world coordinates. | 
| void | transformGeometry(AffineTransform3dBase X,
                 RigidTransform3d TFW) | 
| void | writeItems(java.io.PrintWriter pw,
          NumberFormat fmt,
          CompositeComponent ancestor) | 
addAttachmentJacobian, addBackRefs, addMassToMasters, addSolveBlocks, clone, connectToHierarchy, containsLoop, containsLoops, containsMaster, createOrderedList, disconnectFromHierarchy, getDerivative, getHardReferences, oneMasterActive, reduceConstraints, reduceMass, reduceRowMatrix, removeBackRefs, updateAttachment, updatePosStates, updateVelStatescheckFlag, checkName, checkNameUniqueness, clearFlag, createTempFlag, getAllPropertyInfo, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, hasState, isConnectedToHierarchy, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences, writeequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitconnectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferencesgetAllPropertyInfo, getPropertygetChildren, hasChildrenisWritable, writescaleDistancepublic Frame getSlave()
DynamicAttachmentnull.getSlave in class DynamicAttachmentpublic Frame getFrame()
public int getSlaveSolveIndex()
DynamicAttachmentDynamicAttachment.getSlave()),
 this method returns -1.getSlaveSolveIndex in class DynamicAttachmentpublic DynamicComponent[] getMasters()
getMasters in class DynamicAttachmentpublic MatrixBlock[] getMasterBlocks()
public int numMasters()
numMasters in class DynamicAttachmentpublic void invalidateMasters()
invalidateMasters in class DynamicAttachmentpublic abstract boolean isFlexible()
true if this attachment is flexible.public abstract void getCurrentTFW(RigidTransform3d TFW)
TFW - used to return current frame pose.public abstract void getUndeformedTFW(RigidTransform3d TFW)
getCurrentTFW().TFW - used to return current undeformed frame pose.isFlexible()public abstract boolean setCurrentTFW(RigidTransform3d TFW)
TFW - new pose for the attached frame, in world coordinatestrue if the underlying master 
 components have changedpublic abstract void getCurrentVel(Twist vel, Twist dvel)
\dot J velmwhere
J is the matrix that maps master velocities
 to the attached frame velocity (in frame coordinates), and velm
 are the master velocities.vel - used to return current frame velocitydvel - if not null, returns the velocity derivative termpublic abstract double getAverageMasterMass()
public abstract double getAverageMasterInertia()
public void writeItems(java.io.PrintWriter pw,
                       NumberFormat fmt,
                       CompositeComponent ancestor)
                throws java.io.IOException
java.io.IOExceptionpublic FrameAttachment copy(int flags, java.util.Map<ModelComponent,ModelComponent> copyMap)
CopyableComponentCOPY_REFERENCES
 is set in flags, then any component referenced
 by this component should itself be set to a copy. This
 should be done first checking copyMap for an 
 existing copy of the referenced component. If there is no existing
 copy, then a copy should be created by calling copy
 recursively and adding the new copy to copyMap.copy in interface CopyableComponentcopy in class DynamicAttachmentflags - flags to control the copyingcopyMap - map to possible existing instances of referenced
 componentspublic void applyForces()
applyForces in class DynamicAttachmentpublic boolean isDuplicatable()
true if and only if CopyableComponent.getCopyReferences(java.util.List<artisynth.core.modelbase.ModelComponent>, artisynth.core.modelbase.ModelComponent) returns true.
 This method is not currently used. It is intended to provide a faster
 way of determining if a component can be duplicated, without having to
 use CopyableComponent.getCopyReferences(java.util.List<artisynth.core.modelbase.ModelComponent>, artisynth.core.modelbase.ModelComponent) to build the list of copy references.
isDuplicatable in interface CopyableComponenttrue if this component can be duplicated.public boolean getCopyReferences(java.util.List<ModelComponent> refs, ModelComponent ancestor)
true if and only if CopyableComponent.isDuplicatable() returns
 true.getCopyReferences in interface CopyableComponentrefs - list to which references are appendedancestor - root node of the hierarchy from which references are to be excludedpublic void scaleMass(double m)
scaleMass in interface ScalableUnitsm - scaling factorpublic void transformGeometry(AffineTransform3dBase X, RigidTransform3d TFW)