public class CollisionBehavior extends CollisionComponent implements Renderable
| Modifier and Type | Class and Description | 
|---|---|
| static class  | CollisionBehavior.ColorMapTypeSpecified what type of data should be used when drawing a color
 map over the collision area. | 
| static class  | CollisionBehavior.MethodSpecifies the contact method defining how the constraints are
 generated for handling collisions. | 
| static class  | CollisionBehavior.VertexPenetrationsIndicates when two-way contact is used for the  CollisionBehavior.Method.VERTEX_PENETRATIONorCollisionBehavior.Method.VERTEX_EDGE_PENETRATIONcontact methods. | 
ModelComponent.FilePathSaveType, ModelComponent.NavpanelVisibility| Modifier and Type | Field and Description | 
|---|---|
| static PropertyList | myProps | 
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNamesTRANSPARENT, TWO_DIMENSIONAL| Constructor and Description | 
|---|
| CollisionBehavior()Creates a new CollisionBehavior with default values. | 
| CollisionBehavior(boolean enabled,
                 double mu)Creates a new CollisionBehavior with a specified enabling
 and friction. | 
| CollisionBehavior(CollisionBehavior behav) | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | collidable0MatchesBody(CollidableBody cbody)Queries whether a collidable body matches the first collidable of this
 behavior. | 
| RenderProps | createRenderProps()Factory method to create render properties appropriate to this object. | 
| double | getAcceleration()Returns the desired collision acceleration. | 
| PropertyMode | getAccelerationMode() | 
| PropertyList | getAllPropertyInfo()Returns a list giving static information about all properties exported by
 this object. | 
| boolean | getBilateralVertexContact()Returns whether bilateral constraints should be used for vertex-based
 contact. | 
| PropertyMode | getBilateralVertexContactMode() | 
| boolean | getBodyFaceContact()Deprecated. 
 Use  getVertexPenetrations()=
 VertexPenetrations.BOTH_COLLIDABLESinstead. | 
| CollisionManager.ColliderType | getColliderType()Returns the collider type to be used for determining collisions. | 
| PropertyMode | getColliderTypeMode() | 
| int | getColorMapCollidable()Deprecated. 
 Use  getRenderingCollidable()instead. | 
| Renderer.ColorInterpolation | getColorMapInterpolation() | 
| PropertyMode | getColorMapInterpolationMode() | 
| ScalarRange | getColorMapRange() | 
| double | getCompliance()Gets the contact compliance associated with this behavior. | 
| PropertyMode | getComplianceMode() | 
| double | getDamping()Gets the contact damping associated with this behavior. | 
| PropertyMode | getDampingMode() | 
| CollisionBehavior.ColorMapType | getDrawColorMap() | 
| PropertyMode | getDrawColorMapMode() | 
| boolean | getDrawContactForces() | 
| PropertyMode | getDrawContactForcesMode() | 
| boolean | getDrawContactNormals() | 
| PropertyMode | getDrawContactNormalsMode() | 
| boolean | getDrawFrictionForces() | 
| PropertyMode | getDrawFrictionForcesMode() | 
| boolean | getDrawIntersectionContours() | 
| PropertyMode | getDrawIntersectionContoursMode() | 
| boolean | getDrawIntersectionFaces() | 
| PropertyMode | getDrawIntersectionFacesMode() | 
| boolean | getDrawIntersectionPoints() | 
| PropertyMode | getDrawIntersectionPointsMode() | 
| int | getDrawPenetrationDepth()Deprecated. 
 Replaced by the combination of
  getDrawColorMap()andgetRenderingCollidable. | 
| ContactForceBehavior | getForceBehavior() | 
| double | getFriction()Gets the Coulomb friction coefficient associated with this behavior. | 
| PropertyMode | getFrictionMode() | 
| CollisionBehavior.Method | getMethod()Returns the contact method to be used by this behavior. | 
| PropertyMode | getMethodMode() | 
| ScalarRange | getPenetrationDepthRange()Added for backwards compatibility. | 
| double | getPenetrationTol()Gets the penetration tolerance associated with this behavior. | 
| PropertyMode | getPenetrationTolMode() | 
| boolean | getReduceConstraints()Queries whether constraint reduction is enabled for this behavior. | 
| PropertyMode | getReduceConstraintsMode() | 
| int | getRenderHints()Returns a bit code giving rendering hints about this renderable. | 
| int | getRenderingCollidable() | 
| PropertyMode | getRenderingCollidableMode() | 
| RenderProps | getRenderProps()Returns the render properities for this object. | 
| boolean | getReportNegContactForces()Queries whether negative contact forces should be used in force
 pressure maps and collision reporting. | 
| PropertyMode | getReportNegContactForcesMode() | 
| double | getRigidPointTol()Gets the rigid point tolerance associated with this behavior. | 
| PropertyMode | getRigidPointTolMode() | 
| double | getRigidRegionTol()Gets the rigid region tolerance associated with this behavior. | 
| PropertyMode | getRigidRegionTolMode() | 
| void | getSelection(java.util.LinkedList<java.lang.Object> list,
            int qid)Append to  listthe component (or components) associated with
 theqid-th selection query issued by this component's render
 method. | 
| double | getStictionCompliance()Gets the stiction compliance associated with this behavior. | 
| PropertyMode | getStictionComplianceMode() | 
| double | getStictionCreep()Gets the stiction creep associated with this behavior. | 
| PropertyMode | getStictionCreepMode() | 
| double | getStictionDamping()Gets the stiction damping associated with this behavior. | 
| PropertyMode | getStictionDampingMode() | 
| CollisionBehavior.VertexPenetrations | getVertexPenetrations()Queries when two-way contact is enabled. | 
| PropertyMode | getVertexPenetrationsMode() | 
| boolean | isCompliant() | 
| boolean | isEnabled()Returns true if collisions are enabled in this behavior. | 
| boolean | isSelectable()Returns true if this object is in fact selectable. | 
| int | numSelectionQueriesNeeded()If this selectable manages its own selection (by issuing selection
 queries within its  rendermethod), then this method should
 return the maximum number of selection queries that will be
 required. | 
| void | prerender(RenderList list)Called prior to rendering to allow this object to update the internal
 state required for rendering (such as by caching rendering coordinates). | 
| void | render(Renderer renderer,
      int flags)Render method for this component is just a stub - it is needed because
 this class extends RenderableComponentBase, which is done to export the
 fact that the class has render properties, and also exports them as a
 property. | 
| void | scaleDistance(double s) | 
| void | scaleMass(double s) | 
| void | set(CollisionBehavior behav) | 
| void | setAcceleration(double acc)Sets a desired acceleration for collision response which will be used to
 automatically compute collision compliance if the specified compliance
 (as returned by  getCompliance()) is zero. | 
| void | setAccelerationMode(PropertyMode mode) | 
| void | setBilateralVertexContact(boolean enable)Set whether bilateral constraints should be used for vertex-based
 contact. | 
| void | setBilateralVertexContactMode(PropertyMode mode) | 
| void | setBodyFaceContact(boolean enable)Deprecated. 
 | 
| void | setColliderType(CollisionManager.ColliderType ctype)Set the collider type to be used for determining collisions. | 
| void | setColliderTypeMode(PropertyMode mode) | 
| void | setColorMapCollidable(int colNum)Deprecated. 
 Use  setRenderingCollidable(int)instead. | 
| void | setColorMapInterpolation(Renderer.ColorInterpolation interp) | 
| void | setColorMapInterpolationMode(PropertyMode mode) | 
| void | setColorMapRange(ScalarRange range) | 
| void | setCompliance(double c)Sets the contact compliance associated with this behavior. | 
| void | setComplianceMode(PropertyMode mode) | 
| void | setDamping(double d)Sets the contact damping associated with this behavior. | 
| void | setDampingMode(PropertyMode mode) | 
| void | setDrawColorMap(CollisionBehavior.ColorMapType type) | 
| void | setDrawColorMapMode(PropertyMode mode) | 
| void | setDrawContactForces(boolean enable) | 
| void | setDrawContactForcesMode(PropertyMode mode) | 
| void | setDrawContactNormals(boolean enable) | 
| void | setDrawContactNormalsMode(PropertyMode mode) | 
| void | setDrawFrictionForces(boolean enable) | 
| void | setDrawFrictionForcesMode(PropertyMode mode) | 
| void | setDrawIntersectionContours(boolean enable) | 
| void | setDrawIntersectionContoursMode(PropertyMode mode) | 
| void | setDrawIntersectionFaces(boolean enable) | 
| void | setDrawIntersectionFacesMode(PropertyMode mode) | 
| void | setDrawIntersectionPoints(boolean enable) | 
| void | setDrawIntersectionPointsMode(PropertyMode mode) | 
| void | setDrawPenetrationDepth(int colNum)Deprecated. 
 Replaced by the combination of
  setDrawColorMap(artisynth.core.mechmodels.CollisionBehavior.ColorMapType)andsetRenderingCollidable. | 
| void | setEnabled(boolean enabled)Enables or disabled collisions for this behavior. | 
| <T extends ContactForceBehavior> | setForceBehavior(T behav) | 
| void | setFriction(double mu)Sets the Coulomb friction coefficient associated with this behavior. | 
| void | setFrictionMode(PropertyMode mode) | 
| void | setMethod(CollisionBehavior.Method method)Set the contact method to be used by this behavior. | 
| void | setMethodMode(PropertyMode mode) | 
| void | setPenetrationTol(double tol)Sets the penetration tolerance associated with this behavior. | 
| void | setPenetrationTolMode(PropertyMode mode) | 
| void | setReduceConstraints(boolean enable)Sets whether or not constraint reduction is enabled for this behavior. | 
| void | setReduceConstraintsMode(PropertyMode mode) | 
| void | setRenderingCollidable(int colNum) | 
| void | setRenderingCollidableMode(PropertyMode mode) | 
| void | setRenderProps(RenderProps props)Assigns a new set of render properties to this object. | 
| void | setReportNegContactForces(boolean enable)Sets a whether negative contact forces should be used in force pressure
 maps and collision reporting. | 
| void | setReportNegContactForcesMode(PropertyMode mode) | 
| void | setRigidPointTol(double tol)Sets the rigid point tolerance associated with this behavior. | 
| void | setRigidPointTolMode(PropertyMode mode) | 
| void | setRigidRegionTol(double tol)Sets the rigid region tolerance associated with this behavior. | 
| void | setRigidRegionTolMode(PropertyMode mode) | 
| void | setStictionCompliance(double compliance)Sets the stiction compliance associated with this behavior. | 
| void | setStictionComplianceMode(PropertyMode mode) | 
| void | setStictionCreep(double creep)Sets the stiction creep associated with this behavior. | 
| void | setStictionCreepMode(PropertyMode mode) | 
| void | setStictionDamping(double damping)Sets the stiction damping associated with this behavior. | 
| void | setStictionDampingMode(PropertyMode mode) | 
| void | setVertexPenetrations(CollisionBehavior.VertexPenetrations mode)Sets when two-way contact is enabled. | 
| void | setVertexPenetrationsMode(PropertyMode mode) | 
| void | updateBounds(Vector3d pmin,
            Vector3d pmax)Update the minimum and maximum points for this object. | 
getCollidable, getCollidablePair, getHardReferences, setCollidablePair, setCollidablePaircheckFlag, checkName, checkNameUniqueness, clearFlag, clone, connectToHierarchy, copy, createTempFlag, disconnectFromHierarchy, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, hasState, 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, writepublic static PropertyList myProps
public CollisionBehavior()
public CollisionBehavior(boolean enabled,
                         double mu)
enabled - true if collisions are enabledmu - friction coefficient. If less than 0, the value 
 will be inherited from ancestor components.public CollisionBehavior(CollisionBehavior behav)
public PropertyList getAllPropertyInfo()
HasPropertiesgetAllPropertyInfo in interface HasPropertiesgetAllPropertyInfo in class ModelComponentBasepublic boolean isEnabled()
public void setEnabled(boolean enabled)
enabled - if true, enables collisionspublic double getFriction()
public void setFriction(double mu)
mu - friction coefficientpublic void setFrictionMode(PropertyMode mode)
public PropertyMode getFrictionMode()
public CollisionBehavior.Method getMethod()
public void setMethod(CollisionBehavior.Method method)
method - contact method to be usedpublic void setMethodMode(PropertyMode mode)
public PropertyMode getMethodMode()
public boolean getBilateralVertexContact()
true if bilateral constraints should be usedpublic void setBilateralVertexContact(boolean enable)
enable - if true, enables bilateral constraintspublic void setBilateralVertexContactMode(PropertyMode mode)
public PropertyMode getBilateralVertexContactMode()
public CollisionManager.ColliderType getColliderType()
public void setColliderType(CollisionManager.ColliderType ctype)
ctype - new collider type for this behaviorpublic void setColliderTypeMode(PropertyMode mode)
public PropertyMode getColliderTypeMode()
public double getPenetrationTol()
public void setPenetrationTol(double tol)
tol - new penetration tolerancepublic void setPenetrationTolMode(PropertyMode mode)
public PropertyMode getPenetrationTolMode()
public double getCompliance()
public void setCompliance(double c)
c - new contact compliancepublic void setComplianceMode(PropertyMode mode)
public PropertyMode getComplianceMode()
public double getDamping()
public void setDamping(double d)
d - new contact dampingpublic void setDampingMode(PropertyMode mode)
public PropertyMode getDampingMode()
public double getStictionCreep()
setStictionCreep(double).public void setStictionCreep(double creep)
> 0 regularizes the computation of friction forces by
 removing redundancy.creep - new stiction creeppublic void setStictionCreepMode(PropertyMode mode)
public PropertyMode getStictionCreepMode()
public double getStictionCompliance()
setStictionCompliance(double).public void setStictionCompliance(double compliance)
compliance - new stiction compliancepublic void setStictionComplianceMode(PropertyMode mode)
public PropertyMode getStictionComplianceMode()
public double getStictionDamping()
setStictionDamping(double).public void setStictionDamping(double damping)
damping - new stiction dampingpublic void setStictionDampingMode(PropertyMode mode)
public PropertyMode getStictionDampingMode()
public double getAcceleration()
setAcceleration(double).public void setAcceleration(double acc)
getCompliance()) is zero.
 This property is currently experimental and not guaranteed to produce reliable results.
acc - desired collision accelerationpublic void setAccelerationMode(PropertyMode mode)
public PropertyMode getAccelerationMode()
public boolean getReportNegContactForces()
true if negative contact forces being shownpublic void setReportNegContactForces(boolean enable)
enable - if true, enables showing negative contact forcespublic void setReportNegContactForcesMode(PropertyMode mode)
public PropertyMode getReportNegContactForcesMode()
public double getRigidRegionTol()
public void setRigidRegionTol(double tol)
tol - new rigid region tolerancepublic void setRigidRegionTolMode(PropertyMode mode)
public PropertyMode getRigidRegionTolMode()
public double getRigidPointTol()
public void setRigidPointTol(double tol)
tol - new rigid point tolerancepublic void setRigidPointTolMode(PropertyMode mode)
public PropertyMode getRigidPointTolMode()
public <T extends ContactForceBehavior> void setForceBehavior(T behav)
public ContactForceBehavior getForceBehavior()
public boolean getReduceConstraints()
public void setReduceConstraints(boolean enable)
enable - true if constraint reduction should be enabledpublic void setReduceConstraintsMode(PropertyMode mode)
public PropertyMode getReduceConstraintsMode()
public boolean getBodyFaceContact()
getVertexPenetrations() =
 VertexPenetrations.BOTH_COLLIDABLES instead.public void setBodyFaceContact(boolean enable)
setVertexPenetrations(artisynth.core.mechmodels.CollisionBehavior.VertexPenetrations) instead.public CollisionBehavior.VertexPenetrations getVertexPenetrations()
CollisionBehavior.VertexPenetrations for
 details.public void setVertexPenetrations(CollisionBehavior.VertexPenetrations mode)
CollisionBehavior.VertexPenetrations for
 details.mode - specifies when two-way contact is enabled.public void setVertexPenetrationsMode(PropertyMode mode)
public PropertyMode getVertexPenetrationsMode()
public boolean getDrawIntersectionContours()
public void setDrawIntersectionContours(boolean enable)
public void setDrawIntersectionContoursMode(PropertyMode mode)
public PropertyMode getDrawIntersectionContoursMode()
public boolean getDrawIntersectionFaces()
public void setDrawIntersectionFaces(boolean enable)
public void setDrawIntersectionFacesMode(PropertyMode mode)
public PropertyMode getDrawIntersectionFacesMode()
public boolean getDrawIntersectionPoints()
public void setDrawIntersectionPoints(boolean enable)
public void setDrawIntersectionPointsMode(PropertyMode mode)
public PropertyMode getDrawIntersectionPointsMode()
public boolean getDrawContactNormals()
public void setDrawContactNormals(boolean enable)
public void setDrawContactNormalsMode(PropertyMode mode)
public PropertyMode getDrawContactNormalsMode()
public boolean getDrawContactForces()
public void setDrawContactForces(boolean enable)
public void setDrawContactForcesMode(PropertyMode mode)
public PropertyMode getDrawContactForcesMode()
public boolean getDrawFrictionForces()
public void setDrawFrictionForces(boolean enable)
public void setDrawFrictionForcesMode(PropertyMode mode)
public PropertyMode getDrawFrictionForcesMode()
public int getDrawPenetrationDepth()
getDrawColorMap() and getRenderingCollidable.public void setDrawPenetrationDepth(int colNum)
setDrawColorMap(artisynth.core.mechmodels.CollisionBehavior.ColorMapType) and setRenderingCollidable.public ScalarRange getPenetrationDepthRange()
public void setColorMapRange(ScalarRange range)
public ScalarRange getColorMapRange()
public void setColorMapInterpolation(Renderer.ColorInterpolation interp)
public Renderer.ColorInterpolation getColorMapInterpolation()
public void setColorMapInterpolationMode(PropertyMode mode)
public PropertyMode getColorMapInterpolationMode()
public CollisionBehavior.ColorMapType getDrawColorMap()
public void setDrawColorMap(CollisionBehavior.ColorMapType type)
public void setDrawColorMapMode(PropertyMode mode)
public PropertyMode getDrawColorMapMode()
public int getRenderingCollidable()
public void setRenderingCollidable(int colNum)
public void setRenderingCollidableMode(PropertyMode mode)
public PropertyMode getRenderingCollidableMode()
public int getColorMapCollidable()
getRenderingCollidable() instead.public void setColorMapCollidable(int colNum)
setRenderingCollidable(int) instead.public boolean isCompliant()
public void set(CollisionBehavior behav)
public RenderProps getRenderProps()
HasRenderPropsgetRenderProps in interface HasRenderPropspublic void setRenderProps(RenderProps props)
HasRenderPropsnull will remove render properties from this object.setRenderProps in interface HasRenderPropsprops - new render properties for this objectpublic void prerender(RenderList list)
IsRenderablelist.addIfVisible (obj);
for each of the objects in question.prerender in interface IsRenderablelist - list of objects to be renderedpublic void render(Renderer renderer, int flags)
render in interface IsRenderablerenderer - provides the functionality used to perform the rendering.flags - flags that may be used to control different 
 aspects of the rendering. Flags are defined in Renderer
 and currently include
 Renderer.HIGHLIGHT and
 Renderer.SORT_FACES.public void updateBounds(Vector3d pmin, Vector3d pmax)
IsRenderableupdateBounds in interface IsRenderablepmin - minimum pointpmax - maximum pointpublic void getSelection(java.util.LinkedList<java.lang.Object> list,
                         int qid)
IsSelectablelist 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 IsSelectable.numSelectionQueriesNeeded() is positive), and qid will in
 turn be a number between 0 and nums-1.getSelection in interface IsSelectablelist - selected objects are appended to the end of this listqid - index of the selection querypublic RenderProps createRenderProps()
HasRenderPropscreateRenderProps in interface HasRenderPropspublic int getRenderHints()
IsRenderableTRANSPARENT and
 TWO_DIMENSIONAL.getRenderHints in interface IsRenderablepublic boolean isSelectable()
isSelectable in interface IsSelectablepublic int numSelectionQueriesNeeded()
IsSelectablerender method), then this method should
 return the maximum number of selection queries that will be
 required. Otherwise, this method should return -1.numSelectionQueriesNeeded in interface IsSelectablepublic void scaleDistance(double s)
public void scaleMass(double s)
public boolean collidable0MatchesBody(CollidableBody cbody)