BucketSizeSubdivisionTreeStrategy.h
Go to the documentation of this file.
1 #ifndef GfxTL__BUCKETSIZESUBDIVISIONTREESTRATEGY_HEADER__
2 #define GfxTL__BUCKETSIZESUBDIVISIONTREESTRATEGY_HEADER__
3 
4 namespace GfxTL
5 {
6  template <class InheritedStrategyT>
8  {
9  typedef typename InheritedStrategyT::value_type value_type;
10 
11  struct CellData : public InheritedStrategyT::CellData
12  {
13  };
14 
15  template <class BaseT>
16  class StrategyBase : public InheritedStrategyT::template StrategyBase<BaseT>
17  {
18  public:
19  typedef typename InheritedStrategyT::template StrategyBase<BaseT> BaseType;
20  typedef typename BaseType::CellType CellType;
21 
22  StrategyBase() : m_maxBucketSize(10)
23  {
24  }
25 
26  void
27  InitMaxBucketSize(size_t size)
28  {
29  m_maxBucketSize = size;
30  }
31 
32  size_t&
34  {
35  return m_maxBucketSize;
36  }
37 
38  const size_t
39  MaxBucketSize() const
40  {
41  return m_maxBucketSize;
42  }
43 
44  protected:
45  template <class BuildInformationT>
46  bool
47  ShouldSubdivide(const CellType& cell, const BuildInformationT& bi) const
48  {
49  return cell.Size() > m_maxBucketSize;
50  }
51 
52  private:
53  size_t m_maxBucketSize;
54  };
55  };
56 }; // namespace GfxTL
57 
58 #endif
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::ShouldSubdivide
bool ShouldSubdivide(const CellType &cell, const BuildInformationT &bi) const
Definition: BucketSizeSubdivisionTreeStrategy.h:47
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::StrategyBase
StrategyBase()
Definition: BucketSizeSubdivisionTreeStrategy.h:22
GfxTL::BucketSizeSubdivisionTreeStrategy
Definition: BucketSizeSubdivisionTreeStrategy.h:7
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::MaxBucketSize
const size_t MaxBucketSize() const
Definition: BucketSizeSubdivisionTreeStrategy.h:39
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::BaseType
InheritedStrategyT::template StrategyBase< BaseT > BaseType
Definition: BucketSizeSubdivisionTreeStrategy.h:19
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::MaxBucketSize
size_t & MaxBucketSize()
Definition: BucketSizeSubdivisionTreeStrategy.h:33
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::InitMaxBucketSize
void InitMaxBucketSize(size_t size)
Definition: BucketSizeSubdivisionTreeStrategy.h:27
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase
Definition: BucketSizeSubdivisionTreeStrategy.h:16
GfxTL
Definition: AABox.h:9
GfxTL::BucketSizeSubdivisionTreeStrategy::StrategyBase::CellType
BaseType::CellType CellType
Definition: BucketSizeSubdivisionTreeStrategy.h:20
GfxTL::BucketSizeSubdivisionTreeStrategy::value_type
InheritedStrategyT::value_type value_type
Definition: BucketSizeSubdivisionTreeStrategy.h:9
GfxTL::BucketSizeSubdivisionTreeStrategy::CellData
Definition: BucketSizeSubdivisionTreeStrategy.h:11