]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp
#3331 creaMaracasVisu Bug New Normal - Select contour with 2 points, HelpViewerNV
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualViewContour.cpp
index e279664f794d5b9b7fe8e2b620069c30d9b0593a..50754a1c391b1438be723570534c80ae8fc96843 100644 (file)
@@ -310,20 +310,21 @@ bool manualViewContour::ifTouchContour(int x,int y,int z)
        {  // inside the boundaring box
                if ( ShowLineVersion()==true )
                {
-                       manualPoint *mpA = _manContModel->GetManualPoint(0);
-                       manualPoint *mpB = _manContModel->GetManualPoint(1);
                        _pts->GetPoint(0, ppA);
+                       _pts->GetPoint(1, ppB);
                        double dirVec[3];
                        // direction of the segment
-            dirVec[0] = mpB->GetX() - mpA->GetX();                     
-            dirVec[1] = mpB->GetY() - mpA->GetY();                     
-            dirVec[2] = mpB->GetZ() - mpA->GetZ();                     
+            dirVec[0] = ppB[0] - ppA[0];
+            dirVec[1] = ppB[1] - ppA[1];
+            dirVec[2] = ppB[2] - ppA[2];
                        // proj = mpA + k*dirVec
                        double num;
                        double den = 0.0 ;
-                       num     = dirVec[0]*( xx-mpA->GetX() );
-                       num     = num + dirVec[1]*( yy-mpA->GetY() );
-                       num     = num + dirVec[2]*( zz-mpA->GetZ() );
+
+                       num     = dirVec[0]*( xx-ppA[0] );
+                       num     = num + dirVec[1]*( yy-ppA[1] );
+                       num     = num + dirVec[2]*( zz-ppA[2] );
+
                        den=dirVec[0]*dirVec[0] + dirVec[1]*dirVec[1] + dirVec[2]*dirVec[2];
                        double k;
                        if (den!=0) 
@@ -333,9 +334,10 @@ bool manualViewContour::ifTouchContour(int x,int y,int z)
                                k = 99999999;
                        }
                        // projection of th point xx,yy,zz  in segment mpA,mpB
-                       double projX = mpA->GetX() + k*dirVec[0];
-                       double projY = mpA->GetY() + k*dirVec[1];
-                       double projZ = mpA->GetZ() + k*dirVec[2];
+                       double projX = ppA[0] + k*dirVec[0];
+                       double projY = ppA[1] + k*dirVec[1];
+                       double projZ = ppA[2] + k*dirVec[2];
+
 
                        // distance [projX,projY,projZ]   and   (xx,yy,zz]
                        double d1= sqrt(  (projX-xx)*(projX-xx) + (projY-yy)*(projY-yy) +(projZ-zz)*(projZ-zz) );