diff --git a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h index 0b3f1a963063cdf5f1685dbde55deaaea7a77d2f..24198dada846d6d81fb9f1c155e5a6612e1e7055 100644 --- a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h +++ b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h @@ -25,6 +25,7 @@ #include #include +#include #include // for std::underlying_type diff --git a/Accelerators/Vtkm/DataModel/Testing/Cxx/TestVTKMDataSet.cxx b/Accelerators/Vtkm/DataModel/Testing/Cxx/TestVTKMDataSet.cxx index ec41b18b60db354a8c4a1532eb5cedfd70ce7534..2493ae5b03cf29c5dfc90614489a8049fc623715 100644 --- a/Accelerators/Vtkm/DataModel/Testing/Cxx/TestVTKMDataSet.cxx +++ b/Accelerators/Vtkm/DataModel/Testing/Cxx/TestVTKMDataSet.cxx @@ -274,18 +274,19 @@ vtkm::cont::testing::MakeTestDataSet Maker; void TestUniformDataSet() { auto dataset = Maker.Make3DUniformDataSet0(); - auto coords = - dataset.GetCoordinateSystem().GetData().Cast(); + auto coords = dataset.GetCoordinateSystem() + .GetData() + .AsArrayHandle(); auto portal = coords.ReadPortal(); auto dims = portal.GetDimensions(); auto origin = portal.GetOrigin(); auto spacing = portal.GetSpacing(); vtkNew pointField, cellField; - FieldCopy(dataset.GetField("pointvar").GetData().Cast>(), + FieldCopy(dataset.GetField("pointvar").GetData().AsArrayHandle>(), "pointvar", pointField); - FieldCopy(dataset.GetField("cellvar").GetData().Cast>(), "cellvar", - cellField); + FieldCopy(dataset.GetField("cellvar").GetData().AsArrayHandle>(), + "cellvar", cellField); vtkNew imageData; imageData->SetDimensions(dims[0], dims[1], dims[2]); @@ -315,10 +316,10 @@ void TestCurvilinearDataSet() CoordsCopy(dataset.GetCoordinateSystem(), points); vtkNew pointField, cellField; - FieldCopy(dataset.GetField("pointvar").GetData().Cast>(), + FieldCopy(dataset.GetField("pointvar").GetData().AsArrayHandle>(), "pointvar", pointField); - FieldCopy(dataset.GetField("cellvar").GetData().Cast>(), "cellvar", - cellField); + FieldCopy(dataset.GetField("cellvar").GetData().AsArrayHandle>(), + "cellvar", cellField); vtkNew dsVtk; dsVtk->SetDimensions(dims[0], dims[1], dims[2]); @@ -357,10 +358,10 @@ void TestExplicitDataSet() } vtkNew pointField, cellField; - FieldCopy(dataset.GetField("pointvar").GetData().Cast>(), + FieldCopy(dataset.GetField("pointvar").GetData().AsArrayHandle>(), "pointvar", pointField); - FieldCopy(dataset.GetField("cellvar").GetData().Cast>(), "cellvar", - cellField); + FieldCopy(dataset.GetField("cellvar").GetData().AsArrayHandle>(), + "cellvar", cellField); vtkNew dsVtk; dsVtk->SetPoints(points); diff --git a/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx b/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx index 147c3c6e175dbd342095805750bfc4fee81735dc..f1ef72ffae91ca843ca56bdc305ab68bbc955157 100644 --- a/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx +++ b/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx @@ -35,8 +35,7 @@ #include #include #include -#include -#include +#include #include #include @@ -62,8 +61,8 @@ struct vtkmDataSet::DataMembers vtkm::cont::CoordinateSystem Coordinates; vtkNew Cell; - VtkmLocator PointLocator; - VtkmLocator CellLocator; + VtkmLocator PointLocator; + VtkmLocator CellLocator; }; //------------------------------------------------------------------------------ @@ -172,7 +171,7 @@ void vtkmDataSet::GetCellBounds(vtkIdType cellId, double bounds[6]) this->Internals->CellSet.IsType>()) { auto portal = this->Internals->Coordinates.GetData() - .Cast() + .AsArrayHandle() .ReadPortal(); vtkm::internal::ConnectivityStructuredInternals<3> helper; @@ -279,7 +278,7 @@ vtkIdType vtkmDataSet::FindPoint(double x[3]) vtkm::Id pointId = -1; vtkm::FloatDefault d2 = 0; // exec object created for the Serial device can be called directly - execLocator->FindNearestNeighbor(point, pointId, d2); + execLocator.FindNearestNeighbor(point, pointId, d2); return pointId; } @@ -316,7 +315,7 @@ vtkIdType vtkmDataSet::FindCell(double x[3], vtkCell*, vtkGenericCell*, vtkIdTyp vtkm::Vec pc; vtkm::Id cellId = -1; // exec object created for the Serial device can be called directly - execLocator->FindCell(point, cellId, pc); + execLocator.FindCell(point, cellId, pc); if (cellId >= 0) { diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx index 351c0d5ce169cf455d2d3c0a1307ba8e60510371..c7ecff3c9fc5eafecb9dd11d9dbea15cbd44bd3d 100644 --- a/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx +++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx @@ -121,7 +121,7 @@ bool Convert( return false; } - auto points = cs.GetData().Cast(); + auto points = cs.GetData().AsArrayHandle(); auto portal = points.ReadPortal(); auto origin = portal.GetOrigin(); @@ -156,7 +156,7 @@ bool Convert(const vtkm::cont::DataSet& voutput, vtkImageData* output, vtkDataSe return false; } - auto points = cs.GetData().Cast(); + auto points = cs.GetData().AsArrayHandle(); auto portal = points.ReadPortal(); auto dim = portal.GetDimensions(); diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx index f2411d0e70505435cd312ee23b3cb2e653eb28d8..814af43cc168b4c3b44107b0c19e68cc1b42538d 100644 --- a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx +++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx @@ -52,8 +52,7 @@ void ImplicitFunctionConverter::Set(vtkImplicitFunction* function) box->GetXMin(xmin); box->GetXMax(xmax); - auto b = new vtkm::Box(MakeFVec3(xmin), MakeFVec3(xmax)); - this->OutFunction.Reset(b, true); + this->OutFunction = vtkm::Box(MakeFVec3(xmin), MakeFVec3(xmax)); } else if ((cylinder = vtkCylinder::SafeDownCast(function))) { @@ -62,9 +61,8 @@ void ImplicitFunctionConverter::Set(vtkImplicitFunction* function) cylinder->GetAxis(axis); radius = cylinder->GetRadius(); - auto c = new vtkm::Cylinder( - MakeFVec3(center), MakeFVec3(axis), static_cast(radius)); - this->OutFunction.Reset(c, true); + this->OutFunction = + vtkm::Cylinder(MakeFVec3(center), MakeFVec3(axis), static_cast(radius)); } else if ((plane = vtkPlane::SafeDownCast(function))) { @@ -72,8 +70,7 @@ void ImplicitFunctionConverter::Set(vtkImplicitFunction* function) plane->GetOrigin(origin); plane->GetNormal(normal); - auto p = new vtkm::Plane(MakeFVec3(origin), MakeFVec3(normal)); - this->OutFunction.Reset(p, true); + this->OutFunction = vtkm::Plane(MakeFVec3(origin), MakeFVec3(normal)); } else if ((sphere = vtkSphere::SafeDownCast(function))) { @@ -81,8 +78,7 @@ void ImplicitFunctionConverter::Set(vtkImplicitFunction* function) sphere->GetCenter(center); radius = sphere->GetRadius(); - auto s = new vtkm::Sphere(MakeFVec3(center), static_cast(radius)); - this->OutFunction.Reset(s, true); + this->OutFunction = vtkm::Sphere(MakeFVec3(center), static_cast(radius)); } else { @@ -95,7 +91,7 @@ void ImplicitFunctionConverter::Set(vtkImplicitFunction* function) this->InFunction = function; } -const vtkm::cont::ImplicitFunctionHandle& ImplicitFunctionConverter::Get() const +const vtkm::ImplicitFunctionGeneral& ImplicitFunctionConverter::Get() { if (this->InFunction && (this->MTime < this->InFunction->GetMTime())) { @@ -110,9 +106,7 @@ const vtkm::cont::ImplicitFunctionHandle& ImplicitFunctionConverter::Get() const box->GetXMin(xmin); box->GetXMax(xmax); - auto b = static_cast(this->OutFunction.Get()); - b->SetMinPoint(MakeFVec3(xmin)); - b->SetMaxPoint(MakeFVec3(xmax)); + this->OutFunction = vtkm::Box(MakeFVec3(xmin), MakeFVec3(xmax)); } else if ((cylinder = vtkCylinder::SafeDownCast(this->InFunction))) { @@ -121,10 +115,8 @@ const vtkm::cont::ImplicitFunctionHandle& ImplicitFunctionConverter::Get() const cylinder->GetAxis(axis); radius = cylinder->GetRadius(); - auto c = static_cast(this->OutFunction.Get()); - c->SetCenter(MakeFVec3(center)); - c->SetAxis(MakeFVec3(axis)); - c->SetRadius(static_cast(radius)); + this->OutFunction = + vtkm::Cylinder(MakeFVec3(center), MakeFVec3(axis), static_cast(radius)); } else if ((plane = vtkPlane::SafeDownCast(this->InFunction))) { @@ -132,9 +124,7 @@ const vtkm::cont::ImplicitFunctionHandle& ImplicitFunctionConverter::Get() const plane->GetOrigin(origin); plane->GetNormal(normal); - auto p = static_cast(this->OutFunction.Get()); - p->SetOrigin(MakeFVec3(origin)); - p->SetNormal(MakeFVec3(normal)); + this->OutFunction = vtkm::Plane(MakeFVec3(origin), MakeFVec3(normal)); } else if ((sphere = vtkSphere::SafeDownCast(this->InFunction))) { @@ -142,9 +132,7 @@ const vtkm::cont::ImplicitFunctionHandle& ImplicitFunctionConverter::Get() const sphere->GetCenter(center); radius = sphere->GetRadius(); - auto s = static_cast(this->OutFunction.Get()); - s->SetCenter(MakeFVec3(center)); - s->SetRadius(static_cast(radius)); + this->OutFunction = vtkm::Sphere(MakeFVec3(center), static_cast(radius)); } this->MTime = this->InFunction->GetMTime(); diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h index 10e2ae99ae819ca86516bf7ab5a0988c75b6323e..a1a571c93d44a7d62f79afc86aab05d1f359af82 100644 --- a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h +++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h @@ -20,7 +20,7 @@ #include "vtkType.h" // For vtkMTimeType #include "vtkmConfigDataModel.h" //required for general vtkm setup -#include "vtkm/cont/ImplicitFunctionHandle.h" +#include "vtkm/ImplicitFunction.h" class vtkImplicitFunction; @@ -33,11 +33,11 @@ public: ImplicitFunctionConverter(); void Set(vtkImplicitFunction*); - const vtkm::cont::ImplicitFunctionHandle& Get() const; + const vtkm::ImplicitFunctionGeneral& Get(); private: vtkImplicitFunction* InFunction; - vtkm::cont::ImplicitFunctionHandle OutFunction; + vtkm::ImplicitFunctionGeneral OutFunction; mutable vtkMTimeType MTime; }; diff --git a/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx b/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx index 04a637a92d487b019742bbf81884750c48ba105d..674d9b6e0dfe36edd787e519e70ec0bf46602c81 100644 --- a/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx +++ b/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx @@ -24,12 +24,9 @@ vtkm::cont::DataSet vtkmClip::internals::ExecuteClipWithImplicitFunction(vtkm::c auto function = this->ClipFunctionConverter->Get(); vtkm::cont::DataSet result; - if (function.GetValid()) - { - vtkm::filter::ClipWithImplicitFunction functionFilter; - functionFilter.SetImplicitFunction(function); - result = functionFilter.Execute(in); - } + vtkm::filter::ClipWithImplicitFunction functionFilter; + functionFilter.SetImplicitFunction(function); + result = functionFilter.Execute(in); return result; }