Jolt Physics
A multi core friendly Game Physics Engine
|
Collision detection helper that collides a sphere vs one or more triangles. More...
#include <CollideSphereVsTriangles.h>
Public Member Functions | |
CollideSphereVsTriangles (const SphereShape *inShape1, Vec3Arg inScale1, Vec3Arg inScale2, Mat44Arg inCenterOfMassTransform1, Mat44Arg inCenterOfMassTransform2, const SubShapeID &inSubShapeID1, const CollideShapeSettings &inCollideShapeSettings, CollideShapeCollector &ioCollector) | |
void | Collide (Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, uint8 inActiveEdges, const SubShapeID &inSubShapeID2) |
Protected Attributes | |
const CollideShapeSettings & | mCollideShapeSettings |
Settings for this collision operation. More... | |
CollideShapeCollector & | mCollector |
The collector that will receive the results. More... | |
const SphereShape * | mShape1 |
The shape that we're colliding with. More... | |
Vec3 | mScale2 |
The scale of the shape (in shape local space) of the shape we're colliding against. More... | |
Mat44 | mTransform2 |
Transform of the shape we're colliding against. More... | |
Vec3 | mSphereCenterIn2 |
The center of the sphere in the space of 2. More... | |
SubShapeID | mSubShapeID1 |
Sub shape ID of colliding shape. More... | |
float | mScaleSign2 |
Sign of the scale of object 2, -1 if object is inside out, 1 if not. More... | |
float | mRadius |
Radius of the sphere. More... | |
float | mRadiusPlusMaxSeparationSq |
(Radius + Max SeparationDistance)^2 More... | |
Collision detection helper that collides a sphere vs one or more triangles.
CollideSphereVsTriangles::CollideSphereVsTriangles | ( | const SphereShape * | inShape1, |
Vec3Arg | inScale1, | ||
Vec3Arg | inScale2, | ||
Mat44Arg | inCenterOfMassTransform1, | ||
Mat44Arg | inCenterOfMassTransform2, | ||
const SubShapeID & | inSubShapeID1, | ||
const CollideShapeSettings & | inCollideShapeSettings, | ||
CollideShapeCollector & | ioCollector | ||
) |
Constructor
inShape1 | The sphere to collide against triangles |
inScale1 | Local space scale for the sphere (scales relative to its center of mass) |
inScale2 | Local space scale for the triangles |
inCenterOfMassTransform1 | Transform that takes the center of mass of 1 into world space |
inCenterOfMassTransform2 | Transform that takes the center of mass of 2 into world space |
inSubShapeID1 | Sub shape ID of the convex object |
inCollideShapeSettings | Settings for the collide shape query |
ioCollector | The collector that will receive the results |
void CollideSphereVsTriangles::Collide | ( | Vec3Arg | inV0, |
Vec3Arg | inV1, | ||
Vec3Arg | inV2, | ||
uint8 | inActiveEdges, | ||
const SubShapeID & | inSubShapeID2 | ||
) |
Collide sphere with a single triangle
inV0,inV1,inV2 | CCW triangle vertices |
inActiveEdges | bit 0 = edge v0..v1 is active, bit 1 = edge v1..v2 is active, bit 2 = edge v2..v0 is active An active edge is an edge that is not connected to another triangle in such a way that it is impossible to collide with the edge |
inSubShapeID2 | The sub shape ID for the triangle |
|
protected |
The collector that will receive the results.
|
protected |
Settings for this collision operation.
|
protected |
Radius of the sphere.
|
protected |
(Radius + Max SeparationDistance)^2
|
protected |
The scale of the shape (in shape local space) of the shape we're colliding against.
|
protected |
Sign of the scale of object 2, -1 if object is inside out, 1 if not.
|
protected |
The shape that we're colliding with.
|
protected |
The center of the sphere in the space of 2.
|
protected |
Sub shape ID of colliding shape.
|
protected |
Transform of the shape we're colliding against.