Choreonoid  1.5
IdPair.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_UTIL_ID_PAIR_H
7 #define CNOID_UTIL_ID_PAIR_H
8 
9 namespace cnoid {
10 
11 template<class T = int> class IdPair
12 {
13  T id[2];
14 
15 public:
16 
17  IdPair(T id0, T id1){
18  if(id0 <= id1){
19  id[0] = id0;
20  id[1] = id1;
21  } else {
22  id[0] = id1;
23  id[1] = id0;
24  }
25  }
26 
27  IdPair(const T* src){
28  if(src[0] <= src[1]){
29  id[0] = src[0];
30  id[1] = src[1];
31  } else {
32  id[0] = src[1];
33  id[1] = src[0];
34  }
35  }
36 
37  T operator()(int which) const { return id[which]; }
38 
39  bool operator<(const IdPair& pair2) const {
40  if(id[0] < pair2.id[0]){
41  return true;
42  } else if(id[0] == pair2.id[0]){
43  return (id[1] < pair2.id[1]);
44  } else {
45  return false;
46  }
47  }
48 };
49 
50 }
51 
52 #endif
IdPair(const T *src)
Definition: IdPair.h:27
T operator()(int which) const
Definition: IdPair.h:37
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
bool operator<(const IdPair &pair2) const
Definition: IdPair.h:39
IdPair(T id0, T id1)
Definition: IdPair.h:17
Definition: IdPair.h:11