11 #ifndef smtk_mesh_core_QueryTypes_h
12 #define smtk_mesh_core_QueryTypes_h
16 #include "smtk/CoreExports.h"
19 #include "smtk/mesh/core/CellTypes.h"
20 #include "smtk/mesh/core/DimensionTypes.h"
21 #include "smtk/mesh/core/ForEachTypes.h"
22 #include "smtk/mesh/core/Handle.h"
24 #include "smtk/common/UUID.h"
39 int value()
const {
return m_value; }
42 bool operator<(
const IntegerTag& other)
const {
return m_value < other.m_value; }
43 bool operator==(
const IntegerTag& other)
const {
return m_value == other.m_value; }
44 bool operator!=(
const IntegerTag& other)
const {
return m_value != other.m_value; }
81 explicit OpaqueTag(
const unsigned char* value)
82 : m_value(value, value + S)
86 inline static int size() {
return S; }
88 const unsigned char* value()
const {
return m_value.data(); }
91 inline bool operator<(
const OpaqueTag& other)
const
93 for (
int i = 0; i < S; ++i)
94 if (m_value < other.m_value)
96 else if (m_value > other.m_value)
100 inline bool operator==(
const OpaqueTag& other)
const
102 for (
int i = 0; i < S; ++i)
103 if (m_value != other.m_value)
107 inline bool operator!=(
const OpaqueTag& other)
const
109 for (
int i = 0; i < S; ++i)
110 if (m_value != other.m_value)
116 std::vector<unsigned char> m_value;
160 bool operator<(
const CellFieldTag& other)
const {
return m_name < other.m_name; }
161 bool operator==(
const CellFieldTag& other)
const {
return m_name == other.m_name; }
162 bool operator!=(
const CellFieldTag& other)
const {
return m_name != other.m_name; }
164 std::string name()
const {
return m_name; }
179 bool operator<(
const PointFieldTag& other)
const {
return m_name < other.m_name; }
180 bool operator==(
const PointFieldTag& other)
const {
return m_name == other.m_name; }
181 bool operator!=(
const PointFieldTag& other)
const {
return m_name != other.m_name; }
183 std::string name()
const {
return m_name; }
191 PartiallyContained = 1,