use unique_ptr for PIMPL ConnectivityProxy

This commit is contained in:
Li-Ta Lo 2023-06-01 14:54:27 -06:00
parent b2880566d5
commit 09c78eec43
2 changed files with 20 additions and 12 deletions

@ -15,6 +15,8 @@
#include <vtkm/rendering/raytracing/Logger.h>
#include <vtkm/rendering/raytracing/RayOperations.h>
#include <memory>
namespace vtkm
{
@ -52,8 +54,6 @@ public:
}
}
~InternalsType() {}
VTKM_CONT
void SetUnitScalar(vtkm::Float32 unitScalar) { Tracer.SetUnitScalar(unitScalar); }
@ -241,7 +241,7 @@ public:
VTKM_CONT
ConnectivityProxy::ConnectivityProxy(const vtkm::cont::DataSet& dataSet,
const std::string& fieldName)
: Internals(new InternalsType(dataSet, fieldName))
: Internals(std::make_unique<InternalsType>(dataSet, fieldName))
{
}
@ -256,11 +256,16 @@ ConnectivityProxy::ConnectivityProxy(const vtkm::cont::UnknownCellSet& cellset,
dataset.AddCoordinateSystem(coords);
dataset.AddField(scalarField);
Internals = std::shared_ptr<InternalsType>(new InternalsType(dataset, scalarField.GetName()));
Internals = std::make_unique<InternalsType>(dataset, scalarField.GetName());
}
VTKM_CONT
ConnectivityProxy::~ConnectivityProxy() {}
ConnectivityProxy::ConnectivityProxy(ConnectivityProxy&&) noexcept = default;
VTKM_CONT
ConnectivityProxy& ConnectivityProxy::operator=(vtkm::rendering::ConnectivityProxy&&) noexcept =
default;
VTKM_CONT
ConnectivityProxy::~ConnectivityProxy() = default;
VTKM_CONT
void ConnectivityProxy::SetSampleDistance(const vtkm::Float32& distance)

@ -34,9 +34,15 @@ public:
ConnectivityProxy(const vtkm::cont::UnknownCellSet& cellset,
const vtkm::cont::CoordinateSystem& coords,
const vtkm::cont::Field& scalarField);
// Do not allow the default constructor
ConnectivityProxy() = delete;
ConnectivityProxy(const ConnectivityProxy&) = delete;
ConnectivityProxy& operator=(const ConnectivityProxy&) = delete;
ConnectivityProxy(ConnectivityProxy&&) noexcept;
ConnectivityProxy& operator=(ConnectivityProxy&&) noexcept;
~ConnectivityProxy();
enum struct RenderMode
{
Volume,
@ -45,10 +51,8 @@ public:
void SetRenderMode(RenderMode mode);
void SetSampleDistance(const vtkm::Float32&);
void SetCanvas(vtkm::rendering::Canvas* canvas);
void SetScalarField(const std::string& fieldName);
void SetEmissionField(const std::string& fieldName);
void SetCamera(const vtkm::rendering::Camera& camera);
void SetScalarRange(const vtkm::Range& range);
void SetColorMap(vtkm::cont::ArrayHandle<vtkm::Vec4f_32>& colormap);
void SetCompositeBackground(bool on);
@ -69,9 +73,8 @@ public:
protected:
struct InternalsType;
struct BoundsFunctor;
std::shared_ptr<InternalsType> Internals;
std::unique_ptr<InternalsType> Internals;
};
}
} //namespace vtkm::rendering
#endif //vtk_m_rendering_SceneRendererVolume_h
#endif //vtk_m_rendering_ConnectivityProxy_h