Go to the documentation of this file.
10 #ifndef vtk_m_cont_DataSet_h
11 #define vtk_m_cont_DataSet_h
13 #include <vtkm/cont/vtkm_cont_export.h>
54 this->FindFieldIndex(name, assoc, found);
79 const std::string& name,
87 const std::string& name,
90 return this->GetField(this->GetFieldIndex(name, assoc));
95 const std::string& name,
98 return this->GetField(this->GetFieldIndex(name, assoc));
140 template <
typename T,
typename Storage>
147 template <
typename T>
154 template <
typename T>
168 template <
typename T,
typename Storage>
175 template <
typename T>
182 template <
typename T>
193 this->CoordSystems.push_back(cs);
199 return this->GetCoordinateSystemIndex(name) >= 0;
212 vtkm::Id GetCoordinateSystemIndex(
const std::string& name)
const;
229 return this->CoordSystems;
232 template <
typename CellSetType>
278 void PrintSummary(std::ostream& out)
const;
283 using Key = std::pair<std::string, vtkm::cont::Field::Association>;
285 template <
typename T>
288 if (a.first == b.first)
292 return a.first < b.first;
297 std::map<FieldCompare::Key, vtkm::cont::Field, FieldCompare>
Fields;
301 vtkm::Id FindFieldIndex(
const std::string& name,
317 template <
typename FieldTypeList = VTKM_DEFAULT_TYPE_LIST,
318 typename CellSetTypesList = VTKM_DEFAULT_CELL_SET_LIST>
319 struct SerializableDataSet
321 SerializableDataSet() =
default;
336 template <
typename FieldTypeList,
typename CellSetTypesList>
337 struct Serialization<
vtkm::cont::SerializableDataSet<FieldTypeList, CellSetTypesList>>
340 using Type = vtkm::cont::SerializableDataSet<FieldTypeList, CellSetTypesList>;
343 static VTKM_CONT void save(BinaryBuffer& bb,
const Type& serializable)
345 const auto& dataset = serializable.DataSet;
347 vtkm::IdComponent numberOfCoordinateSystems = dataset.GetNumberOfCoordinateSystems();
348 vtkmdiy::save(bb, numberOfCoordinateSystems);
351 vtkmdiy::save(bb, dataset.GetCoordinateSystem(i));
354 vtkmdiy::save(bb, dataset.GetCellSet().ResetCellSetList(CellSetTypesList{}));
357 vtkmdiy::save(bb, numberOfFields);
360 vtkmdiy::save(bb, dataset.GetField(i));
364 static VTKM_CONT void load(BinaryBuffer& bb, Type& serializable)
366 auto& dataset = serializable.DataSet;
375 dataset.AddCoordinateSystem(coords);
380 dataset.SetCellSet(cells);
388 dataset.AddField(field);
396 #endif //vtk_m_cont_DataSet_h
VTKM_CONT vtkm::cont::UnknownCellSet & GetCellSet()
Definition: DataSet.h:243
Manages an array-worth of data.
Definition: ArrayHandle.h:287
VTKM_CONT bool HasPointField(const std::string &name) const
Definition: DataSet.h:67
VTKM_CONT void AddCellField(const std::string &fieldName, const std::vector< T > &field)
Definition: DataSet.h:176
VTKM_NO_DEPRECATED_VIRTUAL.
Definition: Algorithms.h:18
VTKM_CONT void AddPointField(const std::string &fieldName, const vtkm::cont::ArrayHandle< T, Storage > &field)
Definition: DataSet.h:141
#define VTKM_IS_KNOWN_OR_UNKNOWN_CELL_SET(T)
Definition: UnknownCellSet.h:356
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
Association
Definition: cont/Field.h:34
vtkm::cont::Field make_Field(std::string name, Field::Association association, const T *data, vtkm::Id size, vtkm::CopyFlag copy)
Convenience functions to build fields from C style arrays and std::vector.
Definition: cont/Field.h:188
VTKM_CONT std::vector< vtkm::cont::CoordinateSystem > GetCoordinateSystems() const
Returns an std::vector of CoordinateSystems held in this DataSet.
Definition: DataSet.h:227
An ArrayHandle of an unknown value type and storage.
Definition: UnknownArrayHandle.h:397
A CellSet of an uncertain type.
Definition: UncertainCellSet.h:38
A CellSet of an unknown type.
Definition: UnknownCellSet.h:50
VTKM_CONT void AddCellField(const std::string &fieldName, const vtkm::cont::UnknownArrayHandle &field)
Definition: DataSet.h:163
bool operator()(const T &a, const T &b) const
Definition: DataSet.h:286
Definition: Particle.h:251
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC T load(const U &u, vtkm::Id v)
Definition: FetchTagArrayDirectIn.h:36
Definition: CoordinateSystem.h:128
vtkm::cont::Field make_FieldCell(std::string name, const vtkm::cont::ArrayHandle< T, S > &data)
Convenience function to build cell fields from vtkm::cont::ArrayHandle.
Definition: cont/Field.h:265
VTKM_CONT void AddPointField(const std::string &fieldName, const T *field, const vtkm::Id &n)
Definition: DataSet.h:155
VTKM_CONT bool HasCellField(const std::string &name) const
Definition: DataSet.h:59
std::vector< vtkm::cont::CoordinateSystem > CoordSystems
Definition: DataSet.h:296
vtkm::cont::UnknownCellSet CellSet
Definition: DataSet.h:298
A Field encapsulates an array on some piece of the mesh, such as the points, a cell set,...
Definition: cont/Field.h:31
VTKM_CONT vtkm::IdComponent GetNumberOfCoordinateSystems() const
Definition: DataSet.h:252
#define VTKM_CONT
Definition: ExportMacros.h:57
VTKM_CONT void AddCellField(const std::string &fieldName, const T *field, const vtkm::Id &n)
Definition: DataSet.h:183
const VTKM_CONT vtkm::cont::Field & GetPointField(const std::string &name) const
Returns the first point field that matches the provided name.
Definition: DataSet.h:122
VTKM_CONT void AddCoordinateSystem(const vtkm::cont::CoordinateSystem &cs)
Definition: DataSet.h:191
VTKM_CONT bool HasCoordinateSystem(const std::string &name) const
Definition: DataSet.h:197
VTKM_CONT void AddPointField(const std::string &fieldName, const std::vector< T > &field)
Definition: DataSet.h:148
Definition: DataSet.h:281
VTKM_CONT vtkm::cont::Field & GetCellField(const std::string &name)
Definition: DataSet.h:112
VTKM_CONT void SetCellSet(const CellSetType &cellSet)
Definition: DataSet.h:233
VTKM_CONT vtkm::IdComponent GetNumberOfFields() const
Definition: DataSet.h:246
VTKM_CONT void AddCellField(const std::string &fieldName, const vtkm::cont::ArrayHandle< T, Storage > &field)
Definition: DataSet.h:169
const VTKM_CONT vtkm::cont::Field & GetField(const std::string &name, vtkm::cont::Field::Association assoc=vtkm::cont::Field::Association::Any) const
Returns the field that matches the provided name and association Will throw an exception if no match ...
Definition: DataSet.h:86
VTKM_CONT bool HasField(const std::string &name, vtkm::cont::Field::Association assoc=vtkm::cont::Field::Association::Any) const
Definition: DataSet.h:50
VTKM_CONT vtkm::cont::Field & GetField(const std::string &name, vtkm::cont::Field::Association assoc=vtkm::cont::Field::Association::Any)
Definition: DataSet.h:94
std::pair< std::string, vtkm::cont::Field::Association > Key
Definition: DataSet.h:283
const VTKM_CONT vtkm::cont::UnknownCellSet & GetCellSet() const
Definition: DataSet.h:240
VTKM_CONT vtkm::cont::Field & GetPointField(const std::string &name)
Definition: DataSet.h:128
vtkm::cont::Field make_FieldPoint(std::string name, const vtkm::cont::ArrayHandle< T, S > &data)
Convenience function to build point fields from vtkm::cont::ArrayHandle.
Definition: cont/Field.h:251
std::map< FieldCompare::Key, vtkm::cont::Field, FieldCompare > Fields
Definition: DataSet.h:297
const VTKM_CONT vtkm::cont::Field & GetCellField(const std::string &name) const
Returns the first cell field that matches the provided name.
Definition: DataSet.h:106
VTKM_CONT void AddPointField(const std::string &fieldName, const vtkm::cont::UnknownArrayHandle &field)
Definition: DataSet.h:135