#include <OgreRadixSort.h>
Public Types | |
typedef TContainer::iterator | ContainerIter |
Public Member Functions | |
RadixSort () | |
~RadixSort () | |
template<class TFunction> | |
void | sort (TContainer &container, TFunction func) |
Main sort function. | |
Protected Member Functions | |
void | sortPass (int byteIndex) |
template<typename T> | |
void | finalPass (int byteIndex, T val) |
void | finalPass (int byteIndex, int val) |
void | finalPass (int byteIndex, float val) |
unsigned char | getByte (int byteIndex, TCompValueType val) |
Protected Attributes | |
int | mCounters [4][256] |
Alpha-pass counters of values (histogram) 4 of them so we can radix sort a maximum of a 32bit value. | |
int | mOffsets [256] |
Beta-pass offsets. | |
int | mSortSize |
Sort area size. | |
int | mNumPasses |
Number of passes for this type. | |
std::vector< SortEntry > | mSortArea1 |
Temp sort storage. | |
std::vector< SortEntry > | mSortArea2 |
std::vector< SortEntry > * | mSrc |
std::vector< SortEntry > * | mDest |
TContainer | mTmpContainer |
Classes | |
struct | SortEntry |
struct BibbleSortFunctor { float operator()(const Bibble& val) const { return val.getDoobrie(); } }
RadixSort<BibbleList, Bibble, float> radixSorter; BibbleSortFunctor functor; radixSorter.sort(myBibbleList, functor);
Definition at line 83 of file OgreRadixSort.h.
typedef TContainer::iterator Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::ContainerIter |
Definition at line 86 of file OgreRadixSort.h.
Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::RadixSort | ( | ) |
Definition at line 231 of file OgreRadixSort.h.
Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::~RadixSort | ( | ) |
Definition at line 232 of file OgreRadixSort.h.
void Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::sortPass | ( | int | byteIndex | ) | [protected] |
Definition at line 115 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::finalPass(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
void Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::finalPass | ( | int | byteIndex, | |
T | val | |||
) | [protected] |
Definition at line 134 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
void Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::finalPass | ( | int | byteIndex, | |
int | val | |||
) | [protected] |
Definition at line 141 of file OgreRadixSort.h.
void Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::finalPass | ( | int | byteIndex, | |
float | val | |||
) | [protected] |
Definition at line 174 of file OgreRadixSort.h.
unsigned char Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::getByte | ( | int | byteIndex, | |
TCompValueType | val | |||
) | [protected] |
Definition at line 220 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::finalPass(), Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sortPass().
void Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::sort | ( | TContainer & | container, | |
TFunction | func | |||
) |
Main sort function.
container | A container of the type you declared when declaring | |
func | A functor which returns the value for comparison when given a container value |
Definition at line 240 of file OgreRadixSort.h.
int Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mCounters[4][256] [protected] |
Alpha-pass counters of values (histogram) 4 of them so we can radix sort a maximum of a 32bit value.
Definition at line 90 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::finalPass(), Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sortPass().
int Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mOffsets[256] [protected] |
Beta-pass offsets.
Definition at line 92 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::finalPass(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sortPass().
int Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mSortSize [protected] |
Sort area size.
Definition at line 94 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::finalPass(), Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sortPass().
int Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mNumPasses [protected] |
Number of passes for this type.
Definition at line 96 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::getByte(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
std::vector<SortEntry> Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mSortArea1 [protected] |
Temp sort storage.
Definition at line 108 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
std::vector<SortEntry> Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mSortArea2 [protected] |
Definition at line 109 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
std::vector<SortEntry>* Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mSrc [protected] |
Definition at line 110 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::finalPass(), Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort(), and Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sortPass().
std::vector<SortEntry>* Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mDest [protected] |
Definition at line 111 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
TContainer Ogre::RadixSort< TContainer, TContainerValueType, TCompValueType >::mTmpContainer [protected] |
Definition at line 112 of file OgreRadixSort.h.
Referenced by Ogre::RadixSort< std::vector< RenderablePass >, Ogre::RenderablePass, float >::sort().
Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 27 22:05:19 2009