SIM_Slice Class Reference

#include <SIM_Slice.h>

Inheritance diagram for SIM_Slice:

SIM_Data SIM_SlicePlane

List of all members.

Public Member Functions

bool isInsideSlice (const UT_Vector3 &pos) const
fpreal getSliceBoundaryDist (const UT_Vector3 &pos) const
virtual UT_Vector3 getCenter () const
 This is used to determine which side of my parent I am on.
int countSlices () const
 Count number of slices from myself and my children.
void buildSliceSearch (SIM_SliceSearchTable &table) const

Static Public Member Functions

static int countSlices (const SIM_ConstDataArray &slices)
static void buildSliceSearch (SIM_SliceSearchTable &table, SIM_ConstDataArray &slices)
static fpreal computeSliceDist (const SIM_SliceSearchList &list, const UT_Vector3 &pos)
static bool isInsideSlice (const SIM_SliceSearchList &list, const UT_Vector3 &pos)

Protected Member Functions

 SIM_Slice (const SIM_DataFactory *factory)
virtual ~SIM_Slice ()
virtual bool isInsideSliceSubclass (const UT_Vector3 &pos) const
virtual fpreal getSliceBoundaryDistSubclass (const UT_Vector3 &pos) const =0
virtual UT_Vector3 getCenterSubclass () const =0
 This is used to determine which side of my parent I am on.


Detailed Description

This is the definition of the SIM_Slice interface. The only function that needs to be overridden (besides any standard SIM_Data overrides) is the getSliceBoundaryDistSubclass() functions.

Definition at line 57 of file SIM_Slice.h.


Constructor & Destructor Documentation

SIM_Slice::SIM_Slice ( const SIM_DataFactory factory  )  [explicit, protected]

virtual SIM_Slice::~SIM_Slice (  )  [protected, virtual]


Member Function Documentation

static void SIM_Slice::buildSliceSearch ( SIM_SliceSearchTable table,
SIM_ConstDataArray slices 
) [static]

void SIM_Slice::buildSliceSearch ( SIM_SliceSearchTable table  )  const

The nth entry of this list stores how to search for the nth slice.

static fpreal SIM_Slice::computeSliceDist ( const SIM_SliceSearchList list,
const UT_Vector3 pos 
) [static]

static int SIM_Slice::countSlices ( const SIM_ConstDataArray slices  )  [static]

int SIM_Slice::countSlices (  )  const

Count number of slices from myself and my children.

virtual UT_Vector3 SIM_Slice::getCenter (  )  const [virtual]

This is used to determine which side of my parent I am on.

virtual UT_Vector3 SIM_Slice::getCenterSubclass (  )  const [protected, pure virtual]

This is used to determine which side of my parent I am on.

Implemented in SIM_SlicePlane.

fpreal SIM_Slice::getSliceBoundaryDist ( const UT_Vector3 pos  )  const

Returns the distance to the slice's boundary. If the point is inside the slice this is a negative distance, else positive.

virtual fpreal SIM_Slice::getSliceBoundaryDistSubclass ( const UT_Vector3 pos  )  const [protected, pure virtual]

Returns the distance to the slice's boundary. If the point is inside the slice this is a negative distance, else positive. This is what must be overridden to make the slice do something interesting

Implemented in SIM_SlicePlane.

static bool SIM_Slice::isInsideSlice ( const SIM_SliceSearchList list,
const UT_Vector3 pos 
) [static]

This is different than a computeSliceDist < 0 because we need to ensure that we are consistent with <= against a zero result...

bool SIM_Slice::isInsideSlice ( const UT_Vector3 pos  )  const

Returns whether we are inside this slice or not. true is inside. This corresponds to a negative slice boundary distance but is overrideable for efficiency.

virtual bool SIM_Slice::isInsideSliceSubclass ( const UT_Vector3 pos  )  const [protected, virtual]

Returns whether we are inside this slice or not. true is inside. This corresponds to a negative slice boundary distance but is overrideable for efficiency. Default implementation just compares the distance with 0.


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

Generated on Fri May 25 00:10:41 2012 for HDK by  doxygen 1.5.9