Viskores  1.0
TopologyElementTag.h
Go to the documentation of this file.
1 //============================================================================
2 // The contents of this file are covered by the Viskores license. See
3 // LICENSE.txt for details.
4 //
5 // By contributing to this file, all contributors agree to the Developer
6 // Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7 //============================================================================
8 
9 //============================================================================
10 // Copyright (c) Kitware, Inc.
11 // All rights reserved.
12 // See LICENSE.txt for details.
13 //
14 // This software is distributed WITHOUT ANY WARRANTY; without even
15 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 // PURPOSE. See the above copyright notice for more information.
17 //============================================================================
18 #ifndef viskores_TopologyElementTag_h
19 #define viskores_TopologyElementTag_h
20 
21 #include <viskores/Types.h>
22 
23 namespace viskores
24 {
25 
33 {
34 };
35 
43 {
44 };
45 
53 {
54 };
55 
63 {
64 };
65 
66 namespace internal
67 {
68 
75 template <typename T>
76 struct TopologyElementTagCheck : std::false_type
77 {
78 };
79 
80 template <>
81 struct TopologyElementTagCheck<viskores::TopologyElementTagCell> : std::true_type
82 {
83 };
84 
85 template <>
86 struct TopologyElementTagCheck<viskores::TopologyElementTagPoint> : std::true_type
87 {
88 };
89 
90 template <>
91 struct TopologyElementTagCheck<viskores::TopologyElementTagEdge> : std::true_type
92 {
93 };
94 
95 template <>
96 struct TopologyElementTagCheck<viskores::TopologyElementTagFace> : std::true_type
97 {
98 };
99 
100 #define VISKORES_IS_TOPOLOGY_ELEMENT_TAG(type) \
101  static_assert(::viskores::internal::TopologyElementTagCheck<type>::value, \
102  "Invalid Topology Element Tag being used")
103 
104 } // namespace internal
105 
106 } // namespace viskores
107 
108 #endif //viskores_TopologyElementTag_h
viskores::TopologyElementTagCell
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:32
Types.h
viskores::TopologyElementTagEdge
A tag used to identify the edge elements in a topology.
Definition: TopologyElementTag.h:52
viskores::TopologyElementTagPoint
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:42
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
viskores::TopologyElementTagFace
A tag used to identify the face elements in a topology.
Definition: TopologyElementTag.h:62