//----------------------------------------------------------------------------- // V12 Engine // // Copyright (c) 2001 GarageGames.Com // Portions Copyright (c) 2001 by Sierra Online, Inc. //----------------------------------------------------------------------------- #ifndef _GJK_H_ #define _GJK_H_ #ifndef _MMATH_H_ #include "Math/mMath.h" #endif #ifndef _TVECTOR_H_ #include "Core/tVector.h" #endif class Convex; struct CollisionStateList; struct Collision; //---------------------------------------------------------------------------- struct CollisionState { CollisionStateList* mLista; CollisionStateList* mListb; Convex* a; Convex* b; VectorF v; // Vector between closest points F32 dist; // v.len() // Temporary values Point3F p[4]; // support points of object A in local coordinates Point3F q[4]; // support points of object B in local coordinates VectorF y[4]; // support points of A - B in world coordinates S32 bits; // identifies current simplex S32 all_bits; // all_bits = bits | last_bit F32 det[16][4]; // cached sub-determinants F32 dp[4][4]; // cached dot products S32 last; // identifies last found support point S32 last_bit; // last_bit = 1<