Public Types | Public Member Functions | Private Member Functions | Private Attributes
ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits > Class Template Reference

#include <KdTree.hpp>

List of all members.

Public Types

enum  Method { MIDPOINT, MEDIAN, GEOMETRIC_MEAN }
enum  SearchCriteria { FIND_FIRST, FIND_BEST }

Public Member Functions

std::pair< NodeDataType
*, NodeDataType * > 
doSplit (NodeType *node, SplitAxisType &splitAxis, PREC &splitPosition)
std::string getStatisticsString ()
void init (const std::initializer_list< Method > &m, unsigned int allowSplitAboveNPoints=100, PREC minExtent=0.0, SearchCriteria searchCriteria=SearchCriteria::FIND_BEST, const QualityEvaluator &qualityEval=QualityEvaluator(), PREC minSplitRatio=0.0, PREC minPointRatio=0.0, PREC minExtentRatio=0.0)
 m_searchCriteria (SearchCriteria::FIND_BEST)
void resetStatistics ()
 SplitHeuristicPointData ()

Private Member Functions

bool checkPosition (AABB< Dimension > &aabb)
PREC computeExtentRatio (AABB< Dimension > &aabb)
PREC computePointRatio (NodeDataType *data)
bool computeSplitPosition (NodeType *node, unsigned int tries=1)
PREC computeSplitRatio (AABB< Dimension > &aabb)
void computeStatistics ()
void updateSolution ()

Private Attributes

std::size_t m_allowSplitAboveNPoints = 100
PREC m_avgExtentRatio = 0
PREC m_avgPointRatio = 0
PREC m_avgSplitRatio = 0
PREC m_bestExtentRatio = 0
Method m_bestMethod
PREC m_bestPointRatio = 0
PREC m_bestQuality = std::numeric_limits<PREC>::lowest()
SplitAxisType m_bestSplitAxis
PREC m_bestSplitPosition = 0.0
PREC m_bestSplitRatio = 0
iterator m_bestSplitRightIt
ArrayStat< Dimension > m_extent
PREC m_extentRatio = 0
 minimal ratio of min/max extent of the left and right splitted box, in range (0,1] ;
bool m_found = false
Method m_method
std::vector< Methodm_methods
PREC m_minExtent = 0.0
PREC m_minExtentRatio = 0.0
PREC m_minPointRatio = 0.0
PREC m_minSplitRatio = 0.0
PREC m_pointRatio = 0
 ratio of points in left and right splittet box, in range [0,0.5]
PREC m_quality = 0.0
QualityEvaluator m_qualityEval
SearchCriteria m_searchCriteria
std::vector< SplitAxisType > m_splitAxes
SplitAxisType m_splitAxis
unsigned int m_splitCalls = 0
PREC m_splitPosition = 0.0
PREC m_splitRatio = 0
 ratio of the splitting plane in range (0,0.5)
iterator m_splitRightIt
unsigned int m_splits = 0
unsigned int m_tries = 0
bool m_wasLastTry = false
 Flag which tells if the best values have just been updated when we finished the opt. loop.

Detailed Description

template<typename TQualityEvaluator, typename Traits>
class ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >

Definition at line 297 of file KdTree.hpp.


Member Enumeration Documentation

template<typename TQualityEvaluator , typename Traits >
enum ApproxMVBB::KdTree::SplitHeuristicPointData::Method
Enumerator:
MIDPOINT 
MEDIAN 
GEOMETRIC_MEAN 

Definition at line 308 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
enum ApproxMVBB::KdTree::SplitHeuristicPointData::SearchCriteria

Search Criterias how to find the best split axis which fullfills the constraints, minExtent etc. FIND_BEST has not been implemented so far, because we shuffle the point array constantly while searching!

Enumerator:
FIND_FIRST 
FIND_BEST 

Definition at line 314 of file KdTree.hpp.


Constructor & Destructor Documentation

template<typename TQualityEvaluator , typename Traits >
ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::SplitHeuristicPointData ( ) [inline]

Definition at line 321 of file KdTree.hpp.


Member Function Documentation

template<typename TQualityEvaluator , typename Traits >
bool ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::checkPosition ( AABB< Dimension > &  aabb) [inline, private]

Definition at line 592 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::computeExtentRatio ( AABB< Dimension > &  aabb) [inline, private]

Definition at line 640 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::computePointRatio ( NodeDataType *  data) [inline, private]

Definition at line 622 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
bool ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::computeSplitPosition ( NodeType *  node,
unsigned int  tries = 1 
) [inline, private]

Compute the split position and maybe the splitAxis

Definition at line 504 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::computeSplitRatio ( AABB< Dimension > &  aabb) [inline, private]

Definition at line 633 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
void ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::computeStatistics ( ) [inline, private]

Definition at line 660 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
std::pair<NodeDataType *, NodeDataType * > ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::doSplit ( NodeType *  node,
SplitAxisType &  splitAxis,
PREC &  splitPosition 
) [inline]

Compute the split with the set heuristic and return the two new node data types if a split happened otherwise (nullptr)

Definition at line 385 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
std::string ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::getStatisticsString ( ) [inline]

Definition at line 371 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
void ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::init ( const std::initializer_list< Method > &  m,
unsigned int  allowSplitAboveNPoints = 100,
PREC  minExtent = 0.0,
SearchCriteria  searchCriteria = SearchCriteria::FIND_BEST,
const QualityEvaluator &  qualityEval = QualityEvaluator(),
PREC  minSplitRatio = 0.0,
PREC  minPointRatio = 0.0,
PREC  minExtentRatio = 0.0 
) [inline]

Definition at line 328 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_searchCriteria ( SearchCriteria::FIND_BEST  ) [inline]

Definition at line 321 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
void ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::resetStatistics ( ) [inline]

Definition at line 361 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
void ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::updateSolution ( ) [inline, private]

Definition at line 605 of file KdTree.hpp.


Member Data Documentation

template<typename TQualityEvaluator , typename Traits >
std::size_t ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_allowSplitAboveNPoints = 100 [private]

Definition at line 712 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_avgExtentRatio = 0 [private]

Definition at line 673 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_avgPointRatio = 0 [private]

Definition at line 672 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_avgSplitRatio = 0 [private]

Definition at line 671 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestExtentRatio = 0 [private]

Definition at line 702 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
Method ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestMethod [private]

Definition at line 703 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestPointRatio = 0 [private]

Definition at line 702 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestQuality = std::numeric_limits<PREC>::lowest() [private]

Definition at line 701 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
SplitAxisType ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestSplitAxis [private]

Definition at line 705 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestSplitPosition = 0.0 [private]

Definition at line 704 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestSplitRatio = 0 [private]

Definition at line 702 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
iterator ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_bestSplitRightIt [private]

Definition at line 700 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
ArrayStat<Dimension> ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_extent [private]

Temp. values

Definition at line 679 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_extentRatio = 0 [private]

minimal ratio of min/max extent of the left and right splitted box, in range (0,1] ;

Definition at line 685 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
bool ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_found = false [private]

Definition at line 699 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
Method ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_method [private]

Definition at line 692 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
std::vector<Method> ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_methods [private]

Definition at line 709 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_minExtent = 0.0 [private]

Definition at line 713 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_minExtentRatio = 0.0 [private]

Definition at line 690 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_minPointRatio = 0.0 [private]

Definition at line 689 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_minSplitRatio = 0.0 [private]

Min values to allow a split

Definition at line 688 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_pointRatio = 0 [private]

ratio of points in left and right splittet box, in range [0,0.5]

Definition at line 684 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_quality = 0.0 [private]

Definition at line 681 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
QualityEvaluator ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_qualityEval [private]

Definition at line 676 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
SearchCriteria ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_searchCriteria [private]

Definition at line 710 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
std::vector<SplitAxisType> ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splitAxes [private]

Fixed values

Definition at line 708 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
SplitAxisType ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splitAxis [private]

Definition at line 694 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
unsigned int ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splitCalls = 0 [private]

Statistics

Definition at line 668 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splitPosition = 0.0 [private]

Definition at line 693 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
PREC ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splitRatio = 0 [private]

ratio of the splitting plane in range (0,0.5)

Definition at line 683 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
iterator ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splitRightIt [private]

Definition at line 680 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
unsigned int ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_splits = 0 [private]

Definition at line 670 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
unsigned int ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_tries = 0 [private]

Definition at line 669 of file KdTree.hpp.

template<typename TQualityEvaluator , typename Traits >
bool ApproxMVBB::KdTree::SplitHeuristicPointData< TQualityEvaluator, Traits >::m_wasLastTry = false [private]

Flag which tells if the best values have just been updated when we finished the opt. loop.

Best values

Definition at line 698 of file KdTree.hpp.


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


asr_approx_mvbb
Author(s): Gassner Nikolai
autogenerated on Sat Jun 8 2019 20:21:50