Cafu Engine
cf::ClipSys::CollisionModelStaticT::BrushT Class Reference

This class describes a brush (convex polyhedron) within a CollisionModelStaticT collision shape. More...

#include "CollisionModel_static.hpp"

Classes

struct  EdgeT
 
struct  SideT
 

Public Member Functions

 BrushT ()
 The default constructor. More...
 
void CacheHullVerts () const
 
void CacheHullEdges () const
 
void TraceConvexSolid (const InternalTraceSolidT &TraceSolid, const Vector3dT &Start, const Vector3dT &Ray, unsigned long ClipMask, TraceResultT &Result) const
 Traces the given convex polyhedron from Start along Ray (up to the input value of Result.Fraction) through the brush, and reports the first collision, if any. More...
 
void TraceRay (const Vector3dT &Start, const Vector3dT &Ray, unsigned long ClipMask, TraceResultT &Result) const
 
void TraceBevelBB (const BoundingBox3dT &TraceBB, const Vector3dT &Start, const Vector3dT &Ray, unsigned long ClipMask, TraceResultT &Result) const
 

Public Attributes

CollisionModelStaticTParent
 
SideTSides
 The sides of the brush (i.e. the planes whose intersection forms the brush). This points into Parent->m_BrushSides, the array of all sides of the collision shape the brush is a part of. More...
 
unsigned long NrOfSides
 How many sides the brush has. More...
 
BoundingBox3dT BB
 The bounding box (of the vertices) of this brush. More...
 
unsigned long Contents
 The contents of this brush. More...
 
unsigned long CheckCount
 Used in order to avoid processing things twice. More...
 
unsigned long * HullVerts
 The union of the vertex indices of the sides of this brush (i.e. the unique vertices whose convex hull forms the brush), referring into the m_Vertices list. More...
 
unsigned long NrOfHullVerts
 The number of unique vertices (or rather, vertex indices). More...
 
EdgeTHullEdges
 The unique edges of this brush (e.g. edge <A, B> is not stored again as edge <B, A>). More...
 
unsigned long NrOfHullEdges
 The number of unique edges (or rather, edge indices). More...
 

Detailed Description

This class describes a brush (convex polyhedron) within a CollisionModelStaticT collision shape.

It is conceptually very similar to and has in fact been created from the Brush3T<double> class.

Brushes participate in traces (collision tests) and are exclusively used for volume contents tests.

Note that most members (all but CheckCount) could and should be declared "const" - if not for the assignment operator that is required when storing elements of this class in ArrayT<>s.

Constructor & Destructor Documentation

CollisionModelStaticT::BrushT::BrushT ( )

The default constructor.

Member Function Documentation

void CollisionModelStaticT::BrushT::TraceConvexSolid ( const InternalTraceSolidT TraceSolid,
const Vector3dT Start,
const Vector3dT Ray,
unsigned long  ClipMask,
TraceResultT Result 
) const

Traces the given convex polyhedron from Start along Ray (up to the input value of Result.Fraction) through the brush, and reports the first collision, if any.

For more detailed documentation, see CollisionModelT::TraceConvexSolid(), which has the same signature.

See Also
CollisionModelT::TraceConvexSolid()
TraceResultT

Member Data Documentation

BoundingBox3dT cf::ClipSys::CollisionModelStaticT::BrushT::BB

The bounding box (of the vertices) of this brush.

unsigned long cf::ClipSys::CollisionModelStaticT::BrushT::CheckCount
mutable

Used in order to avoid processing things twice.

unsigned long cf::ClipSys::CollisionModelStaticT::BrushT::Contents

The contents of this brush.

EdgeT* cf::ClipSys::CollisionModelStaticT::BrushT::HullEdges
mutable

The unique edges of this brush (e.g. edge <A, B> is not stored again as edge <B, A>).

unsigned long* cf::ClipSys::CollisionModelStaticT::BrushT::HullVerts
mutable

The union of the vertex indices of the sides of this brush (i.e. the unique vertices whose convex hull forms the brush), referring into the m_Vertices list.

unsigned long cf::ClipSys::CollisionModelStaticT::BrushT::NrOfHullEdges
mutable

The number of unique edges (or rather, edge indices).

unsigned long cf::ClipSys::CollisionModelStaticT::BrushT::NrOfHullVerts
mutable

The number of unique vertices (or rather, vertex indices).

unsigned long cf::ClipSys::CollisionModelStaticT::BrushT::NrOfSides

How many sides the brush has.

SideT* cf::ClipSys::CollisionModelStaticT::BrushT::Sides

The sides of the brush (i.e. the planes whose intersection forms the brush). This points into Parent->m_BrushSides, the array of all sides of the collision shape the brush is a part of.


The documentation for this class was generated from the following files: