00001 00002 // // 00003 // Class: Enriched_vertex // 00004 // // 00006 00007 #ifndef _ENRICHED_VERTEX_H 00008 #define _ENRICHED_VERTEX_H 00009 00010 #include "CGAL/HalfedgeDS_vertex_base.h" 00011 00017 template <class Refs, class T, class P, class Norm> 00018 class Enriched_vertex : public CGAL::HalfedgeDS_vertex_base<Refs, T, P> 00019 { 00020 long m_tag; // tag 00021 long m_prev; // preceding neighbour 00022 double m_value; // value 00023 Norm m_normal; // normal 00024 P m_point2d; // point 2d (a un interet seulement si le mesh est une local region) 00025 00026 public: 00027 // life cycle 00028 Enriched_vertex() {} 00029 // repeat mandatory constructors 00030 Enriched_vertex(const P& pt) 00031 : CGAL::HalfedgeDS_vertex_base<Refs, T, P>(pt) 00032 { 00033 }; 00034 00035 // normal 00036 typedef Norm Normal_3; 00037 Normal_3& normal() { return m_normal; } 00038 const Normal_3& normal() const { return m_normal; } 00039 00040 // tag 00041 long& tag() { return m_tag; } 00042 const long& tag() const { return m_tag; } 00043 void tag(const long& t) { m_tag = t; } 00044 00045 // prev 00046 long& prev() { return m_prev; } 00047 const long& prev() const { return m_prev; } 00048 void prev(const long& p) { m_prev = p; } 00049 00050 // value 00051 double& value() { return m_value; } 00052 const double& value() const { return m_value; } 00053 void value(const double& v) { m_value = v; } 00054 00055 // point 2d 00056 double& point2d() { return m_point2d; } 00057 const double& point2d() const { return m_point2d; } 00058 void point2d(const double& p) { m_point2d = p; } 00059 }; 00060 00061 #endif