Mount Fuji Engine  0.8b
Data Structures | Enumerations | Functions
Collision Functions

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...
 
struct  MFCollisionItem
 Represents a Fuji collision item. 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

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

Detailed Description