50 #ifndef STATUSNODEMODS_HH 51 #define STATUSNODEMODS_HH 80 template<
class MeshT >
84 static inline bool is_area(
const MeshT& _m,
typename MeshT::VertexHandle _vh)
85 {
return _m.status(_vh).is_bit_set(AREA); }
88 static inline bool is_area(
const MeshT& _m,
typename MeshT::FaceHandle _fh)
90 for (
typename MeshT::ConstFaceVertexIter cfv_it = _m.cfv_iter(_fh); cfv_it.is_valid(); ++cfv_it)
91 if (_m.status(*cfv_it).is_bit_set(AREA))
100 if (_mesh.is_isolated(_vh))
129 template<
class MeshT >
134 static inline bool is_handle(
const MeshT& _m,
typename MeshT::VertexHandle _vh)
135 {
return _m.status(_vh).is_bit_set(HANDLEAREA); }
138 static inline bool is_handle(
const MeshT& _m,
typename MeshT::FaceHandle _fh)
141 for(
typename MeshT::ConstFaceVertexIter cfv_it = _m.cfv_iter(_fh); cfv_it.is_valid(); ++cfv_it) {
142 if(!_m.status(*cfv_it).is_bit_set(HANDLEAREA)) {
154 if (!is_handle(_mesh, _vh))
157 for (
typename MeshT::CVFIter vf_it(_mesh.cvf_iter(_vh)); vf_it.is_valid(); ++vf_it)
158 if (is_handle(_mesh, *vf_it))
167 typename MeshT::HalfedgeHandle hh;
168 typename MeshT::FaceHandle fh;
170 hh = _mesh.halfedge_handle(_eh, 0);
171 if (!is_handle(_mesh, _mesh.to_vertex_handle(hh)))
return false;
173 fh = _mesh.face_handle(hh);
174 if (fh.is_valid() && is_handle(_mesh, fh))
return false;
176 hh = _mesh.halfedge_handle(_eh, 1);
177 if (!is_handle(_mesh, _mesh.to_vertex_handle(hh)))
return false;
179 fh = _mesh.face_handle(hh);
180 if (fh.is_valid() && is_handle(_mesh, fh))
return false;
196 return is_handle(_mesh, _fh);
202 template<
class MeshT >
209 return _mesh.status(_vh).feature();
215 return _mesh.status(_eh).feature();
222 return _mesh.status(_heh).feature();
228 return _mesh.status(_fh).feature();
static bool is_handle(const MeshT &_m, typename MeshT::FaceHandle _fh)
tell status node if the face is marked as handle area
static bool is_halfedge_selected(const MeshT &, typename MeshT::HalfedgeHandle)
default to false
static bool is_edge_selected(const MeshT &_mesh, typename MeshT::EdgeHandle _eh)
tell status node if the edge is marked as handle area
static bool is_vertex_selected(const MeshT &_mesh, typename MeshT::VertexHandle _vh)
tell status node if the vertex is marked as handle area
static bool is_edge_selected(const MeshT &_mesh, typename MeshT::EdgeHandle _eh)
tell status node if the edge is marked as handle area
static bool is_halfedge_selected(const MeshT &_mesh, typename MeshT::HalfedgeHandle _heh)
default to false
static bool is_face_selected(const MeshT &_mesh, typename MeshT::FaceHandle _fh)
tell status node if the face is marked as handle area
static bool is_vertex_selected(const MeshT &_mesh, typename MeshT::VertexHandle _vh)
tell status node if the vertex is marked as handle area
static bool is_halfedge_selected(const MeshT &, typename MeshT::HalfedgeHandle)
default to false
static bool is_vertex_selected(const MeshT &_mesh, typename MeshT::VertexHandle _vh)
tell status node if the vertex is marked as modeling area
static bool is_face_selected(const MeshT &_mesh, typename MeshT::FaceHandle _fh)
tell status node if the face is marked as feature
static bool is_face_selected(const MeshT &_mesh, typename MeshT::FaceHandle _fh)
tell status node if the face is marked as modeling area
static bool is_edge_selected(const MeshT &, typename MeshT::EdgeHandle)
default to false
static bool is_area(const MeshT &_m, typename MeshT::VertexHandle _vh)
tell status node if the vertex is marked as modeling area
static bool is_handle(const MeshT &_m, typename MeshT::VertexHandle _vh)
tell status node if the vertex is marked as handle area
static bool is_area(const MeshT &_m, typename MeshT::FaceHandle _fh)
tell status node if the face is marked as modeling area