Merge topic 'policy-inherit-defaults'

eb26b88c Change DefaultPolicy to PolicyDefault
bb32e408 Allow all policies to inherit defaults

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !619
This commit is contained in:
Robert Maynard 2016-12-01 08:21:03 -05:00 committed by Kitware Robot
commit c4874340e5
7 changed files with 35 additions and 42 deletions

@ -52,7 +52,7 @@ template<typename Derived>
inline VTKM_CONT
ResultDataSet FilterDataSet<Derived>::Execute(const vtkm::cont::DataSet &input)
{
return this->Execute(input, vtkm::filter::DefaultPolicy());
return this->Execute(input, vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------
@ -118,7 +118,7 @@ inline VTKM_CONT
bool FilterDataSet<Derived>::MapFieldOntoOutput(ResultDataSet& result,
const vtkm::cont::Field& field)
{
return this->MapFieldOntoOutput(result, field, vtkm::filter::DefaultPolicy());
return this->MapFieldOntoOutput(result, field, vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------

@ -55,7 +55,7 @@ ResultDataSet FilterDataSetWithField<Derived>::Execute(const vtkm::cont::DataSet
{
return this->Execute(input,
input.GetField(inFieldName),
vtkm::filter::DefaultPolicy());
vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------
@ -66,7 +66,7 @@ ResultDataSet FilterDataSetWithField<Derived>::Execute(const vtkm::cont::DataSet
{
return this->Execute(input,
field,
vtkm::filter::DefaultPolicy());
vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------
@ -77,7 +77,7 @@ ResultDataSet FilterDataSetWithField<Derived>::Execute(const vtkm::cont::DataSet
{
return this->Execute(input,
field,
vtkm::filter::DefaultPolicy());
vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------
@ -179,7 +179,7 @@ inline VTKM_CONT
bool FilterDataSetWithField<Derived>::MapFieldOntoOutput(ResultDataSet& result,
const vtkm::cont::Field& field)
{
return this->MapFieldOntoOutput(result, field, vtkm::filter::DefaultPolicy());
return this->MapFieldOntoOutput(result, field, vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------

@ -43,7 +43,7 @@ ResultField FilterField<Derived>::Execute(const vtkm::cont::DataSet &input,
{
return this->Execute(input,
input.GetField(inFieldName),
vtkm::filter::DefaultPolicy());
vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------
@ -54,7 +54,7 @@ ResultField FilterField<Derived>::Execute(const vtkm::cont::DataSet &input,
{
return this->Execute(input,
field,
vtkm::filter::DefaultPolicy());
vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------
@ -65,7 +65,7 @@ ResultField FilterField<Derived>::Execute(const vtkm::cont::DataSet &input,
{
return this->Execute(input,
field,
vtkm::filter::DefaultPolicy());
vtkm::filter::PolicyDefault());
}
//-----------------------------------------------------------------------------

@ -21,9 +21,14 @@
#ifndef vtk_m_filter_PolicyBase_h
#define vtk_m_filter_PolicyBase_h
#include <vtkm/TypeListTag.h>
#include <vtkm/cont/CellSetListTag.h>
#include <vtkm/cont/CoordinateSystem.h>
#include <vtkm/cont/DeviceAdapterListTag.h>
#include <vtkm/cont/DynamicCellSet.h>
#include <vtkm/cont/Field.h>
#include <vtkm/cont/StorageListTag.h>
#include <vtkm/filter/FilterTraits.h>
@ -31,10 +36,20 @@ namespace vtkm {
namespace filter {
template<typename Derived>
class PolicyBase
struct PolicyBase
{
typedef VTKM_DEFAULT_TYPE_LIST_TAG FieldTypeList;
typedef VTKM_DEFAULT_STORAGE_LIST_TAG FieldStorageList;
typedef vtkm::cont::CellSetListTagStructured StructuredCellSetList;
typedef vtkm::cont::CellSetListTagUnstructured UnstructuredCellSetList;
typedef VTKM_DEFAULT_CELL_SET_LIST_TAG AllCellSetList;
typedef VTKM_DEFAULT_COORDINATE_SYSTEM_TYPE_LIST_TAG CoordinateTypeList;
typedef VTKM_DEFAULT_COORDINATE_SYSTEM_STORAGE_LIST_TAG CoordinateStorageList;
// List of backends to try in sequence (if one fails, the next is attempted).
typedef VTKM_DEFAULT_DEVICE_ADAPTER_LIST_TAG DeviceAdapterList;
};

@ -18,37 +18,21 @@
// this software.
//============================================================================
#ifndef vtk_m_filter_DefaultPolicy_h
#define vtk_m_filter_DefaultPolicy_h
#ifndef vtk_m_filter_PolicyDefault_h
#define vtk_m_filter_PolicyDefault_h
#include <vtkm/filter/PolicyBase.h>
#include <vtkm/cont/CellSetListTag.h>
#include <vtkm/cont/DeviceAdapterListTag.h>
#include <vtkm/cont/StorageListTag.h>
#include <vtkm/TypeListTag.h>
namespace vtkm {
namespace filter {
class DefaultPolicy : public vtkm::filter::PolicyBase< DefaultPolicy >
struct PolicyDefault : vtkm::filter::PolicyBase< PolicyDefault >
{
public:
typedef VTKM_DEFAULT_TYPE_LIST_TAG FieldTypeList;
typedef VTKM_DEFAULT_STORAGE_LIST_TAG FieldStorageList;
typedef vtkm::cont::CellSetListTagStructured StructuredCellSetList;
typedef vtkm::cont::CellSetListTagUnstructured UnstructuredCellSetList;
typedef VTKM_DEFAULT_CELL_SET_LIST_TAG AllCellSetList;
typedef VTKM_DEFAULT_COORDINATE_SYSTEM_TYPE_LIST_TAG CoordinateTypeList;
typedef VTKM_DEFAULT_COORDINATE_SYSTEM_STORAGE_LIST_TAG CoordinateStorageList;
// List of backends to try in sequence (if one fails, the next is attempted).
typedef VTKM_DEFAULT_DEVICE_ADAPTER_LIST_TAG DeviceAdapterList;
// Inherit defaults from PolicyBase
};
}
}
#endif //vtk_m_filter_DefaultPolicy_h
#endif //vtk_m_filter_PolicyDefault_h

@ -183,7 +183,7 @@ public:
vtkm::cont::DataSet Make3DRadiantDataSet(vtkm::IdComponent dim=5);
};
class RadiantDataSetPolicy : public vtkm::filter::PolicyBase< RadiantDataSetPolicy >
class PolicyRadiantDataSet : public vtkm::filter::PolicyBase< PolicyRadiantDataSet >
{
typedef MakeRadiantDataSet::DataArrayHandle DataHandleType;
typedef MakeRadiantDataSet::ConnectivityArrayHandle CountingHandleType;
@ -200,17 +200,11 @@ public:
TransformHandleType::StorageTag> {};
typedef TypeListTagRadiantTypes FieldStorageList;
typedef vtkm::filter::DefaultPolicy::FieldTypeList FieldTypeList;
struct TypeListTagRadiantCellSetTypes : vtkm::ListTagBase<
MakeRadiantDataSet::CellSet > {};
typedef TypeListTagRadiantCellSetTypes AllCellSetList;
typedef vtkm::filter::DefaultPolicy::CoordinateTypeList CoordinateTypeList;
typedef vtkm::filter::DefaultPolicy::CoordinateStorageList CoordinateStorageList;
typedef vtkm::filter::DefaultPolicy::DeviceAdapterList DeviceAdapterList;
};
inline vtkm::cont::DataSet MakeRadiantDataSet::Make3DRadiantDataSet(vtkm::IdComponent dim)
@ -346,13 +340,13 @@ void TestMarchingCubesCustomPolicy()
//We specify a custom execution policy here, since the contourField is a
//custom field type
result = mc.Execute( dataSet, contourField, RadiantDataSetPolicy() );
result = mc.Execute( dataSet, contourField, PolicyRadiantDataSet() );
//Map a field onto the resulting dataset
vtkm::cont::Field projectedField = dataSet.GetField("distanceToOther");
mc.MapFieldOntoOutput(result, projectedField, RadiantDataSetPolicy());
mc.MapFieldOntoOutput(result, contourField, RadiantDataSetPolicy());
mc.MapFieldOntoOutput(result, projectedField, PolicyRadiantDataSet());
mc.MapFieldOntoOutput(result, contourField, PolicyRadiantDataSet());
const vtkm::cont::DataSet& outputData = result.GetDataSet();
VTKM_TEST_ASSERT(outputData.GetNumberOfCellSets() == 1,

@ -125,7 +125,7 @@ void TestPointElevationWithPolicy()
vtkm::filter::ResultField result;
vtkm::filter::DefaultPolicy p;
vtkm::filter::PolicyDefault p;
result = filter.Execute(inputData,
inputData.GetCoordinateSystem(),
p);