home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar 2006 March
/
Gamestar_82_2006-03_dvd.iso
/
DVDStar
/
Editace
/
quake4_sdkv10.exe
/
source
/
idlib
/
containers
/
Pair.h
< prev
next >
Wrap
C/C++ Source or Header
|
2005-11-14
|
1KB
|
59 lines
//----------------------------------------------------------------
// Pair.cpp
//
// Copyright 2002-2004 Raven Software
//----------------------------------------------------------------
#ifndef __PAIR_H__
#define __PAIR_H__
template< class type1, class type2 >
class rvPair {
public:
rvPair() {};
rvPair( const type1& T1, const type2& T2 ) { first = T1; second = T2; };
const type1& First( void ) const { return first; };
const type2& Second( void ) const { return second; };
static int rvPairFirstCompare( const rvPair< type1, type2 > *a, const rvPair< type1, type2 > *b ) {
return b->First() - a->First();
}
static int rvPairSecondCompare( const rvPair< type1, type2 > *a, const rvPair< type1, type2 > *b ) {
return b->Second() - a->Second();
}
static int rvPairFirstCompareDirect( const rvPair< type1, type2 > *a, const rvPair< type1, type2 > *b ) {
if( b->First() - a->First() < 0.001f || b->First() - a->First() < -0.001f ) {
return 0;
}
if( a->First() > b->First() ) {
return -1;
} else if( a->First() < b->First() ) {
return 1;
}
return 0;
}
static int rvPairSecondCompareDirect( const rvPair< type1, type2 > *a, const rvPair< type1, type2 > *b ) {
if( b->Second() - a->Second() < 0.001f || b->Second() - a->Second() < -0.001f ) {
return 0;
}
if( a->Second() > b->Second() ) {
return -1;
} else if( a->Second() < b->Second() ) {
return 1;
}
return 0;
}
private:
type1 first;
type2 second;
};
#endif