Developer Documentation
Entities.hh
1 #pragma once
2 
3 #include <type_traits>
4 
5 namespace OpenVolumeMesh {
6 
7 namespace Entity {
8  struct Vertex {};
9  struct Edge {};
10  struct HalfEdge {};
11  struct Face {};
12  struct HalfFace {};
13  struct Cell {};
14  struct Mesh {};
15 }
16 
17 template<typename T>
18 struct is_entity : std::false_type {};
19 
20 template<> struct is_entity<Entity::Vertex> : std::true_type {};
21 template<> struct is_entity<Entity::Edge> : std::true_type {};
22 template<> struct is_entity<Entity::HalfEdge> : std::true_type {};
23 template<> struct is_entity<Entity::Face> : std::true_type {};
24 template<> struct is_entity<Entity::HalfFace> : std::true_type {};
25 template<> struct is_entity<Entity::Cell> : std::true_type {};
26 template<> struct is_entity<Entity::Mesh> : std::true_type {};
27 
28 } // namespace OpenVolumeMesh