[774] | 1 | //
|
---|
| 2 | // Copyright (C) 2004 Tanguy Fautré.
|
---|
| 3 | // For conditions of distribution and use,
|
---|
| 4 | // see copyright notice in tri_stripper.h
|
---|
| 5 | //
|
---|
| 6 | //////////////////////////////////////////////////////////////////////
|
---|
| 7 | // SVN: $Id: types.h 86 2005-06-08 17:47:27Z gpsnoopy $
|
---|
| 8 | //////////////////////////////////////////////////////////////////////
|
---|
| 9 |
|
---|
| 10 | #ifndef TRI_STRIPPER_HEADER_GUARD_TYPES_H
|
---|
| 11 | #define TRI_STRIPPER_HEADER_GUARD_TYPES_H
|
---|
| 12 |
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 |
|
---|
| 16 | namespace triangle_stripper {
|
---|
| 17 |
|
---|
| 18 | namespace detail {
|
---|
| 19 |
|
---|
| 20 |
|
---|
| 21 |
|
---|
| 22 |
|
---|
| 23 | class triangle
|
---|
| 24 | {
|
---|
| 25 | public:
|
---|
| 26 | triangle() { }
|
---|
| 27 | triangle(index A, index B, index C)
|
---|
| 28 | : m_A(A), m_B(B), m_C(C), m_StripID(0) { }
|
---|
| 29 |
|
---|
| 30 | void ResetStripID() { m_StripID = 0; }
|
---|
| 31 | void SetStripID(size_t StripID) { m_StripID = StripID; }
|
---|
| 32 | size_t StripID() const { return m_StripID; }
|
---|
| 33 |
|
---|
| 34 | index A() const { return m_A; }
|
---|
| 35 | index B() const { return m_B; }
|
---|
| 36 | index C() const { return m_C; }
|
---|
| 37 |
|
---|
| 38 | private:
|
---|
| 39 | index m_A;
|
---|
| 40 | index m_B;
|
---|
| 41 | index m_C;
|
---|
| 42 |
|
---|
| 43 | size_t m_StripID;
|
---|
| 44 | };
|
---|
| 45 |
|
---|
| 46 |
|
---|
| 47 |
|
---|
| 48 | class triangle_edge
|
---|
| 49 | {
|
---|
| 50 | public:
|
---|
| 51 | triangle_edge(index A, index B)
|
---|
| 52 | : m_A(A), m_B(B) { }
|
---|
| 53 |
|
---|
| 54 | index A() const { return m_A; }
|
---|
| 55 | index B() const { return m_B; }
|
---|
| 56 |
|
---|
| 57 | bool operator == (const triangle_edge & Right) const {
|
---|
| 58 | return ((A() == Right.A()) && (B() == Right.B()));
|
---|
| 59 | }
|
---|
| 60 |
|
---|
| 61 | private:
|
---|
| 62 | index m_A;
|
---|
| 63 | index m_B;
|
---|
| 64 | };
|
---|
| 65 |
|
---|
| 66 |
|
---|
| 67 |
|
---|
| 68 | enum triangle_order { ABC, BCA, CAB };
|
---|
| 69 |
|
---|
| 70 |
|
---|
| 71 |
|
---|
| 72 | class strip
|
---|
| 73 | {
|
---|
| 74 | public:
|
---|
| 75 | strip()
|
---|
| 76 | : m_Start(0), m_Order(ABC), m_Size(0) { }
|
---|
| 77 |
|
---|
| 78 | strip(size_t Start, triangle_order Order, size_t Size)
|
---|
| 79 | : m_Start(Start), m_Order(Order), m_Size(Size) { }
|
---|
| 80 |
|
---|
| 81 | size_t Start() const { return m_Start; }
|
---|
| 82 | triangle_order Order() const { return m_Order; }
|
---|
| 83 | size_t Size() const { return m_Size; }
|
---|
| 84 |
|
---|
| 85 | private:
|
---|
| 86 | size_t m_Start;
|
---|
| 87 | triangle_order m_Order;
|
---|
| 88 | size_t m_Size;
|
---|
| 89 | };
|
---|
| 90 |
|
---|
| 91 |
|
---|
| 92 |
|
---|
| 93 |
|
---|
| 94 | } // namespace detail
|
---|
| 95 |
|
---|
| 96 | } // namespace triangle_stripper
|
---|
| 97 |
|
---|
| 98 |
|
---|
| 99 |
|
---|
| 100 |
|
---|
| 101 | #endif // TRI_STRIPPER_HEADER_GUARD_TYPES_H
|
---|