]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp
Clean code
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualViewContour.cpp
index f2aac544f42d586b04c478843ea5d26d47b744b6..e279664f794d5b9b7fe8e2b620069c30d9b0593a 100644 (file)
@@ -32,9 +32,7 @@
 manualViewContour::manualViewContour()
 {
        _id_viewPoint_for_text  = 0;
-       _mesureScale                    = 1;
-       _initialConoturModel    = new manualContourModel();
-       
+       _initialConoturModel    = new manualContourModel();     
        _minX                                   = 99999;
        _minY                                   = 99999;
        _maxX                                   = -99999;
@@ -62,8 +60,6 @@ void manualViewContour::CopyAttributesTo( manualViewContour * cloneObject)
 {
        // Call to Fathers object
        manualViewBaseContour::CopyAttributesTo(cloneObject);
-
-       cloneObject->SetMesureScale(_mesureScale);
 }
 
 // ---------------------------------------------------------------------------
@@ -81,38 +77,45 @@ void manualViewContour::Save(FILE *pFile)
 }
 
 // ----------------------------------------------------------------------------
-
 void manualViewContour::Open(FILE *pFile)
 {
 }
 
 // ----------------------------------------------------------------------------
-void manualViewContour::RefreshContour() // virtual
+bool manualViewContour::ShowLineVersion()   // virtual
 {
-       int i,np,nps;
+       bool result = false;
+    int np     = GetNumberOfPoints( );
+       if (np==2) 
+       {
+               result=true;
+       }
+       return result;
+}
 
+// ----------------------------------------------------------------------------
+void manualViewContour::RefreshContour() // virtual
+{
+       int i,nps;
 //JSTG 25-02-08 --------------------
        //double t,delta, x,y,z;
        double x,y,z;
        double xx,yy,zz;
 //----------------------------------
-
-    np = GetNumberOfPoints( );
-
-       if (np==2) 
+       if ( ShowLineVersion()==true ) 
        {
                SetCellArray(false);
                manualPoint *mpA = _manContModel->GetManualPoint(0);
                manualPoint *mpB = _manContModel->GetManualPoint(1);            
                if ( _pts!=NULL )
                {
-                       xx=mpA->GetX() * _spc[0];
-                       yy=mpA->GetY() * _spc[1];
-                       zz=mpA->GetZ() * _spc[2];
-                       _minX=xx;
-                       _minY=yy;
-                       _maxX=xx;
-                       _maxY=yy;
+                       xx              = mpA->GetX() * _spc[0];
+                       yy              = mpA->GetY() * _spc[1];
+                       zz              = mpA->GetZ() * _spc[2];
+                       _minX   = xx;
+                       _minY   = yy;
+                       _maxX   = xx;
+                       _maxY   = yy;
                        _pts->SetPoint(0 , xx , yy , zz  );
                        xx=mpB->GetX() * _spc[0];
                        yy=mpB->GetY() * _spc[1];
@@ -132,12 +135,13 @@ void manualViewContour::RefreshContour() // virtual
 
                //EED 27 Juin 2012
                //Boundaring box        
-               _minX=99999;
-               _minY=99999;
-               _maxX=-99999;
-               _maxY=-99999;
+               _minX = 99999;
+               _minY = 99999;
+               _maxX = -99999;
+               _maxY = -99999;
                if ( _pts!=NULL )
                {
+                   int np      = GetNumberOfPoints( );
                        if (np>=2  )
                        {
                                for( i = 0; i < nps; i++ )
@@ -149,9 +153,9 @@ void manualViewContour::RefreshContour() // virtual
        //--------------------------------------------------------------
                // EED 27 sep 2006
                //                      _pts->SetPoint(i, x,y,z );
-                                       xx=x*_spc[0];
-                                       yy=y*_spc[1];
-                                       zz=z*_spc[2];
+                                       xx = x*_spc[0];
+                                       yy = y*_spc[1];
+                                       zz = z*_spc[2];
                                        _pts->SetPoint(i,xx,yy,zz );
 
                            //EED 27 Juin 2012
@@ -160,7 +164,6 @@ void manualViewContour::RefreshContour() // virtual
                                        if (yy < _minY) { _minY = yy; }
                                        if (xx > _maxX) { _maxX = xx; }
                                        if (yy > _maxY) { _maxY = yy; }
-                               
                                }// for
                        }else{
                                        _pts->SetPoint(0, 0 , 0 , 0);
@@ -168,14 +171,16 @@ void manualViewContour::RefreshContour() // virtual
                        } // if
                } // _pts!=NULL
        } //np==2
-
-       _minX=_minX-1.0;
-       _minY=_minY-1.0;
-       _maxX=_maxX+1.0;
-       _maxY=_maxY+1.0;
+       _minX = _minX-1.0;
+       _minY = _minY-1.0;
+       _maxX = _maxX+1.0;
+       _maxY = _maxY+1.0;
 
 //EED 2017-03-02
-       _pts->Modified();
+       if (_pts!=NULL) 
+       {
+               _pts->Modified();
+       }
 }
 
 // ----------------------------------------------------------------------------
@@ -188,16 +193,20 @@ void manualViewContour::RefreshText()  // virtual
                strcpy(resultText, "000");
                char resultText2[250];
                strcpy(resultText2, "000");
+               double spcP[3];
+               spcP[0] = 1;
+               spcP[1] = 1;
+               spcP[2] = 1;
 
 //CMRU 19-08-09 ----------------------------------
-               std::string label;
-               label = _manContModel->GetLabel();
+               std::string label       = _manContModel->GetLabel();
+               std::string label2      = " (" + _manContModel->GetLabel2() + "z) ";
 // ------------------------------------
-
+       
                if (size==2)
                {
                        strcpy(resultText,"L= ");
-                       gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
+                       gcvt ( this->_manContModel->GetPathSize( spcP ), 5, text );
                        strcat(resultText,text);
                        strcat(resultText,"p");
 
@@ -206,7 +215,7 @@ void manualViewContour::RefreshText()  // virtual
                        strcat(resultText,label.c_str());
 
                        strcpy(resultText2,"L= ");
-                       gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
+                       gcvt ( this->_manContModel->GetPathSize( _spc ), 5, text );
                        strcat(resultText2,text);
                        strcat(resultText2,"u");
 
@@ -217,39 +226,39 @@ void manualViewContour::RefreshText()  // virtual
                        if (_manContModel->IfCloseContour()==true)
                        {
                                strcpy(resultText,"P= ");
-                               gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
+                               gcvt ( this->_manContModel->GetPathSize( spcP ), 5, text );
                                strcat(resultText,text);
                                strcat(resultText,"p");
 
-                               gcvt ( _mesureScale * _mesureScale * this->_manContModel->GetPathArea(), 5, text );
+                               gcvt ( this->_manContModel->GetPathArea( spcP ), 5, text );
                                strcat(resultText,"   A= ");
                                strcat(resultText,text);
                                strcat(resultText,"p^2 ");
 
 
                                strcpy(resultText2,"P= ");
-                               gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
+                               gcvt ( this->_manContModel->GetPathSize( _spc ), 5, text );
                                strcat(resultText2,text);
                                strcat(resultText2,"u");
 
-                               gcvt ( _mesureScale * _mesureScale * this->_manContModel->GetPathArea(), 5, text );
+                               gcvt ( this->_manContModel->GetPathArea( _spc ), 5, text );
                                strcat(resultText2,"   A= ");
                                strcat(resultText2,text);
                                strcat(resultText2,"u^2 ");
 
                        } else {
                                strcpy(resultText,"L= ");
-                               gcvt (  _mesureScale * this->_manContModel->GetPathSize(), 5, text );
+                               gcvt ( this->_manContModel->GetPathSize( spcP ), 5, text );
                                strcat(resultText,text);
                                strcat(resultText,"p");
 
                                strcpy(resultText2,"L= ");
-                               gcvt (  _mesureScale * this->_manContModel->GetPathSize(), 5, text );
+                               gcvt ( this->_manContModel->GetPathSize( _spc ), 5, text );
                                strcat(resultText2,text);
                                strcat(resultText2,"u");
-
                        }
 //CMRU 19-08-09 ----------------------------------
+                       strcat(resultText,label2.c_str());
                        strcat(resultText,label.c_str());
 //------------------------------------------------
                }
@@ -257,82 +266,71 @@ void manualViewContour::RefreshText()  // virtual
                _textActor->SetInput(resultText);
                _textActor2->SetInput(resultText2);
                
-               if (size>=1){
-
+               if (size>=1)
+               {
                        int i;
                        for (i=0; i<size; i++)
                        {
                                if (_lstViewPoints[i]->GetPosibleSelected()==true)
                                {
                                        _id_viewPoint_for_text = i;
-                               }
-                       }
-
+                               } // if
+                       } // for
                        if (_id_viewPoint_for_text>=size) 
                        {
-                               _id_viewPoint_for_text=0;
-                       }
-                       
+                               _id_viewPoint_for_text = 0;
+                       }// if
                        double px = _manContModel->GetManualPoint(_id_viewPoint_for_text)->GetX();
                        double py = _manContModel->GetManualPoint(_id_viewPoint_for_text)->GetY();
-
                        //EED 27 sep 2006
-                       px=px*_spc[0];
-                       py=py*_spc[1];
-
+                       px = px*_spc[0];
+                       py = py*_spc[1];
                        _textActor->SetPosition(px+GetRange()+1,py);
                        _textActor2->SetPosition(px+GetRange()+1,py+2);
-               }
+               } // if size
        }
 }
 
 // ----------------------------------------------------------------------------
 bool manualViewContour::ifTouchContour(int x,int y,int z)
 {
-       bool result=false;
-
-       double xx=x;
-       double yy=y;
-       double zz=z;
+       bool result     = false;
+       double xx       = x;
+       double yy       = y;
+       double zz       = z;
        double ppA[3];
        double ppB[3];
        double d1,d2,d3;
        TransfromCoordViewWorld(xx,yy,zz);
-
 //EED 27 sep 2006
        xx = xx * _spc[0];
        yy = yy * _spc[1];
        zz = zz * _spc[2];
-
-       if ( (xx>=_minX) &&  (yy>=_minY) && (xx<=_maxX) && (yy<=_maxY)) {  // inside the boundaring box
-       
-
-               if (_manContModel->GetSizeLstPoints()==2)
+       if ( (xx>=_minX) &&  (yy>=_minY) && (xx<=_maxX) && (yy<=_maxY)) 
+       {  // inside the boundaring box
+               if ( ShowLineVersion()==true )
                {
                        manualPoint *mpA = _manContModel->GetManualPoint(0);
                        manualPoint *mpB = _manContModel->GetManualPoint(1);
                        _pts->GetPoint(0, ppA);
                        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();                     
-
-
                        // 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-mpA->GetX() );
+                       num     = num + dirVec[1]*( yy-mpA->GetY() );
+                       num     = num + dirVec[2]*( zz-mpA->GetZ() );
                        den=dirVec[0]*dirVec[0] + dirVec[1]*dirVec[1] + dirVec[2]*dirVec[2];
                        double k;
                        if (den!=0) 
                        {
-                               k=num/den;
+                               k = num/den;
                        } else {
-                               k=99999999;
+                               k = 99999999;
                        }
                        // projection of th point xx,yy,zz  in segment mpA,mpB
                        double projX = mpA->GetX() + k*dirVec[0];
@@ -345,14 +343,14 @@ bool manualViewContour::ifTouchContour(int x,int y,int z)
                        { 
                                result=true;
                        } // if d1
-               } else{
+               } else {
                        unsigned int i, nps,nps_t;
                        nps       = _sizePointsContour;
                        if (this->_manContModel->IfCloseContour()==true)
                        {
                                nps_t = nps;
                        } else {
-                       nps_t = nps-1;
+                               nps_t = nps-1;
                        } // if close
                        for( i = 0; i < nps_t; i++ ) 
                        {
@@ -363,13 +361,12 @@ bool manualViewContour::ifTouchContour(int x,int y,int z)
                                d3 = sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2]));
                                if (  ((d1+d2)>=d3) &&  ((d1+d2)<=d3*1.3) ) 
                                {
-                                       result=true;
-                                       i=nps;
+                                       result  = true;
+                                       i               = nps;
                                } // if
                        } // for i
                } // if GetSizeLstPoints()==2
        } // if min max
-
        return result;
 }
 
@@ -388,11 +385,6 @@ void manualViewContour::ClearPoint(int id)
        manualViewBaseContour::DeletePoint( id );
 }
 
-//-------------------------------------------------------------------
-void manualViewContour::SetMesureScale(double mesureScale)
-{
-       _mesureScale = mesureScale;
-}
 //-------------------------------------------------------------------
 void manualViewContour::InitMove(int x, int y, int z)
 {
@@ -411,14 +403,15 @@ void manualViewContour::InitMove(int x, int y, int z)
                this->_initialConoturModel->AddPoint( mp->GetX() - XX, mp->GetY() - YY, mp->GetZ() );
        }
 }
+
 //-------------------------------------------------------------------
 void manualViewContour::MoveContour(int x, int y, int z)
 {
        manualPoint *mpOrigin = NULL;
        manualPoint *mpMoving = NULL;
-       double XX=x;
-       double YY=y;
-       double ZZ=z;
+       double XX = x;
+       double YY = y;
+       double ZZ = z;
 
        TransfromCoordViewWorld(XX,YY,ZZ);
 
@@ -431,6 +424,8 @@ void manualViewContour::MoveContour(int x, int y, int z)
        }
        UpdateViewPoints();
 }
+
+//-------------------------------------------------------------------
 void manualViewContour::MoveContour(int horizontalUnits, int verticalUnits )
 {
        manualPoint *mpOrigin = NULL;