X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualContour%2FmanualViewContour.cpp;h=50754a1c391b1438be723570534c80ae8fc96843;hb=80b04dc9e3b981e24fe9ae0d81cdeb8af6e6f8c1;hp=e279664f794d5b9b7fe8e2b620069c30d9b0593a;hpb=b613b5c774c04bcd993e3c249b43e2c43771847d;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp index e279664..50754a1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp @@ -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) );