From 40185ee440d9bd04ca28beef0f75924d80b43673 Mon Sep 17 00:00:00 2001 From: Caitlin Ross Date: Tue, 15 Dec 2020 14:04:04 -0500 Subject: [PATCH] attempting to fix various build and linking errors --- vtkm/filter/CMakeLists.txt | 4 +++ vtkm/filter/Gradient.h | 14 ++++++++ vtkm/filter/GradientXGCPoints.cxx | 35 ++++++++++++++++++++ vtkm/filter/PolicyBase.h | 13 ++++++++ vtkm/io/testing/UnitTestVTKDataSetWriter.cxx | 13 ++++++++ 5 files changed, 79 insertions(+) create mode 100644 vtkm/filter/GradientXGCPoints.cxx diff --git a/vtkm/filter/CMakeLists.txt b/vtkm/filter/CMakeLists.txt index 2f6ef6754..f8ef674cb 100644 --- a/vtkm/filter/CMakeLists.txt +++ b/vtkm/filter/CMakeLists.txt @@ -206,6 +206,10 @@ set(gradient_sources_device GradientVector.cxx ) +if (VTKm_ADD_XGC_TO_DEFAULT_TYPES_VTK) + list(APPEND gradient_sources_device GradientXGCPoints.cxx) +endif() + vtkm_pyexpander_generated_file(ClipWithFieldSkipInstantiations.hxx) vtkm_pyexpander_generated_file(ClipWithImplicitFunctionSkipInstantiations.hxx) vtkm_pyexpander_generated_file(ClipWithFieldSignedInteger.cxx) diff --git a/vtkm/filter/Gradient.h b/vtkm/filter/Gradient.h index 8b2d7d5fc..17da41b5a 100644 --- a/vtkm/filter/Gradient.h +++ b/vtkm/filter/Gradient.h @@ -213,6 +213,20 @@ extern template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradien const vtkm::filter::FieldMetadata&, vtkm::filter::PolicyBase); +#ifdef VTKM_ADD_XGC_DEFAULT_TYPES +extern template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute( + const vtkm::cont::DataSet&, + const vtkm::cont::ArrayHandle, vtkm::cont::StorageTagXGCCoordinates>&, + const vtkm::filter::FieldMetadata&, + vtkm::filter::PolicyBase); + +extern template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute( + const vtkm::cont::DataSet&, + const vtkm::cont::ArrayHandle, vtkm::cont::StorageTagXGCCoordinates>&, + const vtkm::filter::FieldMetadata&, + vtkm::filter::PolicyBase); +#endif + #endif //vtkm_filter_Gradient_cxx } } // namespace vtkm::filter diff --git a/vtkm/filter/GradientXGCPoints.cxx b/vtkm/filter/GradientXGCPoints.cxx new file mode 100644 index 000000000..649f136b9 --- /dev/null +++ b/vtkm/filter/GradientXGCPoints.cxx @@ -0,0 +1,35 @@ +//============================================================================ +// Copyright (c) Kitware, Inc. +// All rights reserved. +// See LICENSE.txt for details. +// +// This software is distributed WITHOUT ANY WARRANTY; without even +// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +// PURPOSE. See the above copyright notice for more information. +//============================================================================ + +#ifndef vtk_m_filter_Gradient_XGC_cxx +#define vtk_m_filter_Gradient_XGC_cxx + +#include +#include + +namespace vtkm +{ +namespace filter +{ +template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute( + const vtkm::cont::DataSet&, + const vtkm::cont::ArrayHandle, vtkm::cont::StorageTagXGCCoordinates>&, + const vtkm::filter::FieldMetadata&, + vtkm::filter::PolicyBase); + +template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute( + const vtkm::cont::DataSet&, + const vtkm::cont::ArrayHandle, vtkm::cont::StorageTagXGCCoordinates>&, + const vtkm::filter::FieldMetadata&, + vtkm::filter::PolicyBase); +} +} + +#endif diff --git a/vtkm/filter/PolicyBase.h b/vtkm/filter/PolicyBase.h index f89f74a3e..01de4ab16 100644 --- a/vtkm/filter/PolicyBase.h +++ b/vtkm/filter/PolicyBase.h @@ -153,6 +153,19 @@ struct AllCastArraysForStorageImpl +struct AllCastArraysForStorageImpl, vtkm::cont::StorageTagXGCCoordinates, true> +{ + using type = vtkm::List>; +}; +template +struct AllCastArraysForStorageImpl +{ + using type = vtkm::ListEmpty; +}; +#endif + // Given a target type and storage of an array handle, provides a list this array handle plus all // array handles that can be cast to the target type wrapped in an ArrayHandleCast that does so. template diff --git a/vtkm/io/testing/UnitTestVTKDataSetWriter.cxx b/vtkm/io/testing/UnitTestVTKDataSetWriter.cxx index 445264f92..d0ba50cb0 100644 --- a/vtkm/io/testing/UnitTestVTKDataSetWriter.cxx +++ b/vtkm/io/testing/UnitTestVTKDataSetWriter.cxx @@ -97,6 +97,19 @@ struct CheckSameCoordinateSystem VTKM_TEST_ASSERT( test_equal_portals(originalPortal.GetThirdPortal(), filePortal.GetThirdPortal())); } + +#ifdef VTKM_ADD_XGC_DEFAULT_TYPES + // Just added to fix compilation errors when building with XGC types added to default types + // An XGC data set wouldn't be directly written out to a VTK file, it should be converted + // to an explicit grid first and then written out. + template + void operator()(const vtkm::cont::ArrayHandle&, + const vtkm::cont::CoordinateSystem&) const + { + throw vtkm::cont::ErrorBadType("UnitTestVTKDataSetWriter::CheckSameCoordinateSystem() shouldn't" + " be called on ArrayHandleXGCCoordinates"); + } +#endif }; void CheckWrittenReadData(const vtkm::cont::DataSet& originalData,