Mercurial > hg > orthanc-stone
diff Framework/Deprecated/Widgets/SliceViewerWidget.h @ 1299:c38c89684d83 broker
replacing std::auto_ptr by std::unique_ptr
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 02 Mar 2020 17:21:24 +0100 |
parents | 7ec8fea061b9 |
children | 257f2c9a02ac |
line wrap: on
line diff
--- a/Framework/Deprecated/Widgets/SliceViewerWidget.h Sun Feb 23 15:32:24 2020 +0100 +++ b/Framework/Deprecated/Widgets/SliceViewerWidget.h Mon Mar 02 17:21:24 2020 +0100 @@ -66,7 +66,61 @@ SliceViewerWidget(const SliceViewerWidget&); SliceViewerWidget& operator=(const SliceViewerWidget&); - class Scene; + class Scene : public boost::noncopyable + { + private: + OrthancStone::CoordinateSystem3D plane_; + double thickness_; + size_t countMissing_; + std::vector<ILayerRenderer*> renderers_; + + public: + void DeleteLayer(size_t index); + + Scene(const OrthancStone::CoordinateSystem3D& plane, + double thickness, + size_t countLayers); + + ~Scene(); + + void SetLayer(size_t index, + ILayerRenderer* renderer); // Takes ownership + + const OrthancStone::CoordinateSystem3D& GetPlane() const + { + return plane_; + } + + bool HasRenderer(size_t index) + { + return renderers_[index] != NULL; + } + + bool IsComplete() const + { + return countMissing_ == 0; + } + + unsigned int GetCountMissing() const + { + return static_cast<unsigned int>(countMissing_); + } + + bool RenderScene(OrthancStone::CairoContext& context, + const ViewportGeometry& view, + const OrthancStone::CoordinateSystem3D& viewportPlane); + + void SetLayerStyle(size_t index, + const RenderStyle& style); + + bool ContainsPlane(const OrthancStone::CoordinateSystem3D& plane) const; + + double GetThickness() const + { + return thickness_; + } + }; + typedef std::map<const IVolumeSlicer*, size_t> LayersIndex; @@ -75,8 +129,8 @@ std::vector<boost::shared_ptr<IVolumeSlicer> > layers_; std::vector<RenderStyle> styles_; OrthancStone::CoordinateSystem3D plane_; - std::auto_ptr<Scene> currentScene_; - std::auto_ptr<Scene> pendingScene_; + std::unique_ptr<Scene> currentScene_; + std::unique_ptr<Scene> pendingScene_; std::vector<bool> changedLayers_; bool LookupLayer(size_t& index /* out */,