|
JPH_OVERRIDE_NEW_DELETE | MutableCompoundShape () |
| Constructor.
|
|
| MutableCompoundShape (const MutableCompoundShapeSettings &inSettings, ShapeResult &outResult) |
|
Ref< MutableCompoundShape > | Clone () const |
| Clone this shape. Can be used to avoid race conditions. See the documentation of this class for more information.
|
|
virtual bool | CastRay (const RayCast &inRay, const SubShapeIDCreator &inSubShapeIDCreator, RayCastResult &ioHit) const override |
|
virtual void | CastRay (const RayCast &inRay, const RayCastSettings &inRayCastSettings, const SubShapeIDCreator &inSubShapeIDCreator, CastRayCollector &ioCollector, const ShapeFilter &inShapeFilter={ }) const override |
|
virtual void | CollidePoint (Vec3Arg inPoint, const SubShapeIDCreator &inSubShapeIDCreator, CollidePointCollector &ioCollector, const ShapeFilter &inShapeFilter={ }) const override |
|
virtual void | CollectTransformedShapes (const AABox &inBox, Vec3Arg inPositionCOM, QuatArg inRotation, Vec3Arg inScale, const SubShapeIDCreator &inSubShapeIDCreator, TransformedShapeCollector &ioCollector, const ShapeFilter &inShapeFilter) const override |
|
virtual int | GetIntersectingSubShapes (const AABox &inBox, uint *outSubShapeIndices, int inMaxSubShapeIndices) const override |
|
virtual int | GetIntersectingSubShapes (const OrientedBox &inBox, uint *outSubShapeIndices, int inMaxSubShapeIndices) const override |
|
virtual void | SaveBinaryState (StreamOut &inStream) const override |
| Saves the contents of the shape in binary form to inStream.
|
|
virtual Stats | GetStats () const override |
| Get stats of this shape. Use for logging / data collection purposes only. Does not add values from child shapes, use GetStatsRecursive for this.
|
|
template<class Visitor > |
void | WalkSubShapes (Visitor &ioVisitor) const |
|
|
uint | AddShape (Vec3Arg inPosition, QuatArg inRotation, const Shape *inShape, uint32 inUserData=0) |
|
void | RemoveShape (uint inIndex) |
|
void | ModifyShape (uint inIndex, Vec3Arg inPosition, QuatArg inRotation) |
|
void | ModifyShape (uint inIndex, Vec3Arg inPosition, QuatArg inRotation, const Shape *inShape) |
|
void | ModifyShapes (uint inStartIndex, uint inNumber, const Vec3 *inPositions, const Quat *inRotations, uint inPositionStride=sizeof(Vec3), uint inRotationStride=sizeof(Quat)) |
| Batch set positions / orientations, this avoids duplicate work due to bounding box calculation. Beware this can create a race condition if you're running collision queries in parallel. See class documentation for more information.
|
|
void | AdjustCenterOfMass () |
|
JPH_OVERRIDE_NEW_DELETE | CompoundShape (EShapeSubType inSubType) |
| Constructor.
|
|
| CompoundShape (EShapeSubType inSubType, const ShapeSettings &inSettings, ShapeResult &outResult) |
|
virtual Vec3 | GetCenterOfMass () const override |
| All shapes are centered around their center of mass. This function returns the center of mass position that needs to be applied to transform the shape to where it was created.
|
|
virtual bool | MustBeStatic () const override |
| Check if this shape can only be used to create a static body or if it can also be dynamic/kinematic.
|
|
virtual AABox | GetLocalBounds () const override |
| Get local bounding box including convex radius, this box is centered around the center of mass rather than the world transform.
|
|
virtual uint | GetSubShapeIDBitsRecursive () const override |
| Get the max number of sub shape ID bits that are needed to be able to address any leaf shape in this shape. Used mainly for checking that it is smaller or equal than SubShapeID::MaxBits.
|
|
virtual AABox | GetWorldSpaceBounds (Mat44Arg inCenterOfMassTransform, Vec3Arg inScale) const override |
|
virtual float | GetInnerRadius () const override |
|
virtual MassProperties | GetMassProperties () const override |
| Calculate the mass and inertia of this shape.
|
|
virtual const PhysicsMaterial * | GetMaterial (const SubShapeID &inSubShapeID) const override |
| Get the material assigned to a particular sub shape ID.
|
|
virtual const Shape * | GetLeafShape (const SubShapeID &inSubShapeID, SubShapeID &outRemainder) const override |
|
virtual uint64 | GetSubShapeUserData (const SubShapeID &inSubShapeID) const override |
| Get the user data of a particular sub shape ID. Corresponds with the value stored in Shape::GetUserData of the leaf shape pointed to by inSubShapeID.
|
|
virtual TransformedShape | GetSubShapeTransformedShape (const SubShapeID &inSubShapeID, Vec3Arg inPositionCOM, QuatArg inRotation, Vec3Arg inScale, SubShapeID &outRemainder) const override |
|
virtual Vec3 | GetSurfaceNormal (const SubShapeID &inSubShapeID, Vec3Arg inLocalSurfacePosition) const override |
|
virtual void | GetSupportingFace (const SubShapeID &inSubShapeID, Vec3Arg inDirection, Vec3Arg inScale, Mat44Arg inCenterOfMassTransform, SupportingFace &outVertices) const override |
|
virtual void | GetSubmergedVolume (Mat44Arg inCenterOfMassTransform, Vec3Arg inScale, const Plane &inSurface, float &outTotalVolume, float &outSubmergedVolume, Vec3 &outCenterOfBuoyancy JPH_IF_DEBUG_RENDERER(, RVec3Arg inBaseOffset)) const override |
|
virtual void | Draw (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, Vec3Arg inScale, ColorArg inColor, bool inUseMaterialColors, bool inDrawWireframe) const override |
| Draw the shape at a particular location with a particular color (debugging purposes)
|
|
virtual void | DrawGetSupportFunction (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, Vec3Arg inScale, ColorArg inColor, bool inDrawSupportDirection) const override |
| Draw the results of the GetSupportFunction with the convex radius added back on to show any errors introduced by this process (only relevant for convex shapes)
|
|
virtual void | DrawGetSupportingFace (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, Vec3Arg inScale) const override |
| Draw the results of the GetSupportingFace function to show any errors introduced by this process (only relevant for convex shapes)
|
|
virtual void | CollideSoftBodyVertices (Mat44Arg inCenterOfMassTransform, Vec3Arg inScale, const CollideSoftBodyVertexIterator &inVertices, uint inNumVertices, int inCollidingShapeIndex) const override |
|
virtual void | TransformShape (Mat44Arg inCenterOfMassTransform, TransformedShapeCollector &ioCollector) const override |
|
virtual void | GetTrianglesStart (GetTrianglesContext &ioContext, const AABox &inBox, Vec3Arg inPositionCOM, QuatArg inRotation, Vec3Arg inScale) const override |
|
virtual int | GetTrianglesNext (GetTrianglesContext &ioContext, int inMaxTrianglesRequested, Float3 *outTriangleVertices, const PhysicsMaterial **outMaterials=nullptr) const override |
|
const SubShapes & | GetSubShapes () const |
| Access to the sub shapes of this compound.
|
|
uint | GetNumSubShapes () const |
| Get the total number of sub shapes.
|
|
const SubShape & | GetSubShape (uint inIdx) const |
| Access to a particular sub shape.
|
|
uint32 | GetCompoundUserData (uint inIdx) const |
| Get the user data associated with a shape in this compound.
|
|
void | SetCompoundUserData (uint inIdx, uint32 inUserData) |
| Set the user data associated with a shape in this compound.
|
|
bool | IsSubShapeIDValid (SubShapeID inSubShapeID) const |
|
uint32 | GetSubShapeIndexFromID (SubShapeID inSubShapeID, SubShapeID &outRemainder) const |
|
SubShapeIDCreator | GetSubShapeIDFromIndex (int inIdx, const SubShapeIDCreator &inParentSubShapeID) const |
| Convert a sub shape index to a sub shape ID.
|
|
virtual void | SaveSubShapeState (ShapeList &outSubShapes) const override |
| Outputs the shape references that this shape has to outSubShapes.
|
|
virtual void | RestoreSubShapeState (const ShapeRefC *inSubShapes, uint inNumShapes) override |
| Restore the shape references after calling sRestoreFromBinaryState. Note that the exact same shapes need to be provided in the same order as returned by SaveSubShapeState.
|
|
virtual Stats | GetStatsRecursive (VisitedShapes &ioVisitedShapes) const override |
| Volume of this shape (m^3). Note that for compound shapes the volume may be incorrect since child shapes can overlap which is not accounted for.
|
|
virtual float | GetVolume () const override |
|
virtual bool | IsValidScale (Vec3Arg inScale) const override |
|
virtual Vec3 | MakeScaleValid (Vec3Arg inScale) const override |
|
virtual AABox | GetWorldSpaceBounds (Mat44Arg inCenterOfMassTransform, Vec3Arg inScale) const |
|
AABox | GetWorldSpaceBounds (DMat44Arg inCenterOfMassTransform, Vec3Arg inScale) const |
| Get world space bounds including convex radius.
|
|
| Shape (EShapeType inType, EShapeSubType inSubType) |
| Constructor.
|
|
| Shape (EShapeType inType, EShapeSubType inSubType, const ShapeSettings &inSettings, ShapeResult &outResult) |
|
virtual | ~Shape ()=default |
| Destructor.
|
|
EShapeType | GetType () const |
| Get type.
|
|
EShapeSubType | GetSubType () const |
|
uint64 | GetUserData () const |
| User data (to be used freely by the application)
|
|
void | SetUserData (uint64 inUserData) |
|
AABox | GetWorldSpaceBounds (DMat44Arg inCenterOfMassTransform, Vec3Arg inScale) const |
| Get world space bounds including convex radius.
|
|
virtual void | GetSubmergedVolume (Mat44Arg inCenterOfMassTransform, Vec3Arg inScale, const Plane &inSurface, float &outTotalVolume, float &outSubmergedVolume, Vec3 &outCenterOfBuoyancy, RVec3Arg inBaseOffset) const =0 |
|
ShapeResult | ScaleShape (Vec3Arg inScale) const |
|
virtual void | SaveMaterialState (PhysicsMaterialList &outMaterials) const |
| Outputs the material references that this shape has to outMaterials.
|
|
virtual void | RestoreMaterialState (const PhysicsMaterialRefC *inMaterials, uint inNumMaterials) |
| Restore the material references after calling sRestoreFromBinaryState. Note that the exact same materials need to be provided in the same order as returned by SaveMaterialState.
|
|
void | SaveWithChildren (StreamOut &inStream, ShapeToIDMap &ioShapeMap, MaterialToIDMap &ioMaterialMap) const |
| Save this shape, all its children and its materials. Pass in an empty map in ioShapeMap / ioMaterialMap or reuse the same map while saving multiple shapes to the same stream in order to avoid writing duplicates.
|
|
| RefTarget ()=default |
| Constructor.
|
|
| RefTarget (const RefTarget &) |
|
| ~RefTarget () |
| assert no one is referencing us
|
|
void | SetEmbedded () const |
|
RefTarget & | operator= (const RefTarget &) |
| Assignment operator.
|
|
uint32 | GetRefCount () const |
| Get current refcount of this object.
|
|
void | AddRef () const |
| Add or release a reference to this object.
|
|
void | Release () const |
|
| NonCopyable ()=default |
|
| NonCopyable (const NonCopyable &)=delete |
|
void | operator= (const NonCopyable &)=delete |
|
A compound shape, sub shapes can be rotated and translated. This shape is optimized for adding / removing and changing the rotation / translation of sub shapes but is less efficient in querying. Shifts all child objects so that they're centered around the center of mass (which needs to be kept up to date by calling AdjustCenterOfMass).
Note: If you're using MutableCompoundShape and are querying data while modifying the shape you'll have a race condition. In this case it is best to create a new MutableCompoundShape using the Clone function. You replace the shape on a body using BodyInterface::SetShape. If a query is still working on the old shape, it will have taken a reference and keep the old shape alive until the query finishes.