Initial commit
This commit is contained in:
65
Torque/SDK/engine/collision/collision.h
Normal file
65
Torque/SDK/engine/collision/collision.h
Normal file
@@ -0,0 +1,65 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef _COLLISION_H_
|
||||
#define _COLLISION_H_
|
||||
|
||||
#ifndef _DATACHUNKER_H_
|
||||
#include "core/dataChunker.h"
|
||||
#endif
|
||||
#ifndef _MPLANE_H_
|
||||
#include "math/mPlane.h"
|
||||
#endif
|
||||
|
||||
class SceneObject;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
struct Collision
|
||||
{
|
||||
SceneObject* object;
|
||||
Point3F point;
|
||||
VectorF normal;
|
||||
U32 material;
|
||||
|
||||
// Face and Face dot are currently only set by the extrudedPolyList
|
||||
// clipper. Values are otherwise undefined.
|
||||
U32 face; // Which face was hit
|
||||
F32 faceDot; // -Dot of face with poly normal
|
||||
F32 distance;
|
||||
};
|
||||
|
||||
struct CollisionList
|
||||
{
|
||||
enum {
|
||||
MaxCollisions = 64
|
||||
};
|
||||
int count;
|
||||
Collision collision[MaxCollisions];
|
||||
F32 t;
|
||||
// MaxHeight is currently only set by the extrudedPolyList
|
||||
// clipper. It represents the maximum vertex z value of
|
||||
// the returned collision surfaces.
|
||||
F32 maxHeight;
|
||||
};
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// BSP Collision tree
|
||||
// Solid nodes are represented by structures with NULL frontNode and
|
||||
// backNode pointers. The material field is only valid on a solid node.
|
||||
// There is no structure for empty nodes, frontNode or backNode
|
||||
// should be set to NULL to represent empty half-spaces.
|
||||
|
||||
struct BSPNode
|
||||
{
|
||||
U32 material;
|
||||
PlaneF plane;
|
||||
BSPNode *frontNode, *backNode;
|
||||
};
|
||||
|
||||
typedef Chunker<BSPNode> BSPTree;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user