public class FemMarker extends Marker
ModelComponent.FilePathSaveType, ModelComponent.NavpanelVisibility| Modifier and Type | Field and Description |
|---|---|
static PropertyList |
myProps |
myRenderCoordsenforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNamesCOPY_REFERENCES, REST_POSITIONTG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATINGTRANSPARENT, TWO_DIMENSIONAL| Constructor and Description |
|---|
FemMarker() |
FemMarker(double x,
double y,
double z) |
FemMarker(FemElement elem,
double x,
double y,
double z) |
FemMarker(FemElement elem,
Point3d pos) |
FemMarker(Point3d pos) |
| Modifier and Type | Method and Description |
|---|---|
int |
addTargetJacobian(SparseBlockMatrix J,
int bi)
Add a row to the motion target Jacobian for this motion target.
|
FemMarker |
copy(int flags,
java.util.Map<ModelComponent,ModelComponent> copyMap)
Create a copy of this component.
|
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
PointFem3dAttachment |
getAttachment()
Returns the slave attachment associated with this component, if any.
|
VectorNd |
getCoordinates() |
boolean |
getCopyReferences(java.util.List<ModelComponent> refs,
ModelComponent ancestor)
Collects external references which must also be copied in order to
duplicate this component.
|
FemElement |
getElement() |
FemModel3d |
getFemModel() |
void |
getRestPosition(Point3d pos) |
boolean |
isDuplicatable()
Returns true if this component can be duplicated.
|
boolean |
resetElement(FemModel3d model)
Called when the marker is moved (or when we remesh underneath it)
and we need to redetermine which element this marker is embedded in.
|
boolean |
resetElement(FemModel3d model,
boolean project)
Called when the marker is moved (or when we remesh underneath it)
and we need to redetermine which element this marker is embedded in.
|
void |
scaleDistance(double s)
Scales all distance coordinates.
|
void |
setAttached(DynamicAttachment ax)
Attach this component to another via a DynamicAttachment object.
|
void |
setFromElement(FemElement elem)
Attaches this marker to the specified FEM element.
|
void |
setFromFem(FemModel3d fem)
Attaches this marker to the nearest element in the specified FEM model,
projecting the marker's position onto the model surface if it lies
outside.
|
boolean |
setFromNodes(java.util.Collection<? extends FemNode> nodes)
Attaches this marker to the specified nodes using inverse-distance
weighting based on the marker's current position.
|
void |
setFromNodes(java.util.Collection<? extends FemNode> nodes,
VectorNd weights)
Attaches this marker to a weighted combination of the specified nodes.
|
boolean |
setFromNodes(FemNode[] nodes)
Attaches this marker to the specified nodes using inverse-distance
weighting based on the marker's current position.
|
void |
setFromNodes(FemNode[] nodes,
double[] weights)
Attaches this marker to a weighted combination of the specified nodes.
|
void |
updateAttachment() |
void |
updatePosState() |
void |
updateState() |
void |
updateVelState() |
connectAttachment, connectToHierarchy, disconnectFromHierarchy, getAttachments, getHardReferencesaddEffectiveMass, addExternalForce, addForce, addForce, addPosImpulse, addPosJacobian, addScaledExternalForce, addScaledForce, addSolveBlock, addSolveBlocks, addToPointVelocity, addToSolveBlockDiagonal, addTransformableDependencies, addVelJacobian, applyExternalForces, applyForces, applyGravity, createMassBlock, createRenderProps, createSolveBlock, defaultRenderPropsAreNull, distance, distance, getEffectiveMass, getEffectiveMass, getEffectiveMassForces, getExternalForce, getForce, getForce, getJacobianType, getMass, getMass, getPointDamping, getPointDampingMode, getPosDerivative, getPosition, getPosition, getPosState, getPosStateSize, getRenderCoords, getRenderProps, getSelection, getState, getTargetActivity, getTargetPos, getTargetPosition, getTargetVel, getTargetVelocity, getTraceablePositionProperty, getTraceables, getVelocity, getVelocity, getVelState, getVelStateSize, hasForce, isMassConstant, isSelectable, mulInverseEffectiveMass, prerender, render, resetEffectiveMass, resetTargets, scaleMass, setContactConstraint, setExternalForce, setForce, setForce, setPointDamping, setPointDampingMode, setPosition, setPosition, setPosState, setRandomForce, setRandomPosState, setRandomVelState, setRenderProps, setScaledExternalForce, setState, setState, setTargetActivity, setTargetPos, setTargetPosition, setTargetVel, setTargetVelocity, setVelocity, setVelocity, setVelState, subForce, transformGeometry, updateBounds, velocityLimitExceeded, zeroExternalForces, zeroForcesaddAttachmentRequest, addConstrainer, addMasterAttachment, getConstrainers, getInverseMass, getMasterAttachments, getSolveIndex, hasState, isActive, isAttached, isControllable, isDynamic, isParametric, removeAttachmentRequest, removeConstrainer, removeMasterAttachment, setSolveIndex, transformGeometrygetRenderHints, isVisible, numSelectionQueriesNeeded, setVisible, updateRenderPropscheckFlag, checkName, checkNameUniqueness, clearFlag, clone, createTempFlag, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, isFixed, isMarked, isScanning, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setScanning, setSelected, setWritable, updateReferences, writeequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferencesgetPropertygetChildren, hasChildrenpostscanisWritable, writeaddAttachmentRequest, removeAttachmentRequestaddConstrainer, addMasterAttachment, getConstrainers, getInverseMass, getMasterAttachments, getSolveIndex, isActive, isAttached, isControllable, isDynamic, isParametric, removeConstrainer, removeMasterAttachment, setSolveIndexadvanceState, getAuxVarDerivative, getAuxVarState, getStateVersion, hasState, numAuxVars, requiresAdvance, setAuxVarStatetransformGeometry, transformPrioritypublic static PropertyList myProps
public FemMarker()
public FemMarker(Point3d pos)
public FemMarker(double x,
double y,
double z)
public FemMarker(FemElement elem, Point3d pos)
public FemMarker(FemElement elem, double x, double y, double z)
public PropertyList getAllPropertyInfo()
HasPropertiesgetAllPropertyInfo in interface HasPropertiesgetAllPropertyInfo in class Pointpublic void setAttached(DynamicAttachment ax)
DynamicComponentBasesetAttached in interface DynamicAgentsetAttached in class DynamicComponentBaseax - Specifies the attachment relationship between
this component and its master(s)public PointFem3dAttachment getAttachment()
getAttachment in interface AttachingComponentgetAttachment in interface DynamicAgentgetAttachment in class DynamicComponentBasepublic VectorNd getCoordinates()
public FemElement getElement()
public int addTargetJacobian(SparseBlockMatrix J, int bi)
vt = J u
addTargetJacobian in interface MotionTargetComponentaddTargetJacobian in class PointJ - motion target Jacobianbi - block row index for the row to be addedpublic void setFromElement(FemElement elem)
elem - element to attach the marker topublic void setFromFem(FemModel3d fem)
fem - FEM model to attach topublic void setFromNodes(java.util.Collection<? extends FemNode> nodes, VectorNd weights)
nodes - nodes to attach the marker toweights - weight for each nodepublic void setFromNodes(FemNode[] nodes, double[] weights)
nodes - nodes to attach the marker toweights - weight for each nodepublic boolean setFromNodes(java.util.Collection<? extends FemNode> nodes)
nodes - nodes to attach the marker tofalse if the weighting computation did not fully convergepublic boolean setFromNodes(FemNode[] nodes)
nodes - nodes to attach the marker tofalse if the weighting computation did not fully convergepublic void updateState()
updateState in class Markerpublic void updatePosState()
updatePosState in class Pointpublic void updateVelState()
updateVelState in class Pointpublic void getRestPosition(Point3d pos)
public FemModel3d getFemModel()
public void updateAttachment()
public boolean resetElement(FemModel3d model)
public boolean resetElement(FemModel3d model, boolean project)
public void scaleDistance(double s)
ScalableUnitsscaleDistance in interface ScalableUnitsscaleDistance in class Points - scaling factorpublic 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 CopyableComponentisDuplicatable in class Pointtrue 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 CopyableComponentgetCopyReferences in class Pointrefs - list to which references are appendedancestor - root node of the hierarchy from which references are to be excludedpublic FemMarker 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 Pointflags - flags to control the copyingcopyMap - map to possible existing instances of referenced
components