public class MFreeModel3d extends FemModel implements TransformableGeometry, ScalableUnits, MechSystemModel, Collidable, CopyableComponent
FemModel.ElementFilter, FemModel.IncompMethod, FemModel.Ranging, FemModel.SurfaceRender
ModelComponent.NavpanelVisibility
MechSystem.ConstraintInfo, MechSystem.FrictionInfo
Collidable.DefaultCollidable
CompositeComponent.NavpanelDisplay
Modifier and Type | Field and Description |
---|---|
static boolean |
abortOnInvertedElems |
static boolean |
checkTangentStability |
static FemModel.IncompMethod |
DEFAULT_HARD_INCOMP |
static FemModel.IncompMethod |
DEFAULT_SOFT_INCOMP |
static ColorMapBase |
defaultColorMap |
static PropertyList |
myProps |
myParametricsInSystemMatrix
DEFAULT_NAVPANEL_DISPLAY
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
ARTICULATED, SIMULATING
COMPUTE_CONTACTS, UPDATE_CONTACTS
Default, Deformable, RigidBody, Self
COPY_REFERENCES
TRANSLUCENT, TWO_DIMENSIONAL
Constructor and Description |
---|
MFreeModel3d() |
MFreeModel3d(java.lang.String name) |
Modifier and Type | Method and Description |
---|---|
int |
addBilateralConstraints(SparseBlockMatrix GT,
VectorNd dg,
int numb,
IntHolder changeCnt) |
static void |
addControls(ControlPanel controlPanel,
FemModel femModel,
ModelComponent topModel) |
void |
addElement(MFreeElement3d e) |
void |
addElements(java.util.List<MFreeElement3d> regionList) |
void |
addMaterialBundle(MFreeAuxMaterialBundle bundle) |
MeshComponent |
addMesh(MeshBase mesh) |
void |
addNode(MFreeNode3d p) |
void |
addNodes(java.util.List<MFreeNode3d> nodes) |
void |
addNumberedElement(MFreeElement3d e,
int elemId) |
void |
addNumberedNode(MFreeNode3d p,
int number) |
void |
addPosJacobian(SparseNumberedBlockMatrix M,
double s)
Scales the components of the position Jacobian associated with this force
effector and adds it to the supplied solve matrix M.
|
void |
addSolveBlocks(SparseNumberedBlockMatrix S)
Adds any needed blocks to a solve matrix in order to accomodate the
Jacobian terms associated with this force effector.
|
void |
addVelJacobian(SparseNumberedBlockMatrix M,
double s)
Scales the components of the velocity Jacobian associated with this force
effector and adds it to the supplied solve matrix M.
|
StepAdjustment |
advance(double t0,
double t1,
int flags)
Advances this object from time t0 to time t1.
|
void |
checkInversion() |
DynamicMechComponent |
checkVelocityStability()
Checks the velocity stability of this system.
|
void |
clearElements() |
void |
clearMaterialBundles() |
void |
clearMeshes() |
void |
componentChanged(ComponentChangeEvent e)
Notifies this composite component that a change has occured within one or
more of its descendants.
|
SparseMatrixNd |
computeConsistentMassMatrix() |
double |
computeConsistentMassMatrixEntry(MFreeNode3d node1,
MFreeNode3d node2) |
void |
computeShapeMatrix() |
CollisionData |
createCollisionData() |
static ColorMapBase |
createDefaultColorMap() |
void |
dispose()
Called when the model is discarded.
|
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
void |
getAuxStateComponents(java.util.List<HasAuxState> comps,
int level) |
int |
getBilateralImpulses(VectorNd lam,
int idx) |
int |
getBilateralInfo(MechSystem.ConstraintInfo[] ginfo,
int idx) |
void |
getBilateralSizes(VectorNi sizes) |
MFreeNode3d |
getByNumber(int num)
Get the component with the specified number, or null if there is no such
component.
|
void |
getCollidables(java.util.List<Collidable> list,
int level) |
ColorMapBase |
getColorMap() |
PropertyMode |
getColorMapMode() |
boolean |
getCopyReferences(java.util.List<ModelComponent> refs,
ModelComponent ancestor)
Collects external references which must also be copied in order to
duplicate this component.
|
MFreeElement3d |
getElement(int idx) |
BVTree |
getElementBVTree() |
MFreeElement3d |
getElementByNumber(int num) |
RenderableComponentList<MFreeElement3d> |
getElements() |
double |
getElementWidgetSize() |
PropertyMode |
getElementWidgetSizeMode() |
double |
getEnergy() |
FemModel.IncompMethod |
getHardIncompMethod() |
int |
getJacobianType()
Returns a code indicating the matrix type that results when the Jacobian
terms of this force effector are added to the solve matrix.
|
RenderableComponentList<MFreeAuxMaterialBundle> |
getMaterialBundles() |
MeshBase |
getMesh(int idx) |
MeshComponent |
getMeshComponent(int idx) |
java.util.Collection<MeshComponent> |
getMeshes() |
MFreeNode3d |
getNode(int idx) |
BVTree |
getNodeBVTree() |
java.util.LinkedList<FemNodeNeighbor> |
getNodeNeighbors(FemNode3d node) |
PointList<MFreeNode3d> |
getNodes() |
void |
getSelection(java.util.LinkedList<java.lang.Object> list,
int qid)
Append to
list the component (or components) associated with
the qid -th selection query issued by this component's render
method. |
FemModel.IncompMethod |
getSoftIncompMethod() |
void |
initialize(double t0)
Causes this model to initialize itself at time t.
|
double |
integrate(Function3x1 fun) |
double |
integrateMass() |
double |
integrateVolume() |
void |
invalidateRestData() |
void |
invalidateStressAndStiffness() |
void |
invalidateSurfaceMesh() |
boolean |
isCollidable() |
boolean |
isDuplicatable()
Returns true if this component can be duplicated.
|
int |
numSurfaceMeshes() |
void |
prerender(RenderList list)
Prepare for rendering, and potentially add itself to a list to be drawn
by a GLRenderer.
|
void |
recursivelyFinalizeAdvance(StepAdjustment stepAdjust,
double t0,
double t1,
int flags,
int level) |
void |
recursivelyInitialize(double t,
int level) |
boolean |
removeElement(MFreeElement3d e) |
boolean |
removeMaterialBundle(MFreeAuxMaterialBundle bundle) |
boolean |
removeMesh(MeshBase mesh) |
boolean |
removeNode(MFreeNode3d p) |
void |
render(GLRenderer renderer,
int flags)
Render this object using Open GL via the JOGL.
|
void |
resetRestPosition() |
void |
scaleDistance(double s)
Scales all distance coordinates.
|
int |
setBilateralImpulses(VectorNd lam,
double h,
int idx) |
void |
setColorMap(ColorMapBase colorMap) |
void |
setColorMapMode(PropertyMode mode) |
void |
setComputeNodalStrain(boolean enable) |
void |
setComputeNodalStress(boolean enable) |
void |
setElementWidgetSize(double size) |
void |
setElementWidgetSizeMode(PropertyMode mode) |
void |
setIncompressible(FemModel.IncompMethod method) |
void |
setMaterial(FemMaterial mat) |
void |
setSoftIncompMethod(FemModel.IncompMethod method) |
void |
setSurfaceRendering(FemModel.SurfaceRender mode) |
void |
transformGeometry(AffineTransform3dBase X)
Applies an affine transformation to the geometry of this object.
|
void |
transformGeometry(AffineTransform3dBase X,
TransformableGeometry topObject,
int flags)
Applies an affine transformation to the geometry of this object.
|
void |
updateAllRestVolumes() |
void |
updateAllVolumes() |
void |
updateBounds(Point3d pmin,
Point3d pmax)
Update the minimum and maximum points for this object.
|
double |
updateConstraints(double t,
int flags) |
void |
updateJacobians() |
void |
updateNodeMasses(double totalMass,
VectorNd massMatrixDiag) |
void |
updateSlavePos()
Called when the system's dynamic position state changes, to update the
position state of the slave objects.
|
void |
updateStressAndStiffness() |
double |
updateVolume() |
void |
zeroImpulses() |
addFrictionConstraints, addMarker, addMarker, addUnilateralConstraints, applyForces, attachments, attachPoint, clear, copy, createDefaultMaterial, detachAllNodes, detachPoint, forcesNeedUpdating, getAttachments, getCharacteristicSize, getCollidables, getConstrainers, getDensity, getDensityMode, getDynamicComponents, getForceEffectors, getGravity, getGravityMode, getImplicitIterations, getImplicitPrecision, getIntegrator, getMass, getMaterial, getMatrixSolver, getNodeMass, getNumInverted, getParticleDamping, getRestVolume, getSlaveObjectComponents, getStiffnessDamping, getStressPlotRange, getStressPlotRangeMode, getStressPlotRanging, getStressPlotRangingMode, getSurfaceRendering, getSurfaceRenderingMode, getToleranceType, getUnilateralImpulses, getUnilateralInfo, getUnilateralSizes, getVolume, hasState, isProfile, markers, maxFrictionConstraintSets, numElements, numNodes, propertyChanged, removeMarker, resetStressPlotRange, scaleMass, setBounds, setDensity, setDensityMode, setGravity, setGravity, setGravityMode, setImplicitIterations, setImplicitPrecision, setIntegrator, setLinearMaterial, setMatrixSolver, setMaxStepSize, setParticleDamping, setProfile, setStiffnessDamping, setStressPlotRange, setStressPlotRangeMode, setStressPlotRanging, setStressPlotRangingMode, setSurfaceRenderingMode, setToleranceType, setUnilateralImpulses, updateRestVolume, updateSlaveVel, validateMatrixSolver, zeroExternalForces
addActivePosImpulse, addAttachmentJacobian, addAttachmentSolveBlocks, addGeneralSolveBlocks, addPosJacobian, addVelJacobian, applyAttachmentForces, buildMassMatrix, buildSolveMatrix, createState, createVelocityJacobian, getActiveForces, getActivePosDerivative, getActivePosState, getActivePosStateSize, getActiveStiffness, getActiveVelState, getActiveVelState, getActiveVelStateSize, getAttachmentConstraints, getAttachmentDerivatives, getAuxState, getBilateralConstraints, getBilateralConstraintSizes, getBilateralImpulses, getBilateralInfo, getDefaultStabilization, getDynamicsEnabled, getFrictionConstraints, getInitialState, getInverseMassMatrix, getMassMatrix, getNumBilateralImpulses, getNumUnilateralImpulses, getParametricForces, getParametricPosState, getParametricPosStateSize, getParametricPosTarget, getParametricVelState, getParametricVelStateSize, getParametricVelTarget, getPenetrationLimit, getSolveMatrixType, getSolver, getStabilization, getState, getStructureVersion, getUnilateralConstraints, getUnilateralConstraintSizes, getUnilateralImpulses, getUnilateralInfo, getUpdateForcesAtStepEnd, hasParameterizedType, numActiveComponents, numAttachedComponents, numParametricComponents, preadvance, printActiveStiffness, reduceVelocityJacobian, setActiveForces, setActivePosState, setActiveVelState, setAuxState, setBilateralImpulses, setDefaultStabilization, setDynamicsEnabled, setParametricForces, setParametricPosState, setParametricVelState, setPenetrationLimit, setStabilization, setState, setUnilateralImpulses, setUpdateForcesAtStepEnd, updateAttachmentPos, updateAttachmentVel, updateConstraints, updateForces, updatePosState, updateVelState, writeBilateralConstraintMatrix, writeMassMatrix, writeStiffnessMatrix
createRenderProps, getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderProps
copy, getInitialState, getMaxStepSize, hierarchyContainsReferences, setInitialState
add, add, addAll, addComponents, addFixed, addNumbered, clone, contains, contains, containsAll, ensureCapacity, findComponent, get, get, getChildren, getNavpanelDisplay, getNumberLimit, getShortName, getTypeParameter, hasChildren, indexOf, isEmpty, iterator, nextComponentNumber, numComponents, postscan, remove, remove, removeAll, removeAll, removeComponents, retainAll, scan, setNavpanelDisplay, setNumberingStartAtOne, setShortName, size, toArray, toArray, updateNameMap
checkFlag, checkName, checkNameUniqueness, clearFlag, connectToHierarchy, createTempFlag, disconnectFromHierarchy, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
scaleMass
getAttachments, getConstrainers, getDynamicComponents, getForceEffectors, getSlaveObjectComponents
getMaxStepSize, preadvance
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences
getProperty
getChildren, hasChildren
isWritable, write
createState, getInitialState, getState, setState
addActivePosImpulse, addPosJacobian, addVelJacobian, buildMassMatrix, buildSolveMatrix, getActiveForces, getActivePosDerivative, getActivePosState, getActivePosStateSize, getActiveVelState, getActiveVelStateSize, getBilateralConstraints, getBilateralImpulses, getBilateralInfo, getFrictionConstraints, getInverseMassMatrix, getMassMatrix, getParametricForces, getParametricPosState, getParametricPosStateSize, getParametricPosTarget, getParametricVelState, getParametricVelStateSize, getParametricVelTarget, getSolveMatrixType, getStructureVersion, getUnilateralConstraints, getUnilateralImpulses, getUnilateralInfo, maxFrictionConstraintSets, numActiveComponents, numParametricComponents, setActiveForces, setActivePosState, setActiveVelState, setBilateralImpulses, setParametricForces, setParametricPosState, setParametricVelState, setUnilateralImpulses, updateConstraints, updateForces
getMass
copy
getName
public static boolean checkTangentStability
public static boolean abortOnInvertedElems
public static FemModel.IncompMethod DEFAULT_HARD_INCOMP
public static FemModel.IncompMethod DEFAULT_SOFT_INCOMP
public static ColorMapBase defaultColorMap
public static PropertyList myProps
public MFreeModel3d()
public MFreeModel3d(java.lang.String name)
public PropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class FemModel
public void setElementWidgetSize(double size)
public double getElementWidgetSize()
public void setElementWidgetSizeMode(PropertyMode mode)
public PropertyMode getElementWidgetSizeMode()
public void getCollidables(java.util.List<Collidable> list, int level)
getCollidables
in interface MechSystemModel
public void setComputeNodalStress(boolean enable)
public void setComputeNodalStrain(boolean enable)
public static ColorMapBase createDefaultColorMap()
public void addMaterialBundle(MFreeAuxMaterialBundle bundle)
public boolean removeMaterialBundle(MFreeAuxMaterialBundle bundle)
public void clearMaterialBundles()
public RenderableComponentList<MFreeAuxMaterialBundle> getMaterialBundles()
public BVTree getNodeBVTree()
public BVTree getElementBVTree()
public PointList<MFreeNode3d> getNodes()
public MFreeNode3d getNode(int idx)
public MFreeNode3d getByNumber(int num)
ComponentList
getByNumber
in interface ComponentListView<ModelComponent>
getByNumber
in interface CompositeComponent
getByNumber
in class ComponentList<ModelComponent>
num
- number of the componentpublic MFreeElement3d getElementByNumber(int num)
public RenderableComponentList<MFreeElement3d> getElements()
getElements
in class FemModel
public void addNodes(java.util.List<MFreeNode3d> nodes)
public void addNode(MFreeNode3d p)
public void addNumberedNode(MFreeNode3d p, int number)
public boolean removeNode(MFreeNode3d p)
public void addElements(java.util.List<MFreeElement3d> regionList)
public MFreeElement3d getElement(int idx)
getElement
in class FemModel
public void addElement(MFreeElement3d e)
public void addNumberedElement(MFreeElement3d e, int elemId)
public boolean removeElement(MFreeElement3d e)
public void clearElements()
public java.util.LinkedList<FemNodeNeighbor> getNodeNeighbors(FemNode3d node)
public void updateStressAndStiffness()
public FemModel.IncompMethod getHardIncompMethod()
public void setIncompressible(FemModel.IncompMethod method)
public FemModel.IncompMethod getSoftIncompMethod()
public void setSoftIncompMethod(FemModel.IncompMethod method)
public void setMaterial(FemMaterial mat)
setMaterial
in class FemModel
public void updateJacobians()
public void checkInversion()
public int numSurfaceMeshes()
public MeshBase getMesh(int idx)
public boolean isCollidable()
isCollidable
in interface Collidable
public java.util.Collection<MeshComponent> getMeshes()
public MeshComponent getMeshComponent(int idx)
public boolean removeMesh(MeshBase mesh)
public MeshComponent addMesh(MeshBase mesh)
public void clearMeshes()
public int getJacobianType()
ForceEffector
Matrix.SYMMETRIC
or Matrix.POSITIVE_DEFINITE
. The former should be set if adding the Jacobian
terms preserves symmetry, and the latter should be set if positive
definiteness if preserved. Both should be set if there is no Jacobian for
this effector (i.e., the Jacobian methods are not implemented). Matrix
types from all the force effectors are logically and-ed together to
determine the type for the entire solve matrix.getJacobianType
in interface ForceEffector
getJacobianType
in class FemModel
public void addVelJacobian(SparseNumberedBlockMatrix M, double s)
ForceEffector
M is guaranteed to be the same matrix supplied in the most recent call to
addSolveBlocks
, and so implementations may choose
to cache the relevant matrix blocks from that call, instead of retrieving
them directly from M.
addVelJacobian
in interface ForceEffector
M
- solve matrix to which scaled velocity Jacobian is to be addeds
- scaling factor for velocity Jacobianpublic void addPosJacobian(SparseNumberedBlockMatrix M, double s)
ForceEffector
M is guaranteed to be the same matrix supplied in the most recent call to
addSolveBlocks
, and so implementations may choose
to cache the relevant matrix blocks from that call, instead of retrieving
them directly from M.
addPosJacobian
in interface ForceEffector
M
- solve matrix to which scaled position Jacobian is to be addeds
- scaling factor for position Jacobianpublic void addSolveBlocks(SparseNumberedBlockMatrix S)
ForceEffector
getSolveIndex
) for all dynamic or attached components affected by this
force effector.addSolveBlocks
in interface ForceEffector
addSolveBlocks
in class FemModel
S
- solve matrix to which blocks should be addedpublic void recursivelyInitialize(double t, int level)
recursivelyInitialize
in interface MechSystemModel
recursivelyInitialize
in class FemModel
public double integrate(Function3x1 fun)
public double integrateVolume()
public void updateAllRestVolumes()
public void updateAllVolumes()
public double integrateMass()
public double computeConsistentMassMatrixEntry(MFreeNode3d node1, MFreeNode3d node2)
public SparseMatrixNd computeConsistentMassMatrix()
public void updateNodeMasses(double totalMass, VectorNd massMatrixDiag)
public void initialize(double t0)
ModelBase
HasState.setState(artisynth.core.modelbase.ComponentState)
, in which case t
may have an arbitrary value.initialize
in interface Model
initialize
in class MechSystemBase
t0
- initialization time (seconds)public StepAdjustment advance(double t0, double t1, int flags)
ModelBase
If the method determines that the step size should be
reduced, it can return a StepAdjustment
object indicating
the recommended reduction. Otherwise, the method may return
null
public DynamicMechComponent checkVelocityStability()
checkVelocityStability
in interface MechSystemModel
checkVelocityStability
in class FemModel
public void setSurfaceRendering(FemModel.SurfaceRender mode)
setSurfaceRendering
in class FemModel
public void render(GLRenderer renderer, int flags)
GLRenderable
render
in interface GLRenderable
render
in class FemModel
renderer
- renderer object which is used to perform the rendering. Provides pointers
to GL and GLU, along with helper functions.flags
- supplies flags that may be used to control different
aspects of the rendering. Flags are defined in GLRenderer
and currently include
GLRenderer.SELECTED
,
GLRenderer.VERTEX_COLORING
,
GLRenderer.HSV_COLOR_INTERPOLATION
,
GLRenderer.SORT_FACES
, and
GLRenderer.CLEAR_MESH_DISPLAY_LISTS
.public void prerender(RenderList list)
GLRenderable
prerender
in interface GLRenderable
prerender
in class RenderableModelBase
public void getSelection(java.util.LinkedList<java.lang.Object> list, int qid)
GLSelectable
list
the component (or components) associated with
the qid
-th selection query issued by this component's render
method. This will only be called if this component manages its own
selection (i.e., the number nums
returned by GLSelectable.numSelectionQueriesNeeded()
is positive), and qid
will in
turn be a number between 0 and nums
-1.getSelection
in interface GLSelectable
getSelection
in class RenderableModelBase
list
- selected objects are appended to the end of this listqid
- index of the selection querypublic void invalidateSurfaceMesh()
public void componentChanged(ComponentChangeEvent e)
ComponentList
This method should propagate the notification up the component hierarchy
by calling notifyParentOfChange
.
componentChanged
in interface ComponentChangeListener
componentChanged
in interface CompositeComponent
componentChanged
in class ComponentList<ModelComponent>
e
- optional argument giving specific information about the changepublic void updateSlavePos()
HasSlaveObjects
updateSlavePos
in interface HasSlaveObjects
updateSlavePos
in class FemModel
public void recursivelyFinalizeAdvance(StepAdjustment stepAdjust, double t0, double t1, int flags, int level)
recursivelyFinalizeAdvance
in interface MechSystemModel
recursivelyFinalizeAdvance
in class MechSystemBase
public double updateVolume()
updateVolume
in class FemModel
public void invalidateStressAndStiffness()
invalidateStressAndStiffness
in class FemModel
public void invalidateRestData()
invalidateRestData
in class FemModel
public void resetRestPosition()
public double updateConstraints(double t, int flags)
updateConstraints
in interface Constrainer
updateConstraints
in class FemModel
public int setBilateralImpulses(VectorNd lam, double h, int idx)
setBilateralImpulses
in interface Constrainer
setBilateralImpulses
in class FemModel
public void zeroImpulses()
zeroImpulses
in interface Constrainer
zeroImpulses
in class FemModel
public int getBilateralImpulses(VectorNd lam, int idx)
getBilateralImpulses
in interface Constrainer
getBilateralImpulses
in class FemModel
public void getBilateralSizes(VectorNi sizes)
getBilateralSizes
in interface Constrainer
getBilateralSizes
in class FemModel
public int addBilateralConstraints(SparseBlockMatrix GT, VectorNd dg, int numb, IntHolder changeCnt)
addBilateralConstraints
in interface Constrainer
addBilateralConstraints
in class FemModel
public int getBilateralInfo(MechSystem.ConstraintInfo[] ginfo, int idx)
getBilateralInfo
in interface Constrainer
getBilateralInfo
in class FemModel
public static void addControls(ControlPanel controlPanel, FemModel femModel, ModelComponent topModel)
public void dispose()
ModelBase
public void scaleDistance(double s)
ScalableUnits
scaleDistance
in interface ScalableUnits
scaleDistance
in class FemModel
s
- 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 CopyableComponent
true
if this component can be duplicated.public void transformGeometry(AffineTransform3dBase X)
TransformableGeometry
transformGeometry (X, this, 0);
transformGeometry
in interface TransformableGeometry
X
- affine transformationpublic void transformGeometry(AffineTransform3dBase X, TransformableGeometry topObject, int flags)
TransformableGeometry
topComponent
should be the component for which the method
was initially invoked. The variable flags
provides
information about the context in which the transformation is
being applied. At present, the available flags are
TransformableGeometry.SIMULATING
and TransformableGeometry.ARTICULATED
.transformGeometry
in interface TransformableGeometry
X
- affine transformationtopObject
- component on which the method was initially invokedflags
- provides information about the context in which the
transformation is being applied.public boolean getCopyReferences(java.util.List<ModelComponent> refs, ModelComponent ancestor)
CopyableComponent
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 excludedpublic void getAuxStateComponents(java.util.List<HasAuxState> comps, int level)
getAuxStateComponents
in interface MechSystemModel
public void computeShapeMatrix()
public void updateBounds(Point3d pmin, Point3d pmax)
GLRenderable
updateBounds
in interface GLRenderable
updateBounds
in class FemModel
pmin
- minimum pointpmax
- maximum pointpublic ColorMapBase getColorMap()
public void setColorMap(ColorMapBase colorMap)
public PropertyMode getColorMapMode()
public void setColorMapMode(PropertyMode mode)
public CollisionData createCollisionData()
createCollisionData
in interface Collidable