From: Eduardo Davila Date: Tue, 28 Jul 2009 14:17:54 +0000 (+0000) Subject: no message X-Git-Tag: EED.02Oct2009~11 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=95c30bf2de4ceb066887e941918b1fcb43575455;p=creaMaracasVisu.git no message --- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.cxx index 4604878..974b168 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.cxx @@ -89,85 +89,6 @@ void ContourExtractData::GetMinMaxPoint_Of_LstManConMod( int *minPoint, } } -//------------------------------------------------------------------------ -int ContourExtractData::AnalisisContourInside(int x, - int y, - manualContourModel *manualcontourmodel - ) -{ - bool inBorder=false; - int result = 0; - int i; - //int np = manualcontourmodel->GetSizeLstPoints( ); // number of control points // JPRx - -// JSTG 26-02-08 --------------------------------------------------------------------------------------- - //int nps = manualviewbaseecontour->GetNumberOfPointsSpline(); // number of points in the spline - int nps = manualcontourmodel->GetNumberOfPointsSpline(); // number of points in the spline - double x1,y1,z1,x2,y2,z2; - double borderX, borderY; - double xx1, yy1,xx2, yy2; - //double delta=( double ) ( np ) / ( double ) ( nps ); - manualcontourmodel->UpdateSpline(); -//------------------------------------------------------------------------------------------------------ - double d; - bool ok; -// if (np>=2) -// { -// JSTG 26-02-08 --------------------------------------------------------------------------------------- -// nps--; - //manualcontourmodel->GetSplinePoint(0,x1,y1,z1); - manualcontourmodel->GetSpline_i_Point(0,&x1,&y1,&z1); - x1=x1+0.5; y1=y1+0.5; - for (i=1; i<=nps; i++) - { - borderX=x1; - borderY=y1; - - ok=false; - //t= delta * (double)(i%nps); - //manualcontourmodel->GetSplinePoint(t,x2,y2,z2); - manualcontourmodel->GetSpline_i_Point(i,&x2,&y2,&z2); - x2=x2+0.5; y2=y2+0.5; -//------------------------------------------------------------------------------------------------------ - - //by triangle similarity - if ( ((y1=y1)&&(yy2)&&(y>=y2)&&(yxx2)&&(x<(xx1-d)) ) { - result++; - borderX=xx1-d; - borderY=y; - } - } // if point inside contour - - //Border verification - if ( (x==(int)borderX) && (y==(int)borderY) ) { inBorder=true; }// if point in border - - // Verification : border in horizontal line - if ( ((int)y1==(int)y2) && ((int)y1==y) && (x1=x1) && (x<=x2)) { inBorder=true; } - if ( ((int)y1==(int)y2) && ((int)y1==y) && (x2=x2) && (x<=x1)) { inBorder=true; } - - if (inBorder==true){ i=nps; } - - x1=x2; y1=y2; z1=z2; - - } // for i -// } //if - - if (inBorder==true) { result=1; } - - return result; -} - //------------------------------------------------------------------------ int ContourExtractData::AnalisisContourInsideV2(int x, int y, int iContour ) @@ -190,7 +111,7 @@ int ContourExtractData::AnalisisContourInsideV2(int x, int y, int iContour ) y1=_lstlstlstVecY1[iContour][y][i]; x2=_lstlstlstVecX2[iContour][y][i]; y2=_lstlstlstVecY2[iContour][y][i]; - + borderX=x1; borderY=y1; @@ -207,11 +128,10 @@ int ContourExtractData::AnalisisContourInsideV2(int x, int y, int iContour ) // Finding border looking in vertical direction AND verifing if pixel is at right of the line if ( (yy>=yy1)&&(yy<=yy2) ) { - //by triangle similarity d = ( fabs(xx2-xx1)*(yy-yy1) ) / (yy2-yy1) ; - if ( (xx1xx2)&&(x<(xx1-d)) ) { result++; } + if ( (xx1<=xx2)&&(x<(xx1+d)) ) { result++; } + if ( (xx1>xx2)&&(x<(xx1-d)) ) { result++; } if ( (yy2-yy1)/difxx2xx1 >= 1.0) { @@ -251,7 +171,6 @@ int ContourExtractData::AnalisisContourInsideV2(int x, int y, int iContour ) if (inBorder==true){ i=nps; } } // for i - if (inBorder==true) { result=1; } @@ -278,7 +197,6 @@ bool ContourExtractData::isInside(int x, int y, int typeOperation) { for (i=0;iGetSpline_i_Point(0,&x1,&y1,&z1); x1=x1+0.5; y1=y1+0.5; - for (i=1; i<=nps; i++) + for (i=1; iGetSpline_i_Point(i,&x2,&y2,&z2); x2=x2+0.5; y2=y2+0.5; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h index a1d4ddc..6196303 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourExtractData.h @@ -64,9 +64,6 @@ void GetMinMaxPoint_Of_LstManConMod( int *minPoint, int *maxPoint); - int AnalisisContourInside( int x, - int y, - manualContourModel *manualcontourmodel ); int AnalisisContourInsideV2(int x, int y, int iContour ); double GetDataValue(int x, int y, int z); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp index 53729c5..d16b9c7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourControler.cpp @@ -49,9 +49,8 @@ void manualContourControler::MouseClickLeft(int x, int y){ int size= GetManualViewBaseContour()->GetNumberOfPoints(); // Insert a Control Point with shift+ClickLeft - // int tt = GetState(); // JPRx vtkRenderWindowInteractor *vtkrenderwindowinteractor = _vtkInteractorStyleBaseView->GetInteractor(); -//EED3131 + if( IsEditable() ) { if ( (_vtkInteractorStyleBaseView!=NULL) && (GetState()==0) && ( (vtkrenderwindowinteractor!=NULL) && (vtkrenderwindowinteractor->GetShiftKey()==1) ) ) @@ -65,6 +64,7 @@ void manualContourControler::MouseClickLeft(int x, int y){ { ok=true; SetState(1); + GetManualContourModel()->SetCloseContour(false); AddPoint(x,y,z); } // Continuie to Insert Control Points with ClickLeft (After being empty the contour) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp index bd08c92..4ab822f 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewBaseContour.cpp @@ -615,6 +615,7 @@ void manualViewBaseContour::Refresh() // virtual if (vri==NULL) { _wxvtkbaseview->GetRenWin()->Render(); + printf("EED %p How to optimize manualViewBaseContour::Refresh() \n",this); } } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp index 75cba5f..879d119 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewCircle.cpp @@ -34,46 +34,6 @@ void manualViewCircle::CopyAttributesTo( manualViewCircle * cloneObject) } -// ---------------------------------------------------------------------------- -/* -void manualViewCircle::RefreshContour(){ // virtual - - manualPoint *mpA,*mpB; - unsigned int i, np,nps; - double angle,radio; - double difX,difY; - double XX,YY,ZZ; - np = GetNumberOfPoints( ); - nps = _manContModel->GetNumberOfPointsSpline(); - double deltaAngle=(3.14159265*2)/(nps-1); - if ( np > 0) - { - if (np==2) - { - mpA = _manContModel->GetManualPoint(0); - mpB = _manContModel->GetManualPoint(1); - difX = mpA->GetX() - mpB->GetX(); - difY = mpA->GetY() - mpB->GetY(); - radio = sqrt( difX*difX + difY*difY ); - manualContourModelCircle *manContModelCir = (manualContourModelCircle*)_manContModel; - manContModelCir->SetRadio(radio); - - for( i = 0; i < nps; i++ ) { - manContModelCir->GetSpline_i_Point(i, &XX, &YY, &ZZ); -// angle = deltaAngle*i; -// XX = cos(angle)*radio+mpA->GetX(); -// YY = sin(angle)*radio+mpA->GetY(); - ZZ = mpA->GetZ(); - _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] ); - } // rof - } else { - _pts->SetPoint(0, 0 , 0 , 0); - _pts->SetPoint(1, 0 , 0 , 0); - } // if - } -} -*/ - // ---------------------------------------------------------------------------- int manualViewCircle::GetType() // virtual { @@ -108,43 +68,6 @@ void manualViewCircle::GetMinMax(double &minX,double &minY, double &maxX, double } } -/* -// ---------------------------------------------------------------------------- -bool manualViewCircle::ifTouchContour(int x,int y, int z) // virtual -{ - bool result=false; - double px1=99999,py1=99999,px2=-9999,py2=-99999; - - GetMinMax(px1,py1, px2, py2); - - double xx=x; - double yy=y; - double zz=z; - TransfromCoordViewWorld(xx,yy,zz); - - bool ok1=false; - bool ok2=false; - double ddx=GetRange(); - double ddy=GetRange(); - - if ((xx>px1-ddx)&&(xxpy1-ddy)&&(yypx1+ddx)&&(xxpy1+ddy)&&(yy