From bb32e40804dce0fff3c3288adf59b98d2dd917d4 Mon Sep 17 00:00:00 2001 From: Kenneth Moreland Date: Wed, 23 Nov 2016 14:00:49 -0700 Subject: [PATCH 1/2] Allow all policies to inherit defaults Previously, all declared policies had to implement every tag required by the policy, even if it was the same as the default. In addition to being annoying, this makes us less forward compatible because if we add a new item to the policy any unchanged policy would become incorrect. This change moves the default policy declarations from the default policy to PolicyBase. The default policy inherits all of them without any change. Other policies need only override those that are different than the default. --- vtkm/filter/PolicyBase.h | 17 +++++++++++++++- vtkm/filter/PolicyDefault.h | 20 ++----------------- .../testing/UnitTestMarchingCubesFilter.cxx | 6 ------ 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/vtkm/filter/PolicyBase.h b/vtkm/filter/PolicyBase.h index 3fbd6a2ac..32b4e1309 100644 --- a/vtkm/filter/PolicyBase.h +++ b/vtkm/filter/PolicyBase.h @@ -21,9 +21,14 @@ #ifndef vtk_m_filter_PolicyBase_h #define vtk_m_filter_PolicyBase_h +#include + +#include #include +#include #include #include +#include #include @@ -31,10 +36,20 @@ namespace vtkm { namespace filter { template -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; }; diff --git a/vtkm/filter/PolicyDefault.h b/vtkm/filter/PolicyDefault.h index feab2f786..dd7cb2796 100644 --- a/vtkm/filter/PolicyDefault.h +++ b/vtkm/filter/PolicyDefault.h @@ -22,29 +22,13 @@ #define vtk_m_filter_DefaultPolicy_h #include -#include -#include -#include -#include namespace vtkm { namespace filter { -class DefaultPolicy : public vtkm::filter::PolicyBase< DefaultPolicy > +struct DefaultPolicy : vtkm::filter::PolicyBase< DefaultPolicy > { -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 }; } diff --git a/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx b/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx index 8ab3325e8..e867add15 100644 --- a/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx +++ b/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx @@ -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) From eb26b88cec2b2ec189e5317975e7ef43fc2164f9 Mon Sep 17 00:00:00 2001 From: Kenneth Moreland Date: Wed, 23 Nov 2016 14:05:16 -0700 Subject: [PATCH 2/2] Change DefaultPolicy to PolicyDefault This is more in line with the VTK-m coding standards. --- vtkm/filter/FilterDataSet.hxx | 4 ++-- vtkm/filter/FilterDataSetWithField.hxx | 8 ++++---- vtkm/filter/FilterField.hxx | 6 +++--- vtkm/filter/PolicyDefault.h | 8 ++++---- vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx | 8 ++++---- vtkm/filter/testing/UnitTestPointElevationFilter.cxx | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/vtkm/filter/FilterDataSet.hxx b/vtkm/filter/FilterDataSet.hxx index 315d02360..767df827b 100644 --- a/vtkm/filter/FilterDataSet.hxx +++ b/vtkm/filter/FilterDataSet.hxx @@ -52,7 +52,7 @@ template inline VTKM_CONT ResultDataSet FilterDataSet::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::MapFieldOntoOutput(ResultDataSet& result, const vtkm::cont::Field& field) { - return this->MapFieldOntoOutput(result, field, vtkm::filter::DefaultPolicy()); + return this->MapFieldOntoOutput(result, field, vtkm::filter::PolicyDefault()); } //----------------------------------------------------------------------------- diff --git a/vtkm/filter/FilterDataSetWithField.hxx b/vtkm/filter/FilterDataSetWithField.hxx index cbbda3b13..9282487f1 100644 --- a/vtkm/filter/FilterDataSetWithField.hxx +++ b/vtkm/filter/FilterDataSetWithField.hxx @@ -55,7 +55,7 @@ ResultDataSet FilterDataSetWithField::Execute(const vtkm::cont::DataSet { return this->Execute(input, input.GetField(inFieldName), - vtkm::filter::DefaultPolicy()); + vtkm::filter::PolicyDefault()); } //----------------------------------------------------------------------------- @@ -66,7 +66,7 @@ ResultDataSet FilterDataSetWithField::Execute(const vtkm::cont::DataSet { return this->Execute(input, field, - vtkm::filter::DefaultPolicy()); + vtkm::filter::PolicyDefault()); } //----------------------------------------------------------------------------- @@ -77,7 +77,7 @@ ResultDataSet FilterDataSetWithField::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::MapFieldOntoOutput(ResultDataSet& result, const vtkm::cont::Field& field) { - return this->MapFieldOntoOutput(result, field, vtkm::filter::DefaultPolicy()); + return this->MapFieldOntoOutput(result, field, vtkm::filter::PolicyDefault()); } //----------------------------------------------------------------------------- diff --git a/vtkm/filter/FilterField.hxx b/vtkm/filter/FilterField.hxx index b539d1931..4c0a22b2d 100644 --- a/vtkm/filter/FilterField.hxx +++ b/vtkm/filter/FilterField.hxx @@ -43,7 +43,7 @@ ResultField FilterField::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::Execute(const vtkm::cont::DataSet &input, { return this->Execute(input, field, - vtkm::filter::DefaultPolicy()); + vtkm::filter::PolicyDefault()); } //----------------------------------------------------------------------------- @@ -65,7 +65,7 @@ ResultField FilterField::Execute(const vtkm::cont::DataSet &input, { return this->Execute(input, field, - vtkm::filter::DefaultPolicy()); + vtkm::filter::PolicyDefault()); } //----------------------------------------------------------------------------- diff --git a/vtkm/filter/PolicyDefault.h b/vtkm/filter/PolicyDefault.h index dd7cb2796..014bcf076 100644 --- a/vtkm/filter/PolicyDefault.h +++ b/vtkm/filter/PolicyDefault.h @@ -18,15 +18,15 @@ // 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 namespace vtkm { namespace filter { -struct DefaultPolicy : vtkm::filter::PolicyBase< DefaultPolicy > +struct PolicyDefault : vtkm::filter::PolicyBase< PolicyDefault > { // Inherit defaults from PolicyBase }; @@ -35,4 +35,4 @@ struct DefaultPolicy : vtkm::filter::PolicyBase< DefaultPolicy > } -#endif //vtk_m_filter_DefaultPolicy_h +#endif //vtk_m_filter_PolicyDefault_h diff --git a/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx b/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx index e867add15..b1df29588 100644 --- a/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx +++ b/vtkm/filter/testing/UnitTestMarchingCubesFilter.cxx @@ -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; @@ -340,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, diff --git a/vtkm/filter/testing/UnitTestPointElevationFilter.cxx b/vtkm/filter/testing/UnitTestPointElevationFilter.cxx index c35be4041..6f1019603 100644 --- a/vtkm/filter/testing/UnitTestPointElevationFilter.cxx +++ b/vtkm/filter/testing/UnitTestPointElevationFilter.cxx @@ -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);