MFCollision.h File Reference

A set of functions to perform collision operations between various primitives. More...


Data Structures

struct  MFCollisionTriangle
 Collision triangle structure. More...
struct  MFCollisionResult
 Collision result structure. More...
struct  MFRayIntersectionResult
 Ray intersection result structure. More...
struct  MFSweepSphereResult
 Sweep sphere result structure. More...

Enumerations

enum  MFCollisionType {
  MFCT_Unknown, MFCT_Sphere, MFCT_Box, MFCT_Mesh,
  MFCT_Field, MFCT_Max, MFCT_ForceInt = 0x7FFFFFFF
}
 Collision item type. More...
enum  MFCollisionItemFlags { MFCIF_Dynamic = 1, MFCIF_Disabled = 2, MFCIF_ForceInt = 0x7FFFFFFF }
 Collision item flags. More...

Functions

void MFCollision_DebugDraw ()
 Draw the collision debugging information.
MFVector MFCollision_NearestPointOnLine (const MFVector &lineStart, const MFVector &lineEnd, const MFVector &point)
 Get nearest point on a line.
MFVector MFCollision_MakePlaneFromPoints (const MFVector &p0, const MFVector &p1, const MFVector &p2)
 Generate a plane from 3 points.
MFVector MFCollision_MakePlaneFromPointAndNormal (const MFVector &point, const MFVector &normal)
 Generate a plane from a point and a normal.
void MFCollision_MakeCollisionTriangleFromPoints (const MFVector &p0, const MFVector &p1, const MFVector &p2, MFCollisionTriangle *pTri)
 Generate a collision triangle from 3 points.
bool MFCollision_TestAABB (const MFVector &min1, const MFVector &max1, const MFVector &min2, const MFVector &max2)
 Test 2 axis aligned bounding boxes for intersection.
MFCollisionItemMFCollision_RayTest (const MFVector &rayPos, const MFVector &rayDir, MFCollisionItem *pItem, MFRayIntersectionResult *pResult)
 Test a ray for intersection with an arbitrary CollisionItem.
MFCollisionItemMFCollision_SphereTest (const MFVector &spherePos, float radius, MFCollisionItem *pItem, MFCollisionResult *pResult)
 Test a sphere for intersection with an arbitrary CollisionItem.
MFCollisionItemMFCollision_SweepSphereTest (const MFVector &sweepSpherePos, const MFVector &sweepSphereVelocity, float sweepSphereRadius, MFCollisionItem *pItem, MFSweepSphereResult *pResult)
 Test a sweeping sphere for intersection with an arbitrary CollisionItem.
bool MFCollision_RayPlaneTest (const MFVector &rayPos, const MFVector &rayDir, const MFVector &plane, MFRayIntersectionResult *pResult=NULL)
 Intersect a ray with a plane.
bool MFCollision_RaySlabTest (const MFVector &rayPos, const MFVector &rayDir, const MFVector &plane, float slabHalfWidth, MFRayIntersectionResult *pResult=NULL)
 Intersect a ray with a slab.
bool MFCollision_RaySphereTest (const MFVector &rayPos, const MFVector &rayDir, const MFVector &spherePos, float radius, MFRayIntersectionResult *pResult=NULL)
 Intersect a ray with a sphere.
bool MFCollision_RayCylinderTest (const MFVector &rayPos, const MFVector &rayDir, const MFVector &cylinderPos, const MFVector &cylinderDir, float cylinderRadius, bool capped, MFRayIntersectionResult *pResult=NULL, float *pCylinderTime=NULL)
 Intersect a ray with a cylinder.
bool MFCollision_RayCapsuleTest (const MFVector &rayPos, const MFVector &rayDir, const MFVector &capsulePos, const MFVector &capsuleDir, float capsuleRadius, MFRayIntersectionResult *pResult=NULL)
 Intersect a ray with a capsule.
bool MFCollision_RayBoxTest (const MFVector &rayPos, const MFVector &rayDir, const MFVector &boxPos, const MFVector &boxRadius, MFRayIntersectionResult *pResult=NULL)
 Intersect a ray with a box.
bool MFCollision_SpherePlaneTest (const MFVector &spherePos, float radius, const MFVector &plane, MFCollisionResult *pResult)
 Intersect a sphere with a plane.
bool MFCollision_SphereSphereTest (const MFVector &pos1, float radius1, const MFVector &pos2, float radius2, MFCollisionResult *pResult)
 Intersect a sphere with a sphere.
bool MFCollision_SweepSphereSphereTest (const MFVector &sweepSpherePos, const MFVector &sweepSphereVelocity, float sweepSphereRadius, const MFVector &sphere, float sphereRadius, MFSweepSphereResult *pResult)
 Intersect a sweeping sphere with a sphere.
bool MFCollision_SweepSphereTriTest (const MFVector &sweepSpherePos, const MFVector &sweepSphereVelocity, float sweepSphereRadius, const MFCollisionTriangle &tri, MFSweepSphereResult *pResult)
 Intersect a sweeping sphere with a triangle.
MFCollisionItemMFCollision_CreateDynamicCollisionMesh (const char *pItemName, int numTris)
 Create a dynamic mesh collision item.
MFCollisionTriangleMFCollision_LockDynamicCollisionMeshTriangleBuffer (MFCollisionItem *pDynamicCollisionMesh)
 Lock a dynamic collision mesh triangle buffer.
void MFCollision_UnlockDynamicCollisionMeshTriangleBuffer (MFCollisionItem *pDynamicCollisionMesh)
 Unlock a dynamic collision mesh triangle buffer.
void MFCollision_DestroyDynamicCollisionItem (MFCollisionItem *pItem)
 Destroy a dynamic collision item.
MFCollisionItemMFCollision_CreateField (const char *pFieldName, int maximumItemCount, const MFVector &cellSize)
 Create a collision field.
void MFCollision_AddItemToField (MFCollisionItem *pField, MFCollisionItem *pItem, uint32 itemFlags)
 Add an item to a field.
void MFCollision_AddModelToField (MFCollisionItem *pField, MFModel *pModel)
 Add a model to a field.
void MFCollision_BuildField (MFCollisionItem *pField)
 Build a collision field.
void MFCollision_ClearField (MFCollisionItem *pField)
 Clear a collision field.
void MFCollision_DestroyField (MFCollisionItem *pField)
 Destroy a collision field.


Detailed Description

Author:
Manu Evans

Generated on Sat Oct 28 16:27:27 2006 for MountFuji Engine by  doxygen 1.4.5