C# Class BEPUphysics.CollisionShapes.ConvexShapes.ConvexShape

Superclass of convex collision shapes.
Inheritance: EntityShape
Show file Open project: Indiefreaks/igf Class Usage Examples

Protected Properties

Property Type Description
collisionMargin float
maximumRadius float
minimumRadius float

Public Methods

Method Description
ComputeCenter ( ) : Vector3

Computes the center of the shape. This can be considered its center of mass.

ComputeCenter ( float &volume ) : Vector3

Computes the center of the shape. This can be considered its center of mass. This calculation is often associated with the volume calculation, which is given by this method as well.

ComputeDistributionInformation ( ShapeDistributionInformation &shapeInfo ) : void
ComputeMaximumRadius ( ) : float

Computes the maximum radius of the shape. This is often larger than the actual maximum radius; it is simply an approximation that avoids underestimating.

ComputeMinimumRadius ( ) : float

Computes the minimum radius of the shape. This is often smaller than the actual minimum radius; it is simply an approximation that avoids overestimating.

ComputeVolume ( ) : float

Computes the volume of the shape.

ComputeVolumeDistribution ( ) : Matrix3x3

Computes the volume distribution of the shape. The volume distribution can be used to compute inertia tensors when paired with mass and other tuning factors.

ComputeVolumeDistribution ( float &volume ) : Matrix3x3

Computes the volume distribution of the shape as well as its volume. The volume distribution can be used to compute inertia tensors when paired with mass and other tuning factors.

GetBoundingBox ( RigidTransform &shapeTransform, BoundingBox &boundingBox ) : void

Gets the bounding box of the shape given a transform.

GetExtremePoint ( Vector3 direction, RigidTransform &shapeTransform, Vector3 &extremePoint ) : void

Gets the extreme point of the shape in world space in a given direction with margin expansion.

GetExtremePointWithoutMargin ( Vector3 direction, RigidTransform &shapeTransform, Vector3 &extremePoint ) : void

Gets the extreme point of the shape in world space in a given direction.

GetLocalBoundingBox ( RigidTransform &shapeTransform, AffineTransform &spaceTransform, BoundingBox &boundingBox ) : void

Gets the bounding box of the convex shape transformed first into world space, and then into the local space of another affine transform.

GetLocalExtremePoint ( Vector3 direction, Vector3 &extremePoint ) : void

Gets the extreme point of the shape in local space in a given direction with margin expansion.

GetLocalExtremePointWithoutMargin ( Vector3 &direction, Vector3 &extremePoint ) : void

Gets the extreme point of the shape in local space in a given direction.

GetSweptBoundingBox ( RigidTransform &transform, Vector3 &sweep, BoundingBox &boundingBox ) : void

Computes a bounding box for the shape and expands it.

GetSweptLocalBoundingBox ( RigidTransform &shapeTransform, AffineTransform &spaceTransform, Vector3 &sweep, BoundingBox &boundingBox ) : void

Gets the bounding box of the convex shape transformed first into world space, and then into the local space of another affine transform.

RayTest ( Ray &ray, RigidTransform &transform, float maximumLength, RayHit &hit ) : bool

Gets the intersection between the convex shape and the ray.

Protected Methods

Method Description
OnShapeChanged ( ) : void

Method Details

ComputeCenter() public method

Computes the center of the shape. This can be considered its center of mass.
public ComputeCenter ( ) : Vector3
return Vector3

ComputeCenter() public method

Computes the center of the shape. This can be considered its center of mass. This calculation is often associated with the volume calculation, which is given by this method as well.
public ComputeCenter ( float &volume ) : Vector3
volume float Volume of the shape.
return Vector3

ComputeDistributionInformation() public method

public ComputeDistributionInformation ( ShapeDistributionInformation &shapeInfo ) : void
shapeInfo ShapeDistributionInformation
return void

ComputeMaximumRadius() public abstract method

Computes the maximum radius of the shape. This is often larger than the actual maximum radius; it is simply an approximation that avoids underestimating.
public abstract ComputeMaximumRadius ( ) : float
return float

ComputeMinimumRadius() public abstract method

Computes the minimum radius of the shape. This is often smaller than the actual minimum radius; it is simply an approximation that avoids overestimating.
public abstract ComputeMinimumRadius ( ) : float
return float

ComputeVolume() public method

Computes the volume of the shape.
public ComputeVolume ( ) : float
return float

ComputeVolumeDistribution() public method

Computes the volume distribution of the shape. The volume distribution can be used to compute inertia tensors when paired with mass and other tuning factors.
public ComputeVolumeDistribution ( ) : Matrix3x3
return BEPUutilities.Matrix3x3

ComputeVolumeDistribution() public method

Computes the volume distribution of the shape as well as its volume. The volume distribution can be used to compute inertia tensors when paired with mass and other tuning factors.
public ComputeVolumeDistribution ( float &volume ) : Matrix3x3
volume float Volume of the shape.
return BEPUutilities.Matrix3x3

GetBoundingBox() public method

Gets the bounding box of the shape given a transform.
public GetBoundingBox ( RigidTransform &shapeTransform, BoundingBox &boundingBox ) : void
shapeTransform BEPUutilities.RigidTransform Transform to use.
boundingBox BoundingBox Bounding box of the transformed shape.
return void

GetExtremePoint() public method

Gets the extreme point of the shape in world space in a given direction with margin expansion.
public GetExtremePoint ( Vector3 direction, RigidTransform &shapeTransform, Vector3 &extremePoint ) : void
direction Vector3 Direction to find the extreme point in.
shapeTransform BEPUutilities.RigidTransform Transform to use for the shape.
extremePoint Vector3 Extreme point on the shape.
return void

GetExtremePointWithoutMargin() public method

Gets the extreme point of the shape in world space in a given direction.
public GetExtremePointWithoutMargin ( Vector3 direction, RigidTransform &shapeTransform, Vector3 &extremePoint ) : void
direction Vector3 Direction to find the extreme point in.
shapeTransform BEPUutilities.RigidTransform Transform to use for the shape.
extremePoint Vector3 Extreme point on the shape.
return void

GetLocalBoundingBox() public method

Gets the bounding box of the convex shape transformed first into world space, and then into the local space of another affine transform.
public GetLocalBoundingBox ( RigidTransform &shapeTransform, AffineTransform &spaceTransform, BoundingBox &boundingBox ) : void
shapeTransform BEPUutilities.RigidTransform Transform to use to put the shape into world space.
spaceTransform BEPUutilities.AffineTransform Used as the frame of reference to compute the bounding box. /// In effect, the shape is transformed by the inverse of the space transform to compute its bounding box in local space.
boundingBox BoundingBox Bounding box in the local space.
return void

GetLocalExtremePoint() public method

Gets the extreme point of the shape in local space in a given direction with margin expansion.
public GetLocalExtremePoint ( Vector3 direction, Vector3 &extremePoint ) : void
direction Vector3 Direction to find the extreme point in.
extremePoint Vector3 Extreme point on the shape.
return void

GetLocalExtremePointWithoutMargin() public abstract method

Gets the extreme point of the shape in local space in a given direction.
public abstract GetLocalExtremePointWithoutMargin ( Vector3 &direction, Vector3 &extremePoint ) : void
direction Vector3 Direction to find the extreme point in.
extremePoint Vector3 Extreme point on the shape.
return void

GetSweptBoundingBox() public method

Computes a bounding box for the shape and expands it.
public GetSweptBoundingBox ( RigidTransform &transform, Vector3 &sweep, BoundingBox &boundingBox ) : void
transform BEPUutilities.RigidTransform Transform to use to position the shape.
sweep Vector3 Extra to add to the bounding box.
boundingBox BoundingBox Expanded bounding box.
return void

GetSweptLocalBoundingBox() public method

Gets the bounding box of the convex shape transformed first into world space, and then into the local space of another affine transform.
public GetSweptLocalBoundingBox ( RigidTransform &shapeTransform, AffineTransform &spaceTransform, Vector3 &sweep, BoundingBox &boundingBox ) : void
shapeTransform BEPUutilities.RigidTransform Transform to use to put the shape into world space.
spaceTransform BEPUutilities.AffineTransform Used as the frame of reference to compute the bounding box. /// In effect, the shape is transformed by the inverse of the space transform to compute its bounding box in local space.
sweep Vector3 Vector to expand the bounding box with in local space.
boundingBox BoundingBox Bounding box in the local space.
return void

OnShapeChanged() protected method

protected OnShapeChanged ( ) : void
return void

RayTest() public method

Gets the intersection between the convex shape and the ray.
public RayTest ( Ray &ray, RigidTransform &transform, float maximumLength, RayHit &hit ) : bool
ray Ray Ray to test.
transform BEPUutilities.RigidTransform Transform of the convex shape.
maximumLength float Maximum distance to travel in units of the ray direction's length.
hit BEPUutilities.RayHit Ray hit data, if any.
return bool

Property Details

collisionMargin protected property

protected float collisionMargin
return float

maximumRadius protected property

protected float maximumRadius
return float

minimumRadius protected property

protected float minimumRadius
return float