public class MFreeCollisionData extends DeformableCollisionDataBase
Constructor and Description |
---|
MFreeCollisionData(MFreeModel3d mod,
PolygonalMesh mesh) |
Modifier and Type | Method and Description |
---|---|
int |
addConstraintInfo(Vertex3d vtx,
Point3d constraintLoc,
double weight,
DeformableContactConstraint con)
Adds the point information from
this object's vertex and weight to the
supplied constraint. |
void |
addContact(DeformableContactConstraint c)
Add contact constraint to set of constraints
|
boolean |
allowCollision(ContactPenetratingPoint cpp,
boolean isVertex,
CollisionData otherData)
Allow a collision between this object and the supplied 'other'.
|
MFreeContactConstraint |
createContact(Vertex3d... vtxs) |
MFreeModel3d |
getComponent()
Returns the component involved in the collision
|
int |
getVertexDependencies(Vertex3d vtx,
java.util.ArrayList<Point> pointDeps,
VectorNd pointWgts,
java.util.ArrayList<Frame> frameDeps,
VectorNd frameWgts)
Determines the set of points that a vertex's position is dependent
upon, along with their weights (assuming a linear relationship)
|
void |
markMasters(Vertex3d vtx,
boolean marked)
Mark the master dynamic components of vertex
vtx
as being "used" |
int |
numActiveMasters(ContactPenetratingPoint cpp,
boolean isVertex) |
int |
numActiveMasters(EdgeEdgeContact eec,
boolean isFirst) |
int |
numActiveUnmarkedMasters(Vertex3d vtx)
Count the number of "free" master components for vertex
vtx . |
addBilateralConstraints, addFrictionConstraints, allowCollision, clearContactActivity, clearContactData, contactsHaveChanged, getAuxState, getBilateralImpulses, getBilateralInfo, getBilateralSizes, getCollisionTol, getContact, getContact, getFriction, getInitialAuxState, getMesh, hasActiveContact, hasActiveContact, hasActiveContacts, maxFrictionConstraintSets, notifyContactsChanged, numActiveContacts, reduceConstraints, removeInactiveContacts, setAuxState, setBilateralImpulses, setFriction, setPenetrationTol, skipAuxState, updateFrictionConstraints, zeroImpulses
public MFreeCollisionData(MFreeModel3d mod, PolygonalMesh mesh)
public MFreeModel3d getComponent()
CollisionData
public MFreeContactConstraint createContact(Vertex3d... vtxs)
public void addContact(DeformableContactConstraint c)
DeformableCollisionData
addContact
in interface DeformableCollisionData
addContact
in class DeformableCollisionDataBase
public boolean allowCollision(ContactPenetratingPoint cpp, boolean isVertex, CollisionData otherData)
DeformableCollisionData
cpp
- the contact-penetrating point involved between the two.isVertex
- if true, checks if we can allow collision based
on the vertex, otherwise if we are checking the faceotherData
- the other collision object involvedpublic int numActiveMasters(ContactPenetratingPoint cpp, boolean isVertex)
public int numActiveMasters(EdgeEdgeContact eec, boolean isFirst)
public int getVertexDependencies(Vertex3d vtx, java.util.ArrayList<Point> pointDeps, VectorNd pointWgts, java.util.ArrayList<Frame> frameDeps, VectorNd frameWgts)
DeformableCollisionData
vtx
- the vertex belonging to this
collision
datapointDeps
- list of points that is filledpointWgts
- weights associated with the returned pointsframeDeps
- list of frames that is filledframeWgts
- weights associated with the returned framespublic int addConstraintInfo(Vertex3d vtx, Point3d constraintLoc, double weight, DeformableContactConstraint con)
CollisionData
this
object's vertex and weight to the
supplied constraint.addConstraintInfo
in interface CollisionData
addConstraintInfo
in class DeformableCollisionDataBase
vtx
- vertex belonging to this
objectconstraintLoc
- actual world location of constraintweight
- weight used in constraintcon
- the constraint to modifypublic void markMasters(Vertex3d vtx, boolean marked)
CollisionData
vtx
as being "used"public int numActiveUnmarkedMasters(Vertex3d vtx)
CollisionData
vtx
.
Used for determining whether or not a collision should be allowed.