Cafu Engine
cf::ClipSys::TraceSolidT Class Referenceabstract

This class represents a solid object that can be traced through collision worlds, models and shapes. More...

#include "TraceSolid.hpp"

Inheritance diagram for cf::ClipSys::TraceSolidT:

Classes

struct  EdgeT
 This struct describes an edge of a TraceSolidT. More...
 

Public Member Functions

 TraceSolidT ()
 The constructor. More...
 
virtual ~TraceSolidT ()
 The virtual destructor. More...
 
BoundingBox3dT GetBB () const
 Returns the bounding-box of (the vertices of) this solid. More...
 
virtual unsigned int GetNumVertices () const =0
 Returns the number of vertices of this solid. More...
 
virtual const Vector3dTGetVertices () const =0
 Returns the vertices of this solid. More...
 
virtual unsigned int GetNumPlanes () const =0
 Returns the number of planes of this solid. More...
 
virtual const Plane3dTGetPlanes () const =0
 Returns the planes of this solid. More...
 
virtual unsigned int GetNumEdges () const =0
 Returns the number of edges of this solid. More...
 
virtual const EdgeTGetEdges () const =0
 Returns the edges of this solid. More...
 

Detailed Description

This class represents a solid object that can be traced through collision worlds, models and shapes.

The shape of the object is defined as a convex polyhedron of arbitrary complexity. However, polyhedrons of the least possible complexity (regarding the number of vertices, planes and edges) are strongly preferable regarding performance considerations.

Moreover, the solids must be "well defined" without degeneracies. In particular, this means:

  • there must be no duplicate or colinear vertices,
  • there must be no duplicate or redundant planes, and
  • the solid must have a true positive volume. The only exception to these rules is a trace solid with exactly one vertex, no planes and no edges. Such trace solids are treated equivalently to point traces, so that special-case optimized code is employed.

Constructor & Destructor Documentation

cf::ClipSys::TraceSolidT::TraceSolidT ( )
inline

The constructor.

virtual cf::ClipSys::TraceSolidT::~TraceSolidT ( )
inlinevirtual

The virtual destructor.

Member Function Documentation

BoundingBox3dT cf::ClipSys::TraceSolidT::GetBB ( ) const
inline

Returns the bounding-box of (the vertices of) this solid.

virtual const EdgeT* cf::ClipSys::TraceSolidT::GetEdges ( ) const
pure virtual

Returns the edges of this solid.

Implemented in cf::ClipSys::TraceGenericT, cf::ClipSys::TraceBoxT, and cf::ClipSys::TracePointT.

virtual unsigned int cf::ClipSys::TraceSolidT::GetNumEdges ( ) const
pure virtual

Returns the number of edges of this solid.

Implemented in cf::ClipSys::TraceGenericT, cf::ClipSys::TraceBoxT, and cf::ClipSys::TracePointT.

virtual unsigned int cf::ClipSys::TraceSolidT::GetNumPlanes ( ) const
pure virtual

Returns the number of planes of this solid.

Implemented in cf::ClipSys::TraceGenericT, cf::ClipSys::TraceBoxT, and cf::ClipSys::TracePointT.

virtual unsigned int cf::ClipSys::TraceSolidT::GetNumVertices ( ) const
pure virtual

Returns the number of vertices of this solid.

Implemented in cf::ClipSys::TraceGenericT, cf::ClipSys::TraceBoxT, and cf::ClipSys::TracePointT.

virtual const Plane3dT* cf::ClipSys::TraceSolidT::GetPlanes ( ) const
pure virtual

Returns the planes of this solid.

Implemented in cf::ClipSys::TraceGenericT, cf::ClipSys::TraceBoxT, and cf::ClipSys::TracePointT.

virtual const Vector3dT* cf::ClipSys::TraceSolidT::GetVertices ( ) const
pure virtual

Returns the vertices of this solid.

Implemented in cf::ClipSys::TraceGenericT, cf::ClipSys::TraceBoxT, and cf::ClipSys::TracePointT.


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