public class RigidSphere extends RigidBody implements Wrappable
RigidBody.InertiaMethod
ModelComponent.NavpanelVisibility
Collidable.Collidability, Collidable.DefaultCollidable
dynamicVelInWorldCoords, myRenderFrame
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
Default, Deformable, RigidBody, Self
COPY_REFERENCES
TG_ARTICULATED, TG_SIMULATING
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
RigidSphere() |
RigidSphere(java.lang.String name,
double r,
double density) |
RigidSphere(java.lang.String name,
double r,
double density,
int nslices) |
Modifier and Type | Method and Description |
---|---|
double |
getRadius() |
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 |
setRadius(double r) |
void |
surfaceTangent(Point3d pr,
Point3d p0,
Point3d p1,
double lam,
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. |
void |
transformGeometry(GeometryTransformer gtr,
TransformGeometryContext context,
int flags)
Transforms the geometry of this component, using the geometry transformer
gtr to transform its individual attributes. |
addConnector, addEffectiveInertia, addEffectivePointMass, allowCollision, applyGravity, computeVolume, containsContactMaster, copy, createBox, createCylinder, createEllipsoid, createFromMesh, createFromMesh, createFromMesh, createFromMesh, createIcosahedralSphere, createRenderProps, createSphere, extrapolatePose, getAllPropertyInfo, getCenterOfMass, getCenterOfMass, getCollidable, getCollisionMesh, getConnectors, getCopyReferences, getDensity, getDensityRange, getEffectiveInertia, getEffectiveMass, getEffectiveMassForces, getFileTransform, getFrameMarkers, getInertia, getInertiaMethod, getInverseMass, getMass, getMass, getMass, getMassRange, getMesh, getMeshFileName, getMeshFileTransform, getRotationalInertia, getRotationalInertia, getSurfaceMesh, getSurfaceMeshes, getVertexMasters, isDeformable, isDuplicatable, isFileTransformRigid, isFreeBody, isMassConstant, isMeshModfied, mulInverseEffectiveMass, numSurfaceMeshes, prerender, removeConnector, render, resetEffectiveMass, scaleDistance, scaleMass, scaleMesh, scan, setCenterOfMass, setCollidable, setDensity, setDynamic, setInertia, setInertia, setInertia, setInertia, setInertiaFromDensity, setInertiaFromMass, setInertiaMethod, setMass, setMesh, setMesh, setMesh, setMeshFileName, setMeshFileTransform, setPose, setRotationalInertia, setSurfaceMesh, setSurfaceMesh, updateAttachmentPosStates, updateBounds, write
addExternalForce, addForce, addPointForce, addPointForce, addPointMass, addPosImpulse, addPosJacobian, addScaledExternalForce, addSolveBlock, addSolveBlocks, addTargetJacobian, addToPointVelocity, addTransformableDependencies, addVelJacobian, applyExternalForces, applyForces, computeAppliedWrench, computeLocalPointForceJacobian, computePointCoriolis, computePointLocation, computePointPosition, computePointVelocity, computePointVelocity, computePointVelocity, computeWorldPointForceJacobian, createFrameAttachment, createMassBlock, createPointAttachment, getAxisLength, getBodyForce, getBodyVelocity, getBodyVelState, getExternalForce, getForce, getForce, getForce, getFrameDamping, getFrameDampingMode, getJacobianType, getMoment, getOrientation, getOrientation, getPosDerivative, getPose, getPose, getPosition, getPosState, getPosStateSize, getRotaryDamping, getRotaryDampingMode, getRotation, getSelection, getTargetActivity, getTargetOrientation, getTargetPos, getTargetPose, getTargetPosition, getTargetVel, getTargetVelocity, getTraceablePositionProperty, getTraceables, getTransForce, getVelocity, getVelocity, getVelState, getVelStateSize, getWorldVelState, resetTargets, setAxisLength, setBodyVelocity, setContactConstraint, setExternalForce, setForce, setForce, setFrameDamping, setFrameDampingMode, setOrientation, setPose, setPosition, setPosState, setRotaryDamping, setRotaryDampingMode, setRotation, setState, setTargetActivity, setTargetOrientation, setTargetPos, setTargetPose, setTargetPosition, setTargetVel, setTargetVelocity, setVelocity, setVelocity, setVelState, subPointForce, subPointForce, transformPose, velocityLimitExceeded, zeroExternalForces, zeroForces
addConstrainer, addMasterAttachment, getAttachment, getConstrainers, getMasterAttachments, getSolveIndex, hasState, isActive, isAttached, isControllable, isDynamic, isParametric, removeConstrainer, removeMasterAttachment, setAttached, setSolveIndex, transformGeometry
getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderProps, updateRenderProps
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, connectToHierarchy, createTempFlag, disconnectFromHierarchy, getChildren, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, isConnectedToHierarchy, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createPointAttachment
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences
getAllPropertyInfo, getProperty
getChildren, hasChildren
isWritable, write
transformPose
createFrameAttachment
addConstrainer, addMasterAttachment, checkFlag, clearFlag, getAttachment, getConstrainers, getMasterAttachments, getSolveIndex, isActive, isAttached, isControllable, isDynamic, isParametric, removeConstrainer, removeMasterAttachment, setAttached, setFlag, setSolveIndex
transformGeometry
public RigidSphere()
public RigidSphere(java.lang.String name, double r, double density)
public RigidSphere(java.lang.String name, double r, double density, int nslices)
public double getRadius()
public void setRadius(double r)
public void surfaceTangent(Point3d pr, Point3d p0, Point3d p1, double lam, Vector3d sideNrm)
Wrappable
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, pt
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
pr
- returns the tangent pointp0
- first point of the linep1
- second point of the linelam
- parameter defining point p0 as defined abovepublic double penetrationDistance(Vector3d nrm, Matrix3d dnrm, Point3d p0)
Wrappable
p0
into this
Wrappable, along with the normal nrm
that points from
p0
to its nearest point on the surface. 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. The returned distance should be negative.
If p0
is not penetrating, the method should return 0 as
quickly as it can.penetrationDistance
in interface Wrappable
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 forpublic void transformGeometry(GeometryTransformer gtr, TransformGeometryContext context, int flags)
TransformableGeometry
gtr
to transform its individual attributes. The
context
argument supplies information about what other
components are currently being transformed, and also allows the
requesting of update actions to be performed after all transform called
have completed. The context is also the usual entity that calls
this method, from within its TransformGeometryContext.apply(maspack.geometry.GeometryTransformer, int)
method. The argument flags
provides flags to specify
various conditions associated with the the transformation.
At present, the available flags are TransformableGeometry.TG_SIMULATING
and
TransformableGeometry.TG_ARTICULATED
.
This method is not usually called directly by applications.
Instead, it is typically called from within the
TransformGeometryContext.apply(maspack.geometry.GeometryTransformer, int)
method of the context,
which takes care of the various operations needed for a
complete transform operation, including calling
TransformableGeometry.addTransformableDependencies(artisynth.core.modelbase.TransformGeometryContext, int)
to collect other
components that should be transformed, calling
TransformableGeometry.transformGeometry(maspack.matrix.AffineTransform3dBase)
for each component, notifying
component parents that the geometry has changed, and calling
any requested TransformGeometryAction
s. More details
are given in the documentation for
TransformGeometryContext.apply(maspack.geometry.GeometryTransformer, int)
.
TransformGeometryContext
provides a number of
static convenience transform
methods
which take care of building the context and calling
apply()
for a specified set of components.
This method should not
generally call transformGeometry()
for its descendant
components. Instead, descendants needing transformation should be
specified by adding them to the context in the method TransformableGeometry.addTransformableDependencies(artisynth.core.modelbase.TransformGeometryContext, int)
.
transformGeometry
in interface TransformableGeometry
transformGeometry
in class RigidBody
gtr
- transformer implementing the transformcontext
- context information, including what other components
are being transformedflags
- specifies conditions associated with the transformation