public class RigidEllipsoid extends RigidBody implements WrapComponent
RigidBody.InertiaMethodModelComponent.FilePathSaveType, ModelComponent.NavpanelVisibilityCollidable.Collidability, Collidable.GroupCompositeComponent.NavpanelDisplayDEFAULT_GROUNDED, DEFAULT_SUBMESHES_SELECTABLE, myPropsdynamicVelInWorldCoords, myRenderFrameenforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNamesTRANSPARENT, TWO_DIMENSIONALAll, AllBodies, Deformable, Rigid, SelfCOPY_REFERENCES, REST_POSITIONTG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATING| Constructor and Description | 
|---|
| RigidEllipsoid() | 
| RigidEllipsoid(java.lang.String name,
              double a,
              double b,
              double c,
              double density) | 
| RigidEllipsoid(java.lang.String name,
              double a,
              double b,
              double c,
              double density,
              int nslices) | 
| Modifier and Type | Method and Description | 
|---|---|
| double | getCharacteristicRadius()Returns a typical "radius" that should be expected for this wrappable,
 defined as the distance for a surface point to the center. | 
| Vector3d | getSemiAxisLengths()Returns the lengths of the semi-axes of this ellipsoid. | 
| void | getSemiAxisLengths(Vector3d lengths)Returns the lengths of the semi-axes of this ellipsoid. | 
| double | penetrationDistance(Vector3d nrm,
                   Matrix3d dnrm,
                   Point3d p0)Computes the penetration distance of a point  p0into this
 Wrappable, along with the normalnrmthat points fromp0to its nearest point on the surface. | 
| void | setSemiAxisLengths(Vector3d lengths)Sets the lengths of the semi-axes of this ellipsoid. | 
| void | surfaceTangent(Point3d pr,
              Point3d pa,
              Point3d p1,
              double lam0,
              Vector3d sideNrm)Computes the point  pton 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
  gtrto transform its individual attributes. | 
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, getAllPropertyInfo, getByNumber, getCenterOfMass, getCenterOfMass, getChildren, getCollidable, getCollidableAncestor, getCollidableIndex, getCollisionMesh, getConnectors, getCopyReferences, getDensity, getDensityRange, getDistanceGrid, getDistanceGridComp, getDistanceGridRes, getEffectiveInertia, getEffectiveMass, getEffectiveMass, getEffectiveMassForces, getEffectiveMassForces, 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, isGrounded, 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, setGrounded, setInertia, setInertia, setInertia, setInertia, setInertiaFromDensity, setInertiaFromMass, setInertialDamping, setInertialDampingMode, setInertiaMethod, setMass, setMesh, setMesh, setMesh, setPose, setPosState, setRotationalInertia, setSubmeshesSelectable, setSurfaceMesh, setSurfaceMesh, setSurfaceMesh, subEffectiveInertia, transformCoordinateFrame, translateCoordinateFrame, updateBounds, updateNameMap, writeadd1DConstraintBlocks, 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, getFrameMarkers, 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, zeroForcesaddAttachmentRequest, addConstrainer, addMasterAttachment, connectToHierarchy, disconnectFromHierarchy, getAttachment, getConstrainers, getMasterAttachments, getSolveIndex, hasState, isActive, isAttached, isControllable, isDynamic, isParametric, removeAttachmentRequest, removeConstrainer, removeMasterAttachment, setAttached, setSolveIndex, transformGeometrydefaultRenderPropsAreNull, getRenderHints, getRenderProps, isSelectable, isVisible, numSelectionQueriesNeeded, setRenderProps, setVisible, updateRenderPropscheckFlag, 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, updateReferencesequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetAxisDrawStyle, getAxisLength, setAxisLengthgetSelection, isSelectable, numSelectionQueriesNeededgetRenderHints, prerender, render, updateBoundscreateRenderProps, getRenderProps, setRenderPropscreatePointAttachmentconnectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferencesgetAllPropertyInfo, getPropertygetChildren, hasChildrenpostscanisWritable, writegetPosegetSurfaceMesh, getSurfaceMeshes, numSurfaceMeshestransformPosecreateFrameAttachmentrecursivelyFindaddAttachmentRequest, removeAttachmentRequestaddConstrainer, addMasterAttachment, getAttachment, getConstrainers, getMasterAttachments, getSolveIndex, isActive, isAttached, isControllable, isDynamic, isParametric, removeConstrainer, removeMasterAttachment, setAttached, setSolveIndexadvanceState, getAuxVarDerivative, getAuxVarState, getStateVersion, hasState, numAuxVars, requiresAdvance, setAuxVarStatetransformGeometry, transformPriorityisControllablepublic RigidEllipsoid()
public RigidEllipsoid(java.lang.String name,
                      double a,
                      double b,
                      double c,
                      double density)
public RigidEllipsoid(java.lang.String name,
                      double a,
                      double b,
                      double c,
                      double density,
                      int nslices)
public void getSemiAxisLengths(Vector3d lengths)
lengths - returns the semi-axes lengthspublic Vector3d getSemiAxisLengths()
public void setSemiAxisLengths(Vector3d lengths)
lengths - new semi-axes lengthspublic void surfaceTangent(Point3d pr, Point3d pa, Point3d p1, double lam0, Vector3d sideNrm)
RigidBodypt 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 WrappablesurfaceTangent in class RigidBodypr - 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 ptpublic double penetrationDistance(Vector3d nrm, Matrix3d dnrm, Point3d p0)
RigidBodyp0 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 WrappablepenetrationDistance in class RigidBodynrm - 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 WrappablegetCharacteristicRadius in class RigidBodypublic void transformGeometry(GeometryTransformer gtr, TransformGeometryContext context, int flags)
TransformableGeometrygtr 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 TransformGeometryActions. 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 TransformableGeometrytransformGeometry in class RigidBodygtr - transformer implementing the transformcontext - context information, including what other components
 are being transformedflags - specifies conditions associated with the transformation