Inheritence diagram for xlifepp::ClusterTree:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="xlifepp::ClusterTree< I >" tooltip="xlifepp::ClusterTree< I >"]
"3" [label="xlifepp::ClusterTree< xlifepp::FeDof >" tooltip="xlifepp::ClusterTree< xlifepp::FeDof >"]
"1" [label="xlifepp::ClusterTree< T >" tooltip="xlifepp::ClusterTree< T >" fillcolor="#BFBFBF"]
"2" -> "1" [dir=forward tooltip="template-instance"]
"3" -> "1" [dir=forward tooltip="template-instance"]
}
Collaboration diagram for xlifepp::ClusterTree:
digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"4" [label="xlifepp::ClusterNode< FeDof >" tooltip="xlifepp::ClusterNode< FeDof >"]
"12" [label="std::list< xlifepp::ClusterNode< FeDof > * >" tooltip="std::list< xlifepp::ClusterNode< FeDof > * >"]
"9" [label="std::list< xlifepp::ClusterNode< T > * >" tooltip="std::list< xlifepp::ClusterNode< T > * >"]
"10" [label="std::list< T >" tooltip="std::list< T >"]
"3" [label="std::vector< T >" tooltip="std::vector< T >"]
"2" [label="std::vector< FeDof >" tooltip="std::vector< FeDof >"]
"8" [label="std::vector< RealPair >" tooltip="std::vector< RealPair >"]
"6" [label="std::vector< number_t >" tooltip="std::vector< number_t >"]
"11" [label="std::vector< xlifepp::Element * >" tooltip="std::vector< xlifepp::Element * >"]
"7" [label="xlifepp::BoundingBox" tooltip="xlifepp::BoundingBox"]
"5" [label="xlifepp::ClusterNode< T >" tooltip="xlifepp::ClusterNode< T >"]
"1" [label="xlifepp::ClusterTree< T >" tooltip="xlifepp::ClusterTree< T >" fillcolor="#BFBFBF"]
"4" -> "2" [dir=forward tooltip="usage"]
"4" -> "5" [dir=forward tooltip="usage"]
"4" -> "6" [dir=forward tooltip="usage"]
"4" -> "7" [dir=forward tooltip="usage"]
"4" -> "12" [dir=forward tooltip="usage"]
"4" -> "11" [dir=forward tooltip="usage"]
"4" -> "5" [dir=forward tooltip="template-instance"]
"12" -> "10" [dir=forward tooltip="template-instance"]
"9" -> "10" [dir=forward tooltip="template-instance"]
"2" -> "3" [dir=forward tooltip="template-instance"]
"8" -> "3" [dir=forward tooltip="template-instance"]
"6" -> "3" [dir=forward tooltip="template-instance"]
"11" -> "3" [dir=forward tooltip="template-instance"]
"7" -> "8" [dir=forward tooltip="usage"]
"5" -> "5" [dir=forward tooltip="usage"]
"5" -> "6" [dir=forward tooltip="usage"]
"5" -> "7" [dir=forward tooltip="usage"]
"5" -> "9" [dir=forward tooltip="usage"]
"5" -> "11" [dir=forward tooltip="usage"]
"1" -> "2" [dir=forward tooltip="usage"]
"1" -> "4" [dir=forward tooltip="usage"]
}
frontal class of a tree representation (xlifepp::ClusterNode class) of cloud of objects that have a characteristic Point of location Be cautious, it uses a pointer to a vector of T that has to be kept in memory.
Full copy of objects should be safer but it is memory expansive, see later
Public Functions
ClusterTree ( const std :: vector < T > & , ClusteringMethod , number_t , number_t = 0 , bool = true , bool = true , CloseNodeRule = _fmmCloseNodeRule , real_t = 1. )
constructor from a list of objects
void print ( std :: ostream & ) const
print tree
void printLeaves ( std :: ostream & ) const
print only leaves of the tree
void saveToFile ( const string_t & fn , bool withRealBox = false ) const
save points and bounding boxes or real bounding boxes on file (withRealBox=true)
save points and bounding box on file (for graphic representation)
void updateBoundingBoxes ( )
update recursively bounding boxes
void updateCloseNodes ( )
update recursively closeNodes vector
void updateDofNumbers ( )
update recursively dofNumbers_ vector
void updateElements ( )
update recursively elements_ vector
void updateInfo ( )
update tree info (depth, number of nodes, …)
void updateNumbers ( )
update recursively numbers_ vector
void updateParentNumbers ( )
update recursively all parentNumbers_ vector
void updateRealBoundingBoxes ( )
update recursively real bounding boxes
Public Members
bool clearObjects_
if true deallocate vector points_ when clear
CloseNodeRule closeRule_
rule to decide if two tree nodes are close
number_t depth
depth of the tree, max depth when given >0 in constructor
real_t etaClose_
scalar parameter for the CloseNodeRule
number_t maxInBox_
maximum number of points in a leaf
ClusteringMethod method_
clustering method (see enum)
number_t nbLeaves
number of leaves (info)
number_t nbNodes
number of nodes (info)
bool noEmptyBox_
do not keep empty boxes in tree
std :: vector < T > * objects_
pointer to a list of objects
bool storeNodeData_
store data on each node if true
bool withOverlap_
true if dof numbering of nodes overlap (case of a cluster of elements)