starting some field/dataset cleanup

This commit is contained in:
Jeremy Meredith 2015-05-19 16:21:15 -04:00
parent ed66fde8ae
commit 68d2353e6c
2 changed files with 24 additions and 13 deletions

@ -48,8 +48,9 @@ public:
vtkm::cont::ArrayHandle<vtkm::FloatDefault> array;
vtkm::cont::DeviceAdapterAlgorithm<VTKM_DEFAULT_DEVICE_ADAPTER_TAG>::
Copy(tmp, array);
Fields.resize(Fields.size()+1);
Fields[Fields.size()-1].SetData(array);
Field f("name", 1, Field::ASSOC_POINTS, array);
Fields.push_back(f);
}
vtkm::cont::Field &GetField(int index)
{

@ -42,15 +42,10 @@ public:
ASSOC_LOGICAL_DIM
};
/// default constructor
Field()
{
}
/// constructor for points / whole mesh
template <typename T>
Field(int o, Association a, ArrayHandle<T> &d)
: order(o), association(a), data(d)
Field(std::string n, int o, Association a, ArrayHandle<T> &d)
: name(n), order(o), association(a), data(d)
{
VTKM_ASSERT_CONT(association == ASSOC_WHOLE_MESH ||
association == ASSOC_POINTS);
@ -59,8 +54,8 @@ public:
/// constructor for cell set associations
template <typename T>
Field(int o, Association a, std::string n, ArrayHandle<T> &d)
: order(o), association(a), assoc_cellset_name(n), data(d)
Field(std::string n, int o, Association a, std::string csn, ArrayHandle<T> &d)
: name(n), order(o), association(a), assoc_cellset_name(csn), data(d)
{
VTKM_ASSERT_CONT(association == ASSOC_CELL_SET);
SetData(d);
@ -68,13 +63,18 @@ public:
/// constructor for logical dimension associations
template <typename T>
Field(int o, Association a, int l, ArrayHandle<T> &d)
: order(o), association(a), assoc_logical_dim(l), data(d)
Field(std::string n, int o, Association a, int l, ArrayHandle<T> &d)
: name(n), order(o), association(a), assoc_logical_dim(l), data(d)
{
VTKM_ASSERT_CONT(association == ASSOC_LOGICAL_DIM);
SetData(d);
}
const std::string &GetName()
{
return name;
}
Association GetAssociation()
{
return association;
@ -106,6 +106,14 @@ public:
data = newdata;
}
template <typename T>
void CopyData(T *ptr, int nvals)
{
vtkm::cont::ArrayHandle<T> tmp = vtkm::cont::make_ArrayHandle(ptr, nvals);
vtkm::cont::DeviceAdapterAlgorithm<VTKM_DEFAULT_DEVICE_ADAPTER_TAG>::
Copy(tmp, data);
}
/*
void CopyIntoData(vtkm::cont::ArrayHandle<vtkm::FloatDefault> &tmp)
{
@ -116,6 +124,8 @@ public:
*/
private:
std::string name; ///< only populate if assoc is cells
int order; ///< 0=(piecewise) constant, 1=linear, 2=quadratic
Association association;
std::string assoc_cellset_name; ///< only populate if assoc is cells