diff Framework/Radiography/RadiographyMaskLayer.h @ 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.h	Wed Feb 13 14:14:42 2019 +0100
+++ b/Framework/Radiography/RadiographyMaskLayer.h	Thu Feb 14 10:18:02 2019 +0100
@@ -60,6 +60,7 @@
     }
 
     void SetCorners(const std::vector<MaskPoint>& corners);
+    void SetCorner(const MaskPoint& corner, size_t index);
 
     virtual void Render(Orthanc::ImageAccessor& buffer,
                         const AffineTransform2D& viewTransform,
@@ -70,10 +71,14 @@
       return corners_.size();
     }
 
-    virtual void GetControlPointInternal(ControlPoint& controlPoint,
+    virtual void GetControlPoint(ControlPoint& cpScene,
                                          size_t index) const
     {
-      controlPoint = ControlPoint(corners_[index].x, corners_[index].y, index);
+      ControlPoint cp(corners_[index].x, corners_[index].y, index);
+
+      // transforms image coordinates into scene coordinates
+      GetTransform().Apply(cp.x, cp.y);
+      cpScene = cp;
     }
 
     virtual bool GetDefaultWindowing(float& center,
@@ -102,6 +107,11 @@
 
     }
 
+    virtual bool GetPixel(unsigned int& imageX,
+                          unsigned int& imageY,
+                          double sceneX,
+                          double sceneY) const;
+
   protected:
     virtual const AffineTransform2D& GetTransform() const;