IndexLexicographicPosition< Cmp, First > Struct Template Reference
[Storm classes specific to multispot processing]

Class for sorting a list of indexes to an array of spots lexicographically according to the 2D positions of the spots. More...

List of all members.

Public Member Functions

 IndexLexicographicPosition (const vector< Vector< 4 > > &s)
bool operator() (int a, int b)

Public Attributes

const vector< Vector< 4 > > & spots

Static Public Attributes

static const int Second = First==2?3:2

Detailed Description

template<class Cmp, int First>
struct IndexLexicographicPosition< Cmp, First >

Class for sorting a list of indexes to an array of spots lexicographically according to the 2D positions of the spots.

Parameters:
Cmp comparator function to specify less or greater
First most significant position index

Definition at line 451 of file multispot5.cc.


Constructor & Destructor Documentation

template<class Cmp , int First>
IndexLexicographicPosition< Cmp, First >::IndexLexicographicPosition ( const vector< Vector< 4 > > &  s  )  [inline]
Parameters:
s Vector to sort indices of

Definition at line 455 of file multispot5.cc.

00456     :spots(s)
00457     {}


Member Function Documentation

template<class Cmp , int First>
bool IndexLexicographicPosition< Cmp, First >::operator() ( int  a,
int  b 
) [inline]

Compare two indexes into the array of spots.

Definition at line 463 of file multispot5.cc.

References IndexLexicographicPosition< Cmp, First >::Second, and IndexLexicographicPosition< Cmp, First >::spots.

00464     {
00465         Cmp cmp;
00466 
00467         if(cmp(spots[a][First], spots[b][First]))
00468             return true;
00469         else if(spots[a][First] == spots[b][First])
00470             return cmp(spots[a][Second], spots[b][Second]);
00471         else
00472             return false;
00473     }


Member Data Documentation

template<class Cmp , int First>
const vector<Vector<4> >& IndexLexicographicPosition< Cmp, First >::spots

Keep around the array of spots for later comprison.

Definition at line 452 of file multispot5.cc.

Referenced by IndexLexicographicPosition< Cmp, First >::operator()().

template<class Cmp , int First>
const int IndexLexicographicPosition< Cmp, First >::Second = First==2?3:2 [static]

Second most siginifcant position index for sorting.

Definition at line 460 of file multispot5.cc.

Referenced by IndexLexicographicPosition< Cmp, First >::operator()().


The documentation for this struct was generated from the following file:
Generated on Wed Nov 2 18:00:03 2011 for BCUBED by  doxygen 1.6.3