//----------------------------------------------------------------------------- // Torque Game Engine // Copyright (C) GarageGames.com, Inc. //----------------------------------------------------------------------------- #ifndef _GJK_H_ #define _GJK_H_ #ifndef _MMATH_H_ #include "math/mMath.h" #endif #ifndef _TVECTOR_H_ #include "core/tVector.h" #endif #ifndef _CONVEX_H_ #include "collision/convex.h" #endif class Convex; struct CollisionStateList; struct Collision; //---------------------------------------------------------------------------- struct GjkCollisionState: public CollisionState { /// @name 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<