public abstract

Inheritance Graph

graph BT
	AbstractTreeBuilder
	BinaryTreeBuilder --> AbstractTreeBuilder
	KDTreeBuilder --> AbstractTreeBuilder
	OcTreeBuilder --> AbstractTreeBuilder
	click AbstractTreeBuilder "classMinSG_1_1TreeBuilder_1_1AbstractTreeBuilder"
	click BinaryTreeBuilder "classMinSG_1_1TreeBuilder_1_1BinaryTreeBuilder"
	click KDTreeBuilder "classMinSG_1_1TreeBuilder_1_1KDTreeBuilder"
	click OcTreeBuilder "classMinSG_1_1TreeBuilder_1_1OcTreeBuilder"

Description

Classes

   
struct MinSG::TreeBuilder::AbstractTreeBuilder::NodeWrapper

Protected Types

   
   
typedef std::deque< NodeWrapper > list_t

Protected Attributes

   
   
uint32_t maxTreeDepth
   
uint32_t maxChildCount
   
float looseFactor
   
bool useGeometryBBs
   
bool prefereCubes
   
NodeWrapper root

Public Functions

   
   
  AbstractTreeBuilder( Util::GenericAttributeMap & options)
   
  ~AbstractTreeBuilder()
   
void buildTree( Util::Reference < GroupNode > group, const Geometry::Box & target)
   
void buildTree( Util::Reference < GroupNode > group)

Protected Functions

   
   
void buildTree( NodeWrapper & source)
   
list_t split( NodeWrapper & source)
   
bool canSplit(const NodeWrapper & source)
   
void finalize( NodeWrapper & source, list_t & dest)

Protected Static Functions

   
   
void distribute( NodeWrapper & source, list_t & dest)

Documentation

typedef
MinSG::TreeBuilder::AbstractTreeBuilder::list_t

protected
 
 
typedef std::deque< NodeWrapper > list_t

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:56


variable
MinSG::TreeBuilder::AbstractTreeBuilder::maxTreeDepth

protected
 
 
uint32_t maxTreeDepth

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:90


variable
MinSG::TreeBuilder::AbstractTreeBuilder::maxChildCount

protected
 
 
uint32_t maxChildCount

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:91


variable
MinSG::TreeBuilder::AbstractTreeBuilder::looseFactor

protected
 
 
float looseFactor

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:92


variable
MinSG::TreeBuilder::AbstractTreeBuilder::useGeometryBBs

protected
 
 
bool useGeometryBBs

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:93


variable
MinSG::TreeBuilder::AbstractTreeBuilder::prefereCubes

protected
 
 
bool prefereCubes

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:94


variable
MinSG::TreeBuilder::AbstractTreeBuilder::root

protected
 
 
NodeWrapper root

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:95


function
MinSG::TreeBuilder::AbstractTreeBuilder::AbstractTreeBuilder

public
     
     
AbstractTreeBuilder( Util::GenericAttributeMap & options )

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:48


function
MinSG::TreeBuilder::AbstractTreeBuilder::~AbstractTreeBuilder

public virtual
   
   
~AbstractTreeBuilder( )

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:49


function
MinSG::TreeBuilder::AbstractTreeBuilder::buildTree

public
     
     
void buildTree( Util::Reference < GroupNode > group,
  const Geometry::Box & target
)    

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:51


function
MinSG::TreeBuilder::AbstractTreeBuilder::buildTree

public
     
     
void buildTree( Util::Reference < GroupNode > group )

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:52


function
MinSG::TreeBuilder::AbstractTreeBuilder::buildTree

protected
     
     
void buildTree( NodeWrapper & source )

main method to build trees, splits the source into parts an then does recursive calls with each part

  • if canSplit> split> distribute> finalize> recurse

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:62


function
MinSG::TreeBuilder::AbstractTreeBuilder::split

protected virtual
     
     
list_t split( NodeWrapper & source )

method to split the source should not set up the relationships between source an new created group nodes

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:68


function
MinSG::TreeBuilder::AbstractTreeBuilder::canSplit

protected
     
     
bool canSplit( const NodeWrapper & source )

determines if a box can split thats true if

  • maximum tree depth is not reached

  • maximum child count in source is exceeded

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:82


function
MinSG::TreeBuilder::AbstractTreeBuilder::finalize

protected
     
     
void finalize( NodeWrapper & source,
  list_t & dest
)    

removes empty entries from dest sets up the relationships between source and dest

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:88


function
MinSG::TreeBuilder::AbstractTreeBuilder::distribute

protected static
     
     
void distribute( NodeWrapper & source,
  list_t & dest
)    

distributes the children of source into one of dest by first selecting the one out of dest where thight box contains the center of the child then moving the child into selected dest iff it fits into the loose box

Defined in MinSG/Ext/TreeBuilder/AbstractTreeBuilder.h:75