Class SphereShape
Represents a sphere.
public class SphereShape : RigidBodyShape, IDynamicTreeProxy, IPartitionedSetIndex, IUpdatableBoundingBox, ISupportMappable, IRayCastable, ISweepTestable, IDistanceTestable
- Inheritance
-
SphereShape
- Implements
- Inherited Members
Constructors
SphereShape(float)
Initializes a new instance of the SphereShape class with an optional radius parameter. The default radius is 1.0 units.
public SphereShape(float radius = 1)
Parameters
radiusfloatThe radius of the sphere. Defaults to (Real)1.0.
Exceptions
- ArgumentOutOfRangeException
Thrown when
radiusis less than or equal to zero.
Properties
Radius
Gets or sets the radius of the sphere.
public float Radius { get; set; }
Property Value
Exceptions
- ArgumentOutOfRangeException
Thrown when
valueis less than or equal to zero.
Methods
CalculateBoundingBox(in JQuaternion, in JVector, out JBoundingBox)
public override void CalculateBoundingBox(in JQuaternion orientation, in JVector position, out JBoundingBox box)
Parameters
orientationJQuaternionpositionJVectorboxJBoundingBox
CalculateMassInertia(out JMatrix, out JVector, out float)
Calculates the mass and inertia of the shape. Can be overridden by child classes to improve performance or accuracy. The default implementation relies on an approximation of the shape constructed using the support map function.
public override void CalculateMassInertia(out JMatrix inertia, out JVector com, out float mass)
Parameters
Remarks
The inertia tensor is computed relative to the coordinate system origin (0,0,0), not the center of mass.
GetCenter(out JVector)
Computes a point deep within the shape, used as an initial search point in GJK-based algorithms.
public override void GetCenter(out JVector point)
Parameters
pointJVectorA point guaranteed to be inside the convex hull, typically the center of mass.
LocalRayCast(in JVector, in JVector, out JVector, out float)
Performs a local ray cast against the shape, checking if a ray originating from a specified point and traveling in a specified direction intersects with the object. It does not take into account the transformation of the associated rigid body.
public override bool LocalRayCast(in JVector origin, in JVector direction, out JVector normal, out float lambda)
Parameters
originJVectorThe starting point of the ray.
directionJVectorThe direction of the ray. This vector does not need to be normalized.
normalJVectorWhen this method returns, contains the surface normal at the point of intersection, if an intersection occurs.
lambdafloatWhen this method returns, contains the scalar value representing the distance along the ray's direction vector from the
originto the intersection point. The hit point can be calculated as:origin + lambda * direction.
Returns
- bool
trueif the ray intersects with the object; otherwise,false.
SupportMap(in JVector, out JVector)
Computes the point on the shape that is furthest in the specified direction.
public override void SupportMap(in JVector direction, out JVector result)