migrate ClipWithImplicitFunction

This commit is contained in:
Li-Ta Lo 2022-01-11 05:58:47 -07:00
parent 3c700259a1
commit 4eefdb3325
13 changed files with 199 additions and 368 deletions

@ -10,14 +10,10 @@
vtkm_add_instantiations(GradientInstantiations FILTER Gradient)
vtkm_add_instantiations(ClipWithImplicitFunctionInstantiations
FILTER ClipWithImplicitFunction
INSTANTIATIONS_FILE ClipWithImplicitFunctionExternInstantiations.h
)
set(deprecated_headers
CleanGrid.h
ClipWithField.h
ClipWithImplicitFunction.h
Contour.h
DotProduct.h
ExternalFaces.h
@ -77,7 +73,6 @@ set(common_sources_device
set(extra_headers
AmrArrays.h
CellSetConnectivity.h
ClipWithImplicitFunction.h
ComputeMoments.h
ContourTreeUniformAugmented.h
ContourTreeUniformDistributed.h
@ -133,8 +128,6 @@ set(extra_headers
set(extra_header_template_sources
AmrArrays.hxx
CellSetConnectivity.hxx
ClipWithImplicitFunction.hxx
ClipWithImplicitFunctionExternInstantiations.h
ComputeMoments.hxx
ContourTreeUniformAugmented.hxx
ContourTreeUniformDistributed.hxx
@ -184,7 +177,6 @@ set(extra_header_template_sources
)
set(extra_sources_device
${ClipWithImplicitFunctionInstantiations}
VectorMagnitude.cxx
particleadvection/Messenger.cxx
particleadvection/ParticleMessenger.cxx
@ -202,7 +194,6 @@ set(gradient_sources_device
${GradientInstantiations}
)
vtkm_pyexpander_generated_file(ClipWithImplicitFunctionExternInstantiations.h)
set(core_headers
NewFilter.h

@ -10,104 +10,31 @@
#ifndef vtk_m_filter_ClipWithImplicitFunction_h
#define vtk_m_filter_ClipWithImplicitFunction_h
#include <vtkm/filter/vtkm_filter_extra_export.h>
#include <vtkm/ImplicitFunction.h>
#include <vtkm/filter/FilterDataSet.h>
#include <vtkm/filter/MapFieldPermutation.h>
#include <vtkm/filter/contour/worklet/Clip.h>
#include <vtkm/Deprecated.h>
#include <vtkm/filter/contour/ClipWithImplicitFunction.h>
namespace vtkm
{
namespace filter
{
/// \brief Clip a dataset using an implicit function
///
/// Clip a dataset using a given implicit function value, such as vtkm::Sphere
/// or vtkm::Frustum.
/// The resulting geometry will not be water tight.
class VTKM_FILTER_EXTRA_EXPORT ClipWithImplicitFunction
: public vtkm::filter::FilterDataSet<ClipWithImplicitFunction>
VTKM_DEPRECATED(1.8,
"Use vtkm/filter/contour/ClipWithImplicitFunction.h instead of "
"vtkm/filter/ClipWithImplicitFunction.h.")
inline void ClipWithImplicitFunction_deprecated() {}
inline void ClipWithImplicitFunction_deprecated_warning()
{
public:
void SetImplicitFunction(const vtkm::ImplicitFunctionGeneral& func) { this->Function = func; }
ClipWithImplicitFunction_deprecated();
}
void SetInvertClip(bool invert) { this->Invert = invert; }
const vtkm::ImplicitFunctionGeneral& GetImplicitFunction() const { return this->Function; }
template <typename DerivedPolicy>
vtkm::cont::DataSet DoExecute(const vtkm::cont::DataSet& input,
vtkm::filter::PolicyBase<DerivedPolicy> policy);
template <typename DerivedPolicy>
VTKM_CONT bool MapFieldOntoOutput(vtkm::cont::DataSet& result,
const vtkm::cont::Field& field,
vtkm::filter::PolicyBase<DerivedPolicy> policy)
{
if (field.IsFieldPoint())
{
// If the field is a point field, then we need to do a custom interpolation of the points.
// In this case, we need to call the superclass's MapFieldOntoOutput, which will in turn
// call our DoMapField.
return this->FilterDataSet<ClipWithImplicitFunction>::MapFieldOntoOutput(
result, field, policy);
}
else if (field.IsFieldCell())
{
// Use the precompiled field permutation function.
vtkm::cont::ArrayHandle<vtkm::Id> permutation = this->Worklet.GetCellMapOutputToInput();
return vtkm::filter::MapFieldPermutation(field, permutation, result);
}
else if (field.IsFieldGlobal())
{
result.AddField(field);
return true;
}
else
{
return false;
}
}
//Map a new field onto the resulting dataset after running the filter.
//This call is only valid after Execute has been called.
template <typename T, typename StorageType, typename DerivedPolicy>
bool DoMapField(vtkm::cont::DataSet& result,
const vtkm::cont::ArrayHandle<T, StorageType>& input,
const vtkm::filter::FieldMetadata& fieldMeta,
vtkm::filter::PolicyBase<DerivedPolicy>)
{
// All other conditions should be handled by MapFieldOntoOutput directly.
VTKM_ASSERT(fieldMeta.IsPointField());
vtkm::cont::ArrayHandle<T> output;
output = this->Worklet.ProcessPointField(input);
//use the same meta data as the input so we get the same field name, etc.
result.AddField(fieldMeta.AsField(output));
return true;
}
private:
vtkm::ImplicitFunctionGeneral Function;
vtkm::worklet::Clip Worklet;
bool Invert = false;
class VTKM_DEPRECATED(1.8, "Use vtkm::filter::contour::ClipWithImplicitFunction.")
ClipWithImplicitFunction : public vtkm::filter::contour::ClipWithImplicitFunction
{
using contour::ClipWithImplicitFunction::ClipWithImplicitFunction;
};
#ifndef vtkm_filter_ClipWithImplicitFunction_cxx
VTKM_FILTER_EXTRA_EXPORT_EXECUTE_METHOD(ClipWithImplicitFunction);
#endif
}
} // namespace vtkm::filter
#ifndef vtk_m_filter_ClipWithImplicitFunctionExternInstantiations_h
#include <vtkm/filter/ClipWithImplicitFunctionExternInstantiations.h>
#endif
#ifndef vtk_m_filter_ClipWithImplicitFunction_hxx
#include <vtkm/filter/ClipWithImplicitFunction.hxx>
#endif
#endif // vtk_m_filter_ClipWithImplicitFunction_h
#endif //vtk_m_filter_ClipWithImplicitFunction_h

@ -1,86 +0,0 @@
//============================================================================
// 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_ClipWithImplicitFunction_hxx
#define vtk_m_filter_ClipWithImplicitFunction_hxx
#include <vtkm/filter/ClipWithImplicitFunction.h>
#include <vtkm/cont/ArrayHandlePermutation.h>
#include <vtkm/cont/CellSetPermutation.h>
#include <vtkm/cont/UnknownCellSet.h>
// Do not instantiation common concrete types unless we are compiling the
// corresponding TU.
#ifndef vtkm_filter_ClipWithImplicitFunction_cxx
#include <vtkm/filter/ClipWithImplicitFunctionExternInstantiations.h>
#endif
namespace vtkm
{
namespace filter
{
namespace detail
{
struct ClipWithImplicitFunctionProcessCoords
{
template <typename T, typename Storage>
VTKM_CONT void operator()(const vtkm::cont::ArrayHandle<T, Storage>& inCoords,
const std::string& coordsName,
const vtkm::worklet::Clip& worklet,
vtkm::cont::DataSet& output) const
{
vtkm::cont::ArrayHandle<T> outArray = worklet.ProcessPointField(inCoords);
vtkm::cont::CoordinateSystem outCoords(coordsName, outArray);
output.AddCoordinateSystem(outCoords);
}
};
} // namespace detail
//-----------------------------------------------------------------------------
template <typename DerivedPolicy>
vtkm::cont::DataSet ClipWithImplicitFunction::DoExecute(
const vtkm::cont::DataSet& input,
vtkm::filter::PolicyBase<DerivedPolicy> policy)
{
//get the cells and coordinates of the dataset
const vtkm::cont::UnknownCellSet& cells = input.GetCellSet();
const vtkm::cont::CoordinateSystem& inputCoords =
input.GetCoordinateSystem(this->GetActiveCoordinateSystemIndex());
vtkm::cont::CellSetExplicit<> outputCellSet =
this->Worklet.Run(vtkm::filter::ApplyPolicyCellSet(cells, policy, *this),
this->Function,
inputCoords,
this->Invert);
//create the output data
vtkm::cont::DataSet output;
output.SetCellSet(outputCellSet);
// compute output coordinates
for (vtkm::IdComponent coordSystemId = 0; coordSystemId < input.GetNumberOfCoordinateSystems();
++coordSystemId)
{
vtkm::cont::CoordinateSystem coords = input.GetCoordinateSystem(coordSystemId);
coords.GetData().CastAndCall(
detail::ClipWithImplicitFunctionProcessCoords{}, coords.GetName(), this->Worklet, output);
}
return output;
}
}
} // end namespace vtkm::filter
#endif

@ -1,94 +0,0 @@
//============================================================================
// 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.
//============================================================================
////////////////////////// **** DO NOT EDIT THIS FILE!!! ****
// This file is automatically generated by ClipWithImplicitFunctionExternInstantiations.h.in
// clang-format off
#ifndef vtk_m_filter_ClipWithImplicitFunctionExternInstantiations_h
#define vtk_m_filter_ClipWithImplicitFunctionExternInstantiations_h
#include <vtkm/filter/ClipWithImplicitFunction.h>
#include <vtkm/filter/ClipWithImplicitFunction.hxx>
#include <vtkm/filter/Instantiations.h>
#include <vtkm/cont/ArrayHandlePermutation.h>
#include <vtkm/cont/CellSetPermutation.h>
#include <vtkm/cont/UnknownCellSet.h>
namespace vtkm
{
namespace filter
{
#ifndef vtkm_filter_ClipWithImplicitFunction_cxx
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::UInt8>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Int32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Int64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Vec3f_32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Vec3f_64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
#endif
}
}
#endif

@ -1,67 +0,0 @@
//============================================================================
// 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.
//============================================================================
//$# This file uses the pyexpander macro processing utility to build the
//$# FunctionInterface facilities that use a variable number of arguments.
//$# Information, documentation, and downloads for pyexpander can be found at:
//$#
//$# http://pyexpander.sourceforge.net/
//$#
//$# To build the source code, execute the following (after installing
//$# pyexpander, of course):
//$#
//$# expander.py ClipWithImplicitFunctionExternInstantiations.h.in > ClipWithImplicitFunctionExternInstantiations.h
//$#
//$# Ignore the following comment. It is meant for the generated file.
// **** DO NOT EDIT THIS FILE!!! ****
// This file is automatically generated by ClipWithImplicitFunctionExternInstantiations.h.in
// clang-format off
#ifndef vtk_m_filter_ClipWithImplicitFunctionExternInstantiations_h
#define vtk_m_filter_ClipWithImplicitFunctionExternInstantiations_h
#include <vtkm/filter/ClipWithImplicitFunction.h>
#include <vtkm/filter/ClipWithImplicitFunction.hxx>
#include <vtkm/filter/Instantiations.h>
#include <vtkm/cont/ArrayHandlePermutation.h>
#include <vtkm/cont/CellSetPermutation.h>
#include <vtkm/cont/UnknownCellSet.h>
namespace vtkm
{
namespace filter
{
#ifndef vtkm_filter_ClipWithImplicitFunction_cxx
$py(
# These values are taken from vtkm/TypeList.h
types = [ "vtkm::UInt8", "vtkm::Int32", "vtkm::Int64", "vtkm::Float32",
"vtkm::Float64", "vtkm::Vec3f_32", "vtkm::Vec3f_64" ]
)\
\
\
$for(TYPE in types)\
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT bool ClipWithImplicitFunction::DoMapField(
vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<$(TYPE)>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
$endfor\
#endif
}
}
#endif

@ -10,12 +10,14 @@
set(contour_headers
ClipWithField.h
ClipWithImplicitFunction.h
Contour.h
Slice.h
)
set(contour_sources_device
ClipWithField.cxx
ClipWithImplicitFunction.cxx
Contour.cxx
Slice.cxx
)

@ -19,6 +19,8 @@ namespace vtkm
{
namespace filter
{
namespace contour
{
namespace
{
struct ClipWithFieldProcessCoords
@ -41,16 +43,17 @@ bool DoMapField(vtkm::cont::DataSet& result,
{
if (field.IsFieldPoint())
{
auto array = field.GetData();
auto functor = [&](auto concrete) {
auto resolve = [&](auto concrete) {
using T = typename decltype(concrete)::ValueType;
vtkm::cont::ArrayHandle<T> output;
output = worklet.ProcessPointField(concrete);
result.template AddPointField(field.GetName(), output);
vtkm::cont::ArrayHandle<T> outputArray;
outputArray = worklet.ProcessPointField(concrete);
result.template AddPointField(field.GetName(), outputArray);
};
array.CastAndCallForTypesWithFloatFallback<vtkm::TypeListScalarAll, VTKM_DEFAULT_STORAGE_LIST>(
functor);
auto inputArray = field.GetData();
inputArray
.CastAndCallForTypesWithFloatFallback<vtkm::TypeListScalarAll, VTKM_DEFAULT_STORAGE_LIST>(
resolve);
return true;
}
else if (field.IsFieldCell())
@ -71,8 +74,6 @@ bool DoMapField(vtkm::cont::DataSet& result,
}
} // anonymous
namespace contour
{
//-----------------------------------------------------------------------------
vtkm::cont::DataSet ClipWithField::DoExecute(const vtkm::cont::DataSet& input)
{
@ -86,8 +87,6 @@ vtkm::cont::DataSet ClipWithField::DoExecute(const vtkm::cont::DataSet& input)
//get the cells and coordinates of the dataset
const vtkm::cont::UnknownCellSet& cells = input.GetCellSet();
const auto& inArray = this->GetFieldFromDataSet(input).GetData();
vtkm::cont::DataSet output;
auto ResolveFieldType = [&, this](auto concrete) {
@ -105,6 +104,7 @@ vtkm::cont::DataSet ClipWithField::DoExecute(const vtkm::cont::DataSet& input)
}
};
const auto& inArray = this->GetFieldFromDataSet(input).GetData();
inArray.CastAndCallForTypesWithFloatFallback<vtkm::TypeListScalarAll, VTKM_DEFAULT_STORAGE_LIST>(
ResolveFieldType);
@ -113,6 +113,6 @@ vtkm::cont::DataSet ClipWithField::DoExecute(const vtkm::cont::DataSet& input)
return output;
}
}
}
} // end namespace vtkm::filter
} // namespace contour
} // namespace filter
} // namespace vtkm

@ -39,7 +39,7 @@ public:
vtkm::Float64 GetClipValue() const { return this->ClipValue; }
private:
vtkm::cont::DataSet DoExecute(const vtkm::cont::DataSet& result) override;
vtkm::cont::DataSet DoExecute(const vtkm::cont::DataSet& input) override;
vtkm::Float64 ClipValue = 0;
bool Invert = false;

@ -0,0 +1,111 @@
//============================================================================
// 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.
//============================================================================
#include <vtkm/cont/CoordinateSystem.h>
#include <vtkm/cont/UnknownCellSet.h>
#include <vtkm/filter/MapFieldPermutation.h>
#include <vtkm/filter/contour/ClipWithImplicitFunction.h>
#include <vtkm/filter/contour/worklet/Clip.h>
namespace vtkm
{
namespace filter
{
namespace contour
{
namespace
{
struct ClipWithImplicitFunctionProcessCoords
{
template <typename T, typename Storage>
VTKM_CONT void operator()(const vtkm::cont::ArrayHandle<T, Storage>& inCoords,
const std::string& coordsName,
const vtkm::worklet::Clip& worklet,
vtkm::cont::DataSet& output) const
{
vtkm::cont::ArrayHandle<T> outArray = worklet.ProcessPointField(inCoords);
vtkm::cont::CoordinateSystem outCoords(coordsName, outArray);
output.AddCoordinateSystem(outCoords);
}
};
bool DoMapField(vtkm::cont::DataSet& result,
const vtkm::cont::Field& field,
const vtkm::worklet::Clip& Worklet)
{
if (field.IsFieldPoint())
{
auto resolve = [&](auto concrete) {
using T = typename decltype(concrete)::ValueType;
vtkm::cont::ArrayHandle<T> outputArray;
outputArray = Worklet.ProcessPointField(concrete);
result.AddPointField(field.GetName(), outputArray);
};
auto inputArray = field.GetData();
inputArray
.CastAndCallForTypesWithFloatFallback<vtkm::TypeListScalarAll, VTKM_DEFAULT_STORAGE_LIST>(
resolve);
return true;
}
else if (field.IsFieldCell())
{
// Use the precompiled field permutation function.
vtkm::cont::ArrayHandle<vtkm::Id> permutation = Worklet.GetCellMapOutputToInput();
return vtkm::filter::MapFieldPermutation(field, permutation, result);
}
else if (field.IsFieldGlobal())
{
result.AddField(field);
return true;
}
else
{
return false;
}
}
} // anonymous namespace
//-----------------------------------------------------------------------------
vtkm::cont::DataSet ClipWithImplicitFunction::DoExecute(const vtkm::cont::DataSet& input)
{
//get the cells and coordinates of the dataset
const vtkm::cont::UnknownCellSet& cells = input.GetCellSet();
const vtkm::cont::CoordinateSystem& inputCoords =
input.GetCoordinateSystem(this->GetActiveCoordinateSystemIndex());
vtkm::worklet::Clip Worklet;
vtkm::cont::CellSetExplicit<> outputCellSet =
Worklet.Run(cells, this->Function, inputCoords, this->Invert);
//create the output data
vtkm::cont::DataSet output;
output.SetCellSet(outputCellSet);
// compute output coordinates
for (vtkm::IdComponent coordSystemId = 0; coordSystemId < input.GetNumberOfCoordinateSystems();
++coordSystemId)
{
const vtkm::cont::CoordinateSystem& coords = input.GetCoordinateSystem(coordSystemId);
coords.GetData().CastAndCall(
ClipWithImplicitFunctionProcessCoords{}, coords.GetName(), Worklet, output);
}
auto mapper = [&](auto& result, const auto& f) { DoMapField(result, f, Worklet); };
MapFieldsOntoOutput(input, output, mapper);
return output;
}
} // namespace contour
} // namespace filter
} // namespace vtkm

@ -0,0 +1,48 @@
//============================================================================
// 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_contour_ClipWithImplicitFunction_h
#define vtk_m_filter_contour_ClipWithImplicitFunction_h
#include <vtkm/ImplicitFunction.h>
#include <vtkm/filter/NewFilterField.h>
#include <vtkm/filter/contour/vtkm_filter_contour_export.h>
namespace vtkm
{
namespace filter
{
namespace contour
{
/// \brief Clip a dataset using an implicit function
///
/// Clip a dataset using a given implicit function value, such as vtkm::Sphere
/// or vtkm::Frustum.
/// The resulting geometry will not be water tight.
class VTKM_FILTER_CONTOUR_EXPORT ClipWithImplicitFunction : public vtkm::filter::NewFilterField
{
public:
void SetImplicitFunction(const vtkm::ImplicitFunctionGeneral& func) { this->Function = func; }
void SetInvertClip(bool invert) { this->Invert = invert; }
const vtkm::ImplicitFunctionGeneral& GetImplicitFunction() const { return this->Function; }
private:
vtkm::cont::DataSet DoExecute(const vtkm::cont::DataSet& input) override;
vtkm::ImplicitFunctionGeneral Function;
bool Invert = false;
};
} // namespace contour
} // namespace filter
} // namespace vtkm
#endif // vtk_m_filter_contour_ClipWithImplicitFunction_h

@ -9,6 +9,7 @@
##============================================================================
set(unit_tests
UnitTestClipWithFieldFilter.cxx
UnitTestClipWithImplicitFunctionFilter.cxx
UnitTestContourFilter.cxx
UnitTestContourFilterNormals.cxx
)

@ -8,7 +8,7 @@
// PURPOSE. See the above copyright notice for more information.
//============================================================================
#include <vtkm/filter/ClipWithImplicitFunction.h>
#include <vtkm/filter/contour/ClipWithImplicitFunction.h>
#include <vtkm/cont/DataSetBuilderUniform.h>
#include <vtkm/cont/testing/Testing.h>
@ -25,15 +25,14 @@ vtkm::cont::DataSet MakeTestDatasetStructured()
static constexpr vtkm::Id numVerts = xdim * ydim;
vtkm::Float32 scalars[numVerts];
for (vtkm::Id i = 0; i < numVerts; ++i)
for (float& scalar : scalars)
{
scalars[i] = 1.0f;
scalar = 1.0f;
}
scalars[4] = 0.0f;
vtkm::cont::DataSet ds;
vtkm::cont::DataSetBuilderUniform builder;
ds = builder.Create(dim);
ds = vtkm::cont::DataSetBuilderUniform::Create(dim);
ds.AddPointField("scalars", scalars, numVerts);
@ -49,7 +48,7 @@ void TestClipStructured()
vtkm::Vec3f center(1, 1, 0);
vtkm::FloatDefault radius(0.5);
vtkm::filter::ClipWithImplicitFunction clip;
vtkm::filter::contour::ClipWithImplicitFunction clip;
clip.SetImplicitFunction(vtkm::Sphere(center, radius));
clip.SetFieldsToPass("scalars");
@ -86,7 +85,7 @@ void TestClipStructuredInverted()
vtkm::Vec3f center(1, 1, 0);
vtkm::FloatDefault radius(0.5);
vtkm::filter::ClipWithImplicitFunction clip;
vtkm::filter::contour::ClipWithImplicitFunction clip;
clip.SetImplicitFunction(vtkm::Sphere(center, radius));
bool invert = true;
clip.SetInvertClip(invert);

@ -16,7 +16,6 @@ set(unit_tests
UnitTestCellAverageFilter.cxx
UnitTestCellMeasuresFilter.cxx
UnitTestCellSetConnectivityFilter.cxx
UnitTestClipWithImplicitFunctionFilter.cxx
UnitTestContourTreeUniformFilter.cxx
UnitTestContourTreeUniformAugmentedFilter.cxx
UnitTestContourTreeUniformDistributedFilter.cxx