FDH14List Class Reference

#include <FDH14List.h>

Inheritance diagram for FDH14List:

BVList List of all members.

Public Types

enum  SplitStrategy { SPLIT_BY_MAX_VARIATION, SPLIT_BY_MAX_EXTENT }

Public Member Functions

 FDH14List ()
void append (SceneGraphObject *o)
SceneGraphObjectremove (SceneGraphObject *)
unsigned length () const
unsigned split (BVList &list, SplitStrategy splitStrategy)
SceneGraphObjectfirstItem ()
SceneGraphObjectnextItem ()
SceneGraphObjectiThItem (unsigned i, bool setAct)
virtual void __debug ()

Protected Member Functions

void _split_by_handles (List< BVNode > &, List< BVNode > &, unsigned)
virtual void _comp_handle (BVNode *)
virtual void _comp_extents (BVNode *)
unsigned _index_with_max_extent ()
void _build_area_table (BVNode **, long, long, double *) const
unsigned _split_by_extent (List< BVNode > &)
unsigned _index_with_max_variation ()
unsigned _split_by_variation (List< BVNode > &)

Static Protected Member Functions

static int qsortCompare (const void *, const void *)

Protected Attributes

List< BVNode > * _pList
unsigned _dirs
const float(* _dirMat )[3]

Static Protected Attributes

static unsigned qsortIndex

Detailed Description

Definition at line 11 of file FDH14List.h.


Member Enumeration Documentation

enum SplitStrategy [inherited]
 

Strategies of splitting the list to two halfs

Enumerator:
SPLIT_BY_MAX_VARIATION 
SPLIT_BY_MAX_EXTENT 

Definition at line 22 of file BVList.h.


Constructor & Destructor Documentation

FDH14List  )  [inline]
 

Definition at line 13 of file FDH14List.h.


Member Function Documentation

virtual void __debug void   )  [inline, virtual, inherited]
 

Fo debugging purposes

Definition at line 164 of file BVList.h.

Referenced by BVH::__debug().

void _build_area_table BVNode **  ,
long  ,
long  ,
double * 
const [protected, inherited]
 

Definition at line 133 of file BVList.cc.

References Interval::max, MAX_VEC_VALUE, Interval::min, and MIN_VEC_VALUE.

Referenced by BVList::_split_by_extent().

void _comp_extents BVNode  )  [protected, virtual, inherited]
 

Definition at line 87 of file BVList.cc.

References BVList::_dirMat, BVList::_dirs, Explorer::explore(), BVList::BVNode::extents, BVList::BVNode::pObject, and NExtentsExplorer::result().

Referenced by BVList::append().

void _comp_handle BVNode  )  [protected, virtual, inherited]
 

Definition at line 63 of file BVList.cc.

References BVList::_dirMat, BVList::_dirs, Explorer::explore(), BVList::BVNode::handle, MAX_VEC_VALUE, MAXFLOAT, BVList::BVNode::pObject, and POGExplorer::result().

Referenced by BVList::append().

unsigned _index_with_max_extent  )  [protected, inherited]
 

Definition at line 99 of file BVList.cc.

References BVList::_dirs, BVList::_pList, BVList::BVNode::extents, List::firstItem(), Interval::max, Interval::min, and List::nextItem().

Referenced by BVList::_split_by_extent().

unsigned _index_with_max_variation  )  [protected, inherited]
 

Definition at line 224 of file BVList.cc.

References BVList::_dirs, BVList::_pList, List::firstItem(), BVList::BVNode::handle, BVList::length(), MAXUNSIGNED, and List::nextItem().

Referenced by BVList::_split_by_variation().

unsigned _split_by_extent List< BVNode > &   )  [protected, inherited]
 

Definition at line 170 of file BVList.cc.

References BVList::_build_area_table(), BVList::_index_with_max_extent(), BVList::_pList, List::firstItem(), BVList::length(), List::nextItem(), BVList::qsortCompare(), and BVList::qsortIndex.

Referenced by BVList::split().

void _split_by_handles List< BVNode > &  ,
List< BVNode > &  ,
unsigned 
[protected, inherited]
 

Definition at line 21 of file BVList.cc.

References ESG_INT_RAND, List::firstItem(), BVList::BVNode::handle, List::iThItem(), List::length(), BVList::length(), List::nextItem(), and List::remove().

Referenced by BVList::_split_by_variation().

unsigned _split_by_variation List< BVNode > &   )  [protected, inherited]
 

Definition at line 272 of file BVList.cc.

References BVList::_index_with_max_variation(), BVList::_pList, BVList::_split_by_handles(), List::append(), List::length(), BVList::length(), and MAXUNSIGNED.

Referenced by BVList::split().

void append SceneGraphObject o  )  [inherited]
 

Appends new object to the list

Parameters:
o object

Definition at line 377 of file BVList.cc.

References BVList::_comp_extents(), BVList::_comp_handle(), BVList::_dirs, BVList::_pList, and List::append().

Referenced by BVH::_append().

SceneGraphObject* firstItem  )  [inline, inherited]
 

Start of the list inspection. Sets the actual position in list to the first item and returns it.

Returns:
reference to the first stored object or NULL

Definition at line 132 of file BVList.h.

References BVList::BVNode::pObject.

Referenced by IteratorBVH::_area_search(), IteratorBVH::_children_search(), BVH::_collision(), BVH::_create_bv(), BVH::_dr_primitives(), BVH::_dump(), IteratorBVH::_first_child(), IteratorBVH::_first_ray_intersection(), IteratorBVH::_halfspace_search(), and IteratorBVH::_next_ray_intersection().

SceneGraphObject* iThItem unsigned  i,
bool  setAct
[inline, inherited]
 

Returns object at the i-th position in list. Actual position in list can be either set to the new one or kept untached.

Parameters:
i required position
setAct determines whether to change actual position in list
Returns:
object at i-th position or NULL

Definition at line 155 of file BVList.h.

References BVList::BVNode::pObject.

unsigned length  )  const [inline, inherited]
 

Returns:
length of the list

Definition at line 114 of file BVList.h.

Referenced by BVH::_append(), BVH::_build_tree(), BVList::_index_with_max_variation(), BVList::_split_by_extent(), BVList::_split_by_handles(), BVList::_split_by_variation(), and BVList::split().

SceneGraphObject* nextItem  )  [inline, inherited]
 

Moves the actual position in list to the next item and returns it.

Returns:
reference to the next object in list or NULL

Definition at line 142 of file BVList.h.

References BVList::BVNode::pObject.

Referenced by IteratorBVH::_area_search(), IteratorBVH::_children_search(), BVH::_collision(), BVH::_create_bv(), BVH::_dr_primitives(), BVH::_dump(), IteratorBVH::_halfspace_search(), and IteratorBVH::_next_child().

int qsortCompare const void *  ,
const void * 
[static, protected, inherited]
 

Definition at line 11 of file BVList.cc.

References Interval::max, Interval::min, and BVList::qsortIndex.

Referenced by BVList::_split_by_extent().

SceneGraphObject * remove SceneGraphObject  )  [inherited]
 

Removes obect from the list

Parameters:
pObj object for removal
Returns:
removed object or NULL

Definition at line 385 of file BVList.cc.

References BVList::_pList, List::firstItem(), List::nextItem(), BVList::BVNode::pObject, and List::remove().

unsigned split BVList list,
SplitStrategy  splitStrategy
[inherited]
 

Splits the list to two halfs

Parameters:
list list into which the second half is stored
splitStrategy splitting strategy
Returns:
index of used spliting direction on success, MAXUNSIGNED on failure

Definition at line 401 of file BVList.cc.

References BVList::_pList, BVList::_split_by_extent(), BVList::_split_by_variation(), BVList::length(), MAXUNSIGNED, BVList::SPLIT_BY_MAX_EXTENT, and BVList::SPLIT_BY_MAX_VARIATION.

Referenced by BVH::_append().


Member Data Documentation

const float(* _dirMat)[3] [protected, inherited]
 

Definition at line 49 of file BVList.h.

Referenced by BVList::_comp_extents(), and BVList::_comp_handle().

unsigned _dirs [protected, inherited]
 

Definition at line 48 of file BVList.h.

Referenced by BVList::_comp_extents(), BVList::_comp_handle(), BVList::_index_with_max_extent(), BVList::_index_with_max_variation(), and BVList::append().

List<BVNode>* _pList [protected, inherited]
 

Definition at line 47 of file BVList.h.

Referenced by BVList::_index_with_max_extent(), BVList::_index_with_max_variation(), BVList::_split_by_extent(), BVList::_split_by_variation(), BVList::append(), BVList::BVList(), BVList::remove(), BVList::split(), and BVList::~BVList().

unsigned qsortIndex [static, protected, inherited]
 

Definition at line 52 of file BVList.h.

Referenced by BVList::_split_by_extent(), and BVList::qsortCompare().


The documentation for this class was generated from the following file:
Generated on Wed Jun 28 12:24:34 2006 for esg by  doxygen 1.4.6