00001 /* 00002 * HalfEdgeVertex.h 00003 * 00004 * Created on: 03.12.2008 00005 * Author: twiemann 00006 */ 00007 00008 #ifndef HALFEDGEVERTEX_H_ 00009 #define HALFEDGEVERTEX_H_ 00010 00011 #include <vector> 00012 using namespace std; 00013 00014 #include "Vertex.hpp" 00015 #include "Normal.hpp" 00016 #include "HalfEdge.hpp" 00017 #include "HalfEdgeFace.hpp" 00018 00019 namespace lssr 00020 { 00021 00025 template<typename VertexT, typename NormalT> 00026 class HalfEdgeVertex 00027 { 00028 public: 00029 00033 HalfEdgeVertex() {} 00034 00038 HalfEdgeVertex(VertexT v, NormalT n) : m_position(v), m_normal(n) {} 00039 00043 HalfEdgeVertex(VertexT v) : m_position(v) {} 00044 00048 HalfEdgeVertex(const HalfEdgeVertex& o) 00049 { 00050 m_position = o.m_position; 00051 m_normal = o.m_normal; 00052 m_index = o.m_index; 00053 } 00054 00056 VertexT m_position; 00057 00059 NormalT m_normal; 00060 00062 size_t m_index; 00063 00065 vector<HalfEdge< HalfEdgeVertex<VertexT, NormalT>, HalfEdgeFace<VertexT, NormalT> > *> in; 00066 00068 vector<HalfEdge< HalfEdgeVertex<VertexT, NormalT>, HalfEdgeFace<VertexT, NormalT> > *> out; 00069 }; 00070 00071 } // namespace lssr 00072 00073 #endif /* HALFEDGEVERTEX_H_ */