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)