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