tge/engine/game/collisionTest.h
2017-04-17 06:17:10 -06:00

92 lines
2.0 KiB
C
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef _COLLISIONTEST_H_
#define _COLLISIONTEST_H_
#ifndef _SCENEOBJECT_H_
#include "sim/sceneObject.h"
#endif
#ifndef _POLYTOPE_H_
#include "collision/polytope.h"
#endif
#ifndef _CLIPPEDPOLYLIST_H_
#include "collision/clippedPolyList.h"
#endif
#ifndef _EXTRUDEDPOLYLIST_H_
#include "collision/extrudedPolyList.h"
#endif
#ifndef _DEPTHSORTLIST_H_
#include "collision/depthSortList.h"
#endif
#ifndef _POLYHEDRON_H_
#include "collision/polyhedron.h"
#endif
/// Helper class for collision detection.
struct CollisionTest
{
/// @name Basic Settings
/// @{
Box3F boundingBox;
SphereF boundingSphere;
static bool renderAlways;
Point3F testPos;
/// @}
/// @name Depth Sort List
/// Use a slightly different box and sphere for depthSortList.
/// @{
Box3F mDepthBox;
SphereF mDepthSphere;
Point3F mDepthSortExtent;
/// @}
/// @name Polytope/BSP test
/// @{
static bool testPolytope;
BSPTree tree;
Polytope volume;
/// @}
/// @name Clipped polylists
/// @{
static bool testClippedPolyList;
ClippedPolyList polyList;
/// @}
/// @name Depth sorted polylists
/// @{
static bool testDepthSortList;
static bool depthSort;
static bool depthRender;
DepthSortList depthSortList;
/// @}
/// @name Extruded
/// @{
CollisionList collisionList;
static bool testExtrudedPolyList;
Polyhedron polyhedron;
VectorF extrudeVector;
ExtrudedPolyList extrudedList;
/// @}
/// @name Implementation
/// @{
CollisionTest();
~CollisionTest();
static void consoleInit();
static void callback(SceneObject*, void *thisPtr);
void collide(const MatrixF& transform);
void render();
/// @}
};
#endif