Mercurial > hg > orthanc-stone
diff Framework/Radiography/RadiographyMaskLayer.cpp @ 480:2f6ecb5037ea am-touch-events
added mouse tracker for Layer Mask. Everything seems ok
author | am@osimis.io |
---|---|
date | Thu, 14 Feb 2019 10:18:02 +0100 |
parents | e3d316ba34ba |
children | 159a465e27bd |
line wrap: on
line diff
--- a/Framework/Radiography/RadiographyMaskLayer.cpp Wed Feb 13 14:14:42 2019 +0100 +++ b/Framework/Radiography/RadiographyMaskLayer.cpp Thu Feb 14 10:18:02 2019 +0100 @@ -42,6 +42,15 @@ return dicomLayer_.GetTransformInverse(); } + bool RadiographyMaskLayer::GetPixel(unsigned int& imageX, + unsigned int& imageY, + double sceneX, + double sceneY) const + { + return dicomLayer_.GetPixel(imageX, imageY, sceneX, sceneY); + } + + void ComputeMaskExtent(unsigned int& left, unsigned int& right, unsigned int& top, unsigned int& bottom, const std::vector<MaskPoint>& corners) { left = std::numeric_limits<unsigned int>::max(); @@ -59,6 +68,15 @@ } } + void RadiographyMaskLayer::SetCorner(const MaskPoint& corner, size_t index) + { + if (index < corners_.size()) + corners_[index] = corner; + else + corners_.push_back(corner); + invalidated_ = true; + } + void RadiographyMaskLayer::SetCorners(const std::vector<MaskPoint>& corners) { corners_ = corners; @@ -161,8 +179,8 @@ for (i = 0; i < cpSize; i++) { - if ((cpy[i] <= y && cpy[j] >= y) - || (cpy[j] <= y && cpy[i] >= y)) + if ((cpy[i] < y && cpy[j] >= y) + || (cpy[j] < y && cpy[i] >= y)) { nodeX[nodes++]= (int)(cpx[i] + (y - cpy[i])/(cpy[j] - cpy[i]) *(cpx[j] - cpx[i])); }