Mercurial > hg > orthanc-stone
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 } |