comparison Framework/Radiography/RadiographyMaskLayer.h @ 488:aede9b042cb7 am-touch-events

now using ImageProcessing::FillPolygon
author am@osimis.io
date Tue, 19 Feb 2019 11:40:14 +0100
parents 159a465e27bd
children 77e0eb83ff63
comparison
equal deleted inserted replaced
487:e4febcef669e 488:aede9b042cb7
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "RadiographyLayer.h" 24 #include "RadiographyLayer.h"
25 #include "Core/Images/Image.h" 25 #include "Core/Images/Image.h"
26 #include "Core/Images/ImageProcessing.h"
26 27
27 namespace OrthancStone 28 namespace OrthancStone
28 { 29 {
29 class RadiographyScene; 30 class RadiographyScene;
30 class RadiographyDicomLayer; 31 class RadiographyDicomLayer;
31 32
32 struct MaskPoint
33 {
34 unsigned int x;
35 unsigned int y;
36
37 MaskPoint(unsigned int x, unsigned int y)
38 : x(x),
39 y(y)
40 {}
41 };
42
43 class RadiographyMaskLayer : public RadiographyLayer 33 class RadiographyMaskLayer : public RadiographyLayer
44 { 34 {
45 private: 35 private:
46 std::vector<MaskPoint> corners_; 36 std::vector<Orthanc::ImageProcessing::ImagePoint> corners_;
47 const RadiographyDicomLayer& dicomLayer_; 37 const RadiographyDicomLayer& dicomLayer_;
48 mutable bool invalidated_; 38 mutable bool invalidated_;
49 float foreground_; 39 float foreground_;
50 40
51 mutable std::auto_ptr<Orthanc::ImageAccessor> mask_; 41 mutable std::auto_ptr<Orthanc::ImageAccessor> mask_;
57 invalidated_(true), 47 invalidated_(true),
58 foreground_(foreground) 48 foreground_(foreground)
59 { 49 {
60 } 50 }
61 51
62 void SetCorners(const std::vector<MaskPoint>& corners); 52 void SetCorners(const std::vector<Orthanc::ImageProcessing::ImagePoint>& corners);
63 void SetCorner(const MaskPoint& corner, size_t index); 53 void SetCorner(const Orthanc::ImageProcessing::ImagePoint& corner, size_t index);
64 54
65 const std::vector<MaskPoint>& GetCorners() const 55 const std::vector<Orthanc::ImageProcessing::ImagePoint>& GetCorners() const
66 { 56 {
67 return corners_; 57 return corners_;
68 } 58 }
69 59
70 float GetForeground() const 60 float GetForeground() const
84 } 74 }
85 75
86 virtual void GetControlPoint(ControlPoint& cpScene, 76 virtual void GetControlPoint(ControlPoint& cpScene,
87 size_t index) const 77 size_t index) const
88 { 78 {
89 ControlPoint cp(corners_[index].x, corners_[index].y, index); 79 ControlPoint cp(corners_[index].GetX(), corners_[index].GetY(), index);
90 80
91 // transforms image coordinates into scene coordinates 81 // transforms image coordinates into scene coordinates
92 GetTransform().Apply(cp.x, cp.y); 82 GetTransform().Apply(cp.x, cp.y);
93 cpScene = cp; 83 cpScene = cp;
94 } 84 }