public abstract class PointAttachment extends DynamicAttachment implements CopyableComponent
ModelComponent.NavpanelVisibility
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, myProps, NULL_OBJ, useCompactPathNames
COPY_REFERENCES
Constructor and Description |
---|
PointAttachment() |
Modifier and Type | Method and Description |
---|---|
abstract void |
addScaledExternalForce(Point3d pnt,
double s,
Vector3d f)
Distributes an external force applied at a particular point
to all masters
|
abstract void |
computePosState(Vector3d pos) |
PointAttachment |
copy(int flags,
java.util.Map<ModelComponent,ModelComponent> copyMap)
Create a copy of this component.
|
boolean |
getCopyReferences(java.util.List<ModelComponent> refs,
ModelComponent ancestor)
Collects external references which must also be copied in order to
duplicate this component.
|
Point |
getPoint() |
Point |
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.
|
boolean |
isDuplicatable()
Returns true if this component can be duplicated.
|
void |
writeItems(java.io.PrintWriter pw,
NumberFormat fmt,
CompositeComponent ancestor) |
addAttachmentJacobian, addMassToMaster, addSolveBlocks, applyForces, clone, connectToHierarchy, containsLoop, containsLoops, containsMaster, createOrderedList, getDerivative, getMasters, numMasters, reduceConstraints, reduceMass, reduceRowMatrix, transformSlaveGeometry, updateAttachment, updatePosStates, updateVelStates
checkFlag, checkName, checkNameUniqueness, clearFlag, createTempFlag, disconnectFromHierarchy, getAllPropertyInfo, getChildren, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, hasState, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences
getAllPropertyInfo, getProperty
getChildren, hasChildren
isWritable, write
public Point getSlave()
DynamicAttachment
null
.getSlave
in class DynamicAttachment
public Point getPoint()
public int getSlaveSolveIndex()
DynamicAttachment
DynamicAttachment.getSlave()
),
this method returns -1.getSlaveSolveIndex
in class DynamicAttachment
public abstract void addScaledExternalForce(Point3d pnt, double s, Vector3d f)
pnt
- point at which to apply the force (to be used to compute a wrench)s
- force scale factorf
- force vector to applypublic void writeItems(java.io.PrintWriter pw, NumberFormat fmt, CompositeComponent ancestor) throws java.io.IOException
java.io.IOException
public PointAttachment copy(int flags, java.util.Map<ModelComponent,ModelComponent> copyMap)
CopyableComponent
COPY_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 CopyableComponent
copy
in class DynamicAttachment
public abstract void computePosState(Vector3d pos)
public 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 CopyableComponent
true
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 CopyableComponent
refs
- list to which references are appendedancestor
- root node of the hierarchy from which references are to be excluded