ShuffleIndicesTreeDataKernelStrategy.h
Go to the documentation of this file.
1#ifndef GfxTL__SHUFFLEINDICESTREEDATAKERNELSTRATEGY_HEADER__
2#define GfxTL__SHUFFLEINDICESTREEDATAKERNELSTRATEGY_HEADER__
3#include <vector>
4
5#include <GfxTL/Swap.h>
6
7namespace GfxTL
8{
9 template <class DataKernelT, class ShuffleIndicesT = std::vector<unsigned int>>
10 class ShuffleIndicesTreeDataKernelStrategy : public DataKernelT
11 {
12 public:
13 typedef typename DataKernelT::value_type value_type;
14 typedef typename DataKernelT::HandleType HandleType;
15 typedef typename DataKernelT::DereferencedType DereferencedType;
16
17 ShuffleIndicesTreeDataKernelStrategy() : m_shuffleIndices(NULL)
18 {
19 }
20
21 void
22 ShuffleIndices(ShuffleIndicesT* shuffleIndices)
23 {
24 m_shuffleIndices = shuffleIndices;
25 }
26
27 ShuffleIndicesT*
29 {
30 return m_shuffleIndices;
31 }
32
33 protected:
34 void
36 {
37 if (m_shuffleIndices)
38 {
39 Swap(a, b, m_shuffleIndices);
40 }
41 DataKernelT::SwapHandles(a, b);
42 }
43
44 private:
45 ShuffleIndicesT* m_shuffleIndices;
46 };
47}; // namespace GfxTL
48
49#endif
Definition AABox.h:10
void Swap(HandleT a, HandleT b, ContainerT *container)
Definition Swap.h:10