www.pudn.com > tristripper-1.1.0-beta-5.zip > types.h
//
// Copyright (C) 2004 Tanguy Fautré.
// For conditions of distribution and use,
// see copyright notice in tri_stripper.h
//
//////////////////////////////////////////////////////////////////////
// SVN: $Id: types.h 86 2005-06-08 17:47:27Z gpsnoopy $
//////////////////////////////////////////////////////////////////////
#ifndef TRI_STRIPPER_HEADER_GUARD_TYPES_H
#define TRI_STRIPPER_HEADER_GUARD_TYPES_H
namespace triangle_stripper {
namespace detail {
class triangle
{
public:
triangle() { }
triangle(index A, index B, index C)
: m_A(A), m_B(B), m_C(C), m_StripID(0) { }
void ResetStripID() { m_StripID = 0; }
void SetStripID(size_t StripID) { m_StripID = StripID; }
size_t StripID() const { return m_StripID; }
index A() const { return m_A; }
index B() const { return m_B; }
index C() const { return m_C; }
private:
index m_A;
index m_B;
index m_C;
size_t m_StripID;
};
class triangle_edge
{
public:
triangle_edge(index A, index B)
: m_A(A), m_B(B) { }
index A() const { return m_A; }
index B() const { return m_B; }
bool operator == (const triangle_edge & Right) const {
return ((A() == Right.A()) && (B() == Right.B()));
}
private:
index m_A;
index m_B;
};
enum triangle_order { ABC, BCA, CAB };
class strip
{
public:
strip()
: m_Start(0), m_Order(ABC), m_Size(0) { }
strip(size_t Start, triangle_order Order, size_t Size)
: m_Start(Start), m_Order(Order), m_Size(Size) { }
size_t Start() const { return m_Start; }
triangle_order Order() const { return m_Order; }
size_t Size() const { return m_Size; }
private:
size_t m_Start;
triangle_order m_Order;
size_t m_Size;
};
} // namespace detail
} // namespace triangle_stripper
#endif // TRI_STRIPPER_HEADER_GUARD_TYPES_H