Mercurial > hg > orthanc-stone
comparison Framework/Radiography/RadiographyMaskLayer.cpp @ 1330:a72c2c9af49a
minimal option for GetSceneExtent, especially for masks
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Mon, 30 Mar 2020 09:51:01 +0200 |
parents | d4e6cd35107b |
children | 35469f75faa2 0745bd7fdf70 |
comparison
equal
deleted
inserted
replaced
1321:d4e6cd35107b | 1330:a72c2c9af49a |
---|---|
73 invalidated_ = true; | 73 invalidated_ = true; |
74 | 74 |
75 BroadcastMessage(RadiographyLayer::LayerEditedMessage(*this)); | 75 BroadcastMessage(RadiographyLayer::LayerEditedMessage(*this)); |
76 } | 76 } |
77 | 77 |
78 Extent2D RadiographyMaskLayer::GetMaskMinimalSceneExtent() const | 78 Extent2D RadiographyMaskLayer::GetSceneExtent(bool minimal) const |
79 { | 79 { |
80 Extent2D sceneExtent; | 80 if (!minimal) |
81 { | |
82 return RadiographyLayer::GetSceneExtent(minimal); | |
83 } | |
84 else | |
85 { // get the extent of the in-mask area | |
86 Extent2D sceneExtent; | |
81 | 87 |
82 for (auto corner: corners_) | 88 for (std::vector<Orthanc::ImageProcessing::ImagePoint>::const_iterator& corner = corners_.begin(); corner != corners_.end(); corner++) |
83 { | 89 { |
84 double x = static_cast<double>(corner.GetX()); | 90 double x = static_cast<double>(corner->GetX()); |
85 double y = static_cast<double>(corner.GetY()); | 91 double y = static_cast<double>(corner->GetY()); |
86 | 92 |
87 dicomLayer_.GetTransform().Apply(x, y); | 93 dicomLayer_.GetTransform().Apply(x, y); |
88 sceneExtent.AddPoint(x, y); | 94 sceneExtent.AddPoint(x, y); |
95 } | |
96 return sceneExtent; | |
89 } | 97 } |
90 return sceneExtent; | |
91 } | 98 } |
92 | 99 |
93 | 100 |
94 | 101 |
95 void RadiographyMaskLayer::Render(Orthanc::ImageAccessor& buffer, | 102 void RadiographyMaskLayer::Render(Orthanc::ImageAccessor& buffer, |