Add methods to DataSetFieldAdd that accept a DynamicArrayHandle

This commit is contained in:
Kenneth Moreland 2016-01-21 13:00:41 -07:00
parent d626f7317d
commit e066214090
2 changed files with 36 additions and 5 deletions

@ -34,12 +34,22 @@ public:
DataSetFieldAdd() {}
//Point centered fields.
VTKM_CONT_EXPORT
static
void AddPointField(vtkm::cont::DataSet &dataSet,
const std::string &fieldName,
const vtkm::cont::DynamicArrayHandle &field)
{
dataSet.AddField(Field(fieldName, 1, vtkm::cont::Field::ASSOC_POINTS,
field));
}
template <typename T, typename Storage>
VTKM_CONT_EXPORT
static
void AddPointField(vtkm::cont::DataSet &dataSet,
const std::string &fieldName,
vtkm::cont::ArrayHandle<T, Storage> &field)
const vtkm::cont::ArrayHandle<T, Storage> &field)
{
dataSet.AddField(Field(fieldName, 1, vtkm::cont::Field::ASSOC_POINTS,
field));
@ -68,12 +78,23 @@ public:
}
//Cell centered field
VTKM_CONT_EXPORT
static
void AddCellField(vtkm::cont::DataSet &dataSet,
const std::string &fieldName,
const vtkm::cont::DynamicArrayHandle &field,
const std::string &cellSetName)
{
dataSet.AddField(Field(fieldName, 1, vtkm::cont::Field::ASSOC_CELL_SET,
cellSetName, field));
}
template <typename T, typename Storage>
VTKM_CONT_EXPORT
static
void AddCellField(vtkm::cont::DataSet &dataSet,
const std::string &fieldName,
vtkm::cont::ArrayHandle<T, Storage> &field,
const vtkm::cont::ArrayHandle<T, Storage> &field,
const std::string &cellSetName)
{
dataSet.AddField(Field(fieldName, 1, vtkm::cont::Field::ASSOC_CELL_SET,
@ -104,12 +125,23 @@ public:
cellSetName, field, n));
}
VTKM_CONT_EXPORT
static
void AddCellField(vtkm::cont::DataSet &dataSet,
const std::string &fieldName,
const vtkm::cont::DynamicArrayHandle &field,
vtkm::Id cellSetIndex = 0)
{
std::string cellSetName =
dataSet.GetCellSet(cellSetIndex).GetCellSet().GetName();
DataSetFieldAdd::AddCellField(dataSet, fieldName, field, cellSetName);
}
template <typename T, typename Storage>
VTKM_CONT_EXPORT
static
void AddCellField(vtkm::cont::DataSet &dataSet,
const std::string &fieldName,
vtkm::cont::ArrayHandle<T, Storage> &field,
const vtkm::cont::ArrayHandle<T, Storage> &field,
vtkm::Id cellSetIndex = 0)
{
std::string cellSetName =

@ -84,8 +84,7 @@ inline vtkm::cont::DataSet make_SingleTypeDataSet()
const int nVerts = 5;
vtkm::Float32 vars[nVerts] = {10.1f, 20.1f, 30.2f, 40.2f, 50.3f};
vtkm::cont::DataSetFieldAdd fieldAdder;
fieldAdder.AddPointField(ds, "pointvar", vars, nVerts);
vtkm::cont::DataSetFieldAdd::AddPointField(ds, "pointvar", vars, nVerts);
return ds;
}