Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ode/ode-0.9/OPCODE/Ice/IcePairs.h @ 216

Last change on this file since 216 was 216, checked in by mathiask, 16 years ago

[Physik] add ode-0.9

File size: 1.7 KB
Line 
1///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2/**
3 *      Contains a simple pair class.
4 *      \file           IcePairs.h
5 *      \author         Pierre Terdiman
6 *      \date           January, 13, 2003
7 */
8///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9
10///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11// Include Guard
12#ifndef __ICEPAIRS_H__
13#define __ICEPAIRS_H__
14
15        //! A generic couple structure
16        struct ICECORE_API Pair
17        {
18                inline_ Pair()  {}
19                inline_ Pair(udword i0, udword i1) : id0(i0), id1(i1)   {}
20
21                udword  id0;    //!< First index of the pair
22                udword  id1;    //!< Second index of the pair
23        };
24
25        class ICECORE_API Pairs : private Container
26        {
27                public:
28                // Constructor / Destructor
29                                                                Pairs()                                                 {}
30                                                                ~Pairs()                                                {}
31
32                inline_ udword                  GetNbPairs()            const           { return GetNbEntries()>>1;                                     }
33                inline_ const Pair*             GetPairs()                      const           { return (const Pair*)GetEntries();                     }
34                inline_ const Pair*             GetPair(udword i)       const           { return (const Pair*)&GetEntries()[i+i];       }
35
36                inline_ BOOL                    HasPairs()                      const           { return IsNotEmpty();                                          }
37
38                inline_ void                    ResetPairs()                                    { Reset();                                                                      }
39                inline_ void                    DeleteLastPair()                                { DeleteLastEntry();    DeleteLastEntry();      }
40
41                inline_ void                    AddPair(const Pair& p)                  { Add(p.id0).Add(p.id1);                                        }
42                inline_ void                    AddPair(udword id0, udword id1) { Add(id0).Add(id1);                                            }
43        };
44
45#endif // __ICEPAIRS_H__
Note: See TracBrowser for help on using the repository browser.