public class RigidMesh extends RigidBody implements Wrappable
RigidBody.InertiaMethod
ModelComponent.NavpanelVisibility
Collidable.Collidability, Collidable.Group
CompositeComponent.NavpanelDisplay
Modifier and Type | Field and Description |
---|---|
static PropertyList |
myProps |
DEFAULT_SUBMESHES_SELECTABLE
dynamicVelInWorldCoords, myRenderFrame
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
All, AllBodies, Deformable, Rigid, Self
COPY_REFERENCES, REST_POSITION
TG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATING
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
RigidMesh() |
RigidMesh(RigidTransform3d XBodyToWorld,
SpatialInertia M,
PolygonalMesh mesh,
java.lang.String meshFileName) |
RigidMesh(java.lang.String name,
PolygonalMesh mesh,
java.lang.String meshFilePath,
double density,
double scale) |
Modifier and Type | Method and Description |
---|---|
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
double |
getCharacteristicRadius()
Returns a typical "radius" that should be expected for this wrappable,
defined as the distance for a surface point to the center.
|
DistanceGrid.TetDesc |
getQuadTet(Point3d p0) |
boolean |
getRayCastTangent() |
boolean |
getSmoothInterpolation() |
double |
penetrationDistance(Vector3d nrm,
Matrix3d Dnrm,
Point3d p0)
Computes the penetration distance of a point
p0 into this
Wrappable, along with the normal nrm that points from
p0 to its nearest point on the surface. |
void |
setRayCastTangent(boolean enable) |
void |
setSmoothInterpolation(boolean smooth) |
void |
surfaceTangent(Point3d pr,
Point3d pa,
Point3d p1,
double lam0,
Vector3d sideNrm)
Computes the point
pt on the surface of this Wrappable such
that the line segment (pa,pt) is both tangent to the surface and as near
as possible to the line defined by the two points pa and p1. |
add, addConnector, addEffectiveFrameMass, addEffectivePointMass, addMesh, addMesh, addMesh, addMeshComp, addTransformableDependencies, addVelJacobian, allowCollision, applyForces, applyGravity, centerPoseOnCenterOfMass, clearMeshComps, collectVertexMasters, componentChanged, containsConnector, containsContactMaster, containsMeshComp, copy, createBox, createBox, createBox, createCylinder, createEllipsoid, createFromMesh, createFromMesh, createFromMesh, createFromMesh, createIcosahedralSphere, createRenderProps, createSphere, extrapolatePose, findComponent, get, get, getByNumber, getCenterOfMass, getCenterOfMass, getChildren, getCollidable, getCollidableAncestor, getCollidableIndex, getCollisionMesh, getConnectors, getCopyReferences, getDensity, getDensityRange, getDistanceGrid, getDistanceGridComp, getDistanceGridRes, getEffectiveInertia, getEffectiveMass, getEffectiveMass, getEffectiveMassForces, getEffectiveMassForces, getFrameMarkers, getGridSurfaceRendering, getInertia, getInertialDamping, getInertialDampingMode, getInertiaMethod, getInverseMass, getMass, getMass, getMass, getMassRange, getMesh, getMeshComp, getMeshComp, getMeshComps, getNavpanelDisplay, getNumberLimit, getRotationalInertia, getRotationalInertia, getSubmeshesSelectable, getSurfaceMesh, getSurfaceMeshComp, getSurfaceMeshes, getVolume, hasChildren, hasDistanceGrid, hasForce, hasInvariantMasters, hierarchyContainsReferences, indexOf, isCompound, isDeformable, isDuplicatable, isFreeBody, isMassConstant, mulInverseEffectiveMass, mulInverseEffectiveMass, numComponents, numMeshComps, numSurfaceMeshes, postscan, prerender, remove, removeConnector, removeMeshComp, removeMeshComp, render, resetEffectiveMass, scaleDistance, scaleMass, scaleSurfaceMesh, scan, setCenterOfMass, setCollidable, setCollidableIndex, setDensity, setDisplayMode, setDistanceGridRes, setDynamic, setGridSurfaceRendering, setInertia, setInertia, setInertia, setInertia, setInertiaFromDensity, setInertiaFromMass, setInertialDamping, setInertialDampingMode, setInertiaMethod, setMass, setMesh, setMesh, setMesh, setPose, setPosState, setRotationalInertia, setSubmeshesSelectable, setSurfaceMesh, setSurfaceMesh, setSurfaceMesh, subEffectiveInertia, transformCoordinateFrame, transformGeometry, translateCoordinateFrame, updateBounds, updateNameMap, write
add1DConstraintBlocks, add2DConstraintBlocks, addExternalForce, addForce, addForce, addFrameForce, addPointForce, addPointForce, addPosImpulse, addPosJacobian, addRelativeVelocity, addScaledExternalForce, addSolveBlock, addSolveBlocks, addTargetJacobian, addToPointVelocity, applyExternalForces, collectMasterComponents, computeAppliedWrench, computeForceOnMasters, computeFrameLocation, computeFramePosition, computeFramePosVel, computeFrameVelocity, computePointCoriolis, computePointLocation, computePointPosition, computePointPosVel, computePointVelocity, createFrameAttachment, createMassBlock, createPointAttachment, getAxisDrawStyle, getAxisLength, getBodyForce, getBodyVelocity, getBodyVelState, getExternalForce, getForce, getForce, getForce, getFrameDamping, getFrameDampingMode, getJacobianType, getMoment, getOrientation, getOrientation, getPosDerivative, getPose, getPose, getPosition, getPosState, getPosStateSize, getRenderFrame, getRotaryDamping, getRotaryDampingMode, getRotation, getSelection, getState, getTargetActivity, getTargetOrientation, getTargetPos, getTargetPose, getTargetPosition, getTargetVel, getTargetVelocity, getTraceablePositionProperty, getTraceables, getTransForce, getVelocity, getVelocity, getVelState, getVelStateSize, getWorldVelState, resetTargets, setAxisDrawStyle, setAxisLength, setBodyVelocity, setContactConstraint, setExternalForce, setForce, setForce, setFrameDamping, setFrameDampingMode, setOrientation, setPose, setPosition, setRandomForce, setRandomPosState, setRandomVelState, setRotaryDamping, setRotaryDampingMode, setRotation, setState, setState, setTargetActivity, setTargetOrientation, setTargetPos, setTargetPose, setTargetPosition, setTargetVel, setTargetVelocity, setVelocity, setVelocity, setVelState, transformPose, updateAttachmentPosStates, velocityLimitExceeded, zeroExternalForces, zeroForces
addAttachmentRequest, addConstrainer, addMasterAttachment, connectToHierarchy, disconnectFromHierarchy, getAttachment, getConstrainers, getMasterAttachments, getSolveIndex, hasState, isActive, isAttached, isControllable, isDynamic, isParametric, removeAttachmentRequest, removeConstrainer, removeMasterAttachment, setAttached, setSolveIndex, transformGeometry
defaultRenderPropsAreNull, getRenderHints, getRenderProps, isSelectable, isVisible, numSelectionQueriesNeeded, setRenderProps, setVisible, updateRenderProps
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, createTempFlag, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, isFixed, isMarked, isScanning, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setScanning, setSelected, setWritable, updateReferences
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createPointAttachment
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferences
getProperty
getChildren, hasChildren
postscan
isWritable, write
transformPose
createFrameAttachment
addAttachmentRequest, removeAttachmentRequest
addConstrainer, addMasterAttachment, getAttachment, getConstrainers, getMasterAttachments, getSolveIndex, isActive, isAttached, isControllable, isDynamic, isParametric, removeConstrainer, removeMasterAttachment, setAttached, setSolveIndex
advanceState, getAuxVarDerivative, getAuxVarState, getStateVersion, hasState, numAuxVars, requiresAdvance, setAuxVarState
transformGeometry, transformPriority
isControllable
public static PropertyList myProps
public RigidMesh(RigidTransform3d XBodyToWorld, SpatialInertia M, PolygonalMesh mesh, java.lang.String meshFileName)
public RigidMesh(java.lang.String name, PolygonalMesh mesh, java.lang.String meshFilePath, double density, double scale)
public RigidMesh()
public void setSmoothInterpolation(boolean smooth)
public boolean getSmoothInterpolation()
public void setRayCastTangent(boolean enable)
public boolean getRayCastTangent()
public PropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class RigidBody
public void surfaceTangent(Point3d pr, Point3d pa, Point3d p1, double lam0, Vector3d sideNrm)
RigidBody
pt
on the surface of this Wrappable such
that the line segment (pa,pt) is both tangent to the surface and as near
as possible to the line defined by the two points pa and p1.
To assist with the computation, pKcheck[kmax]t
can be assumed to lie
fairly close to p1
, and its projection onto the line can be
assumed to lie between p1
and another point p0 defined by
p0 = (1-lam0) pa + lam0 p1where
lam0
is a parameter between 0 and 1.surfaceTangent
in interface Wrappable
surfaceTangent
in class RigidBody
pr
- returns the tangent pointpa
- first point of the linep1
- second point of the linelam0
- parameter defining point p0 as defined abovesideNrm
- a normalized vector perpendicular to the plane defined by
pa
, p1
and pt
. Can be used
to help compute pt
public DistanceGrid.TetDesc getQuadTet(Point3d p0)
public double penetrationDistance(Vector3d nrm, Matrix3d Dnrm, Point3d p0)
RigidBody
p0
into this
Wrappable, along with the normal nrm
that points from
p0
to its nearest point on the surface. The distance should
be negative if the point is inside the wrappable, and positive otherwise.
If the point is outside and further than some minimum distance,
then the method should return the constant Wrappable.OUTSIDE
.
If possible, the method should also compute the derivative of the
normal with respect to changes in p0
, and return this in
dnrm
. If this is not possible, dnrm
should be
set to 0.
penetrationDistance
in interface Wrappable
penetrationDistance
in class RigidBody
nrm
- returns the normal (should be normalized)Dnrm
- returns the derivative of the normal with respect to
changes in p0, or zero if this cannot be determined.p0
- point to determine penetration forWrappable.OUTSIDE
if the
point is further than some minimum distance from the wrappable.public double getCharacteristicRadius()
getCharacteristicRadius
in interface Wrappable
getCharacteristicRadius
in class RigidBody