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,