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

@ -21,9 +21,14 @@
#ifndef vtk_m_filter_PolicyBase_h #ifndef vtk_m_filter_PolicyBase_h
#define 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/CoordinateSystem.h>
#include <vtkm/cont/DeviceAdapterListTag.h>
#include <vtkm/cont/DynamicCellSet.h> #include <vtkm/cont/DynamicCellSet.h>
#include <vtkm/cont/Field.h> #include <vtkm/cont/Field.h>
#include <vtkm/cont/StorageListTag.h>
#include <vtkm/filter/FilterTraits.h> #include <vtkm/filter/FilterTraits.h>
@ -31,10 +36,20 @@ namespace vtkm {
namespace filter { namespace filter {
template<typename Derived> 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. // this software.
//============================================================================ //============================================================================
#ifndef vtk_m_filter_DefaultPolicy_h #ifndef vtk_m_filter_PolicyDefault_h
#define vtk_m_filter_DefaultPolicy_h #define vtk_m_filter_PolicyDefault_h
#include <vtkm/filter/PolicyBase.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 vtkm {
namespace filter { namespace filter {
class DefaultPolicy : public vtkm::filter::PolicyBase< DefaultPolicy > struct PolicyDefault : vtkm::filter::PolicyBase< PolicyDefault >
{ {
public: // Inherit defaults from 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;
}; };
} }
} }
#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); 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::DataArrayHandle DataHandleType;
typedef MakeRadiantDataSet::ConnectivityArrayHandle CountingHandleType; typedef MakeRadiantDataSet::ConnectivityArrayHandle CountingHandleType;
@ -200,17 +200,11 @@ public:
TransformHandleType::StorageTag> {}; TransformHandleType::StorageTag> {};
typedef TypeListTagRadiantTypes FieldStorageList; typedef TypeListTagRadiantTypes FieldStorageList;
typedef vtkm::filter::DefaultPolicy::FieldTypeList FieldTypeList;
struct TypeListTagRadiantCellSetTypes : vtkm::ListTagBase< struct TypeListTagRadiantCellSetTypes : vtkm::ListTagBase<
MakeRadiantDataSet::CellSet > {}; MakeRadiantDataSet::CellSet > {};
typedef TypeListTagRadiantCellSetTypes AllCellSetList; 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) 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 //We specify a custom execution policy here, since the contourField is a
//custom field type //custom field type
result = mc.Execute( dataSet, contourField, RadiantDataSetPolicy() ); result = mc.Execute( dataSet, contourField, PolicyRadiantDataSet() );
//Map a field onto the resulting dataset //Map a field onto the resulting dataset
vtkm::cont::Field projectedField = dataSet.GetField("distanceToOther"); vtkm::cont::Field projectedField = dataSet.GetField("distanceToOther");
mc.MapFieldOntoOutput(result, projectedField, RadiantDataSetPolicy()); mc.MapFieldOntoOutput(result, projectedField, PolicyRadiantDataSet());
mc.MapFieldOntoOutput(result, contourField, RadiantDataSetPolicy()); mc.MapFieldOntoOutput(result, contourField, PolicyRadiantDataSet());
const vtkm::cont::DataSet& outputData = result.GetDataSet(); const vtkm::cont::DataSet& outputData = result.GetDataSet();
VTKM_TEST_ASSERT(outputData.GetNumberOfCellSets() == 1, VTKM_TEST_ASSERT(outputData.GetNumberOfCellSets() == 1,

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