]> Creatis software - creaMaracasVisu.git/commitdiff
BUG 1440 and 1441
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Thu, 28 Jun 2012 10:58:26 +0000 (10:58 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Thu, 28 Jun 2012 10:58:26 +0000 (10:58 +0000)
  - Opacity of the text in the ShowNPoints box is not working
  - The IO in ShowNPoints is not working with an empty description of points.

And BUG 1439  from creaContours

bbtk/src/bbmaracasvisuShowNPoints.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewContour.h

index 63b5236cb28ed3f5ffb173941a4c2f4f05b1437c..25debba998835ec2288161ba90eb76b10d9a49d3 100644 (file)
@@ -6,6 +6,7 @@
 #include "vtkPolyDataMapper.h"
 #include "vtkRenderWindow.h"
 #include "vtkTextActor3D.h"
+#include <vtkTextProperty.h>
 
 namespace bbcreaMaracasVisu
 {
@@ -344,7 +345,8 @@ void WidgetShowNPoints::OnAddPoint (wxCommandEvent& event)
                //EED
 
                int result_FD = FD->ShowModal();
-
+               std::string tmpLabel;
+               
                // This line is need it by windows //EED
                FD->SetReturnCode( result_FD );
 
@@ -366,7 +368,13 @@ void WidgetShowNPoints::OnAddPoint (wxCommandEvent& event)
                                        y=lstPointsY[i];
                                        z=lstPointsZ[i];
                                        value= mimage->GetScalarComponentAsDouble(x,y,z,0);
-                                       fprintf(ff,"%d\t%d\t%d\t%f\t%s\n", x , y , z , value  , lstLabels[i].c_str());
+                                       if (lstLabels[i]!="") 
+                                       {
+                                               tmpLabel=lstLabels[i];
+                                       } else{
+                                           tmpLabel="<_VOID_>";
+                                       }
+                                       fprintf(ff,"%d\t%d\t%d\t%f\t%s\n", x , y , z , value  , tmpLabel.c_str());
                                } // for
                                fclose(ff);
                        } else {   // else ff
@@ -409,6 +417,7 @@ void WidgetShowNPoints::OnAddPoint (wxCommandEvent& event)
                                for (i=0; i<size; i++)
                                {
                                        fscanf(ff,"%d%d%d%f%s",&x,&y,&z,&value,chartmp );  // x,y,z,value,label
+                                       if (strcmp(chartmp,"<_VOID_>")==0) { strcpy(chartmp,""); }
                                        AddPoint(x,y,z, chartmp );
                                }
                                fclose(ff);
@@ -591,6 +600,7 @@ void WidgetShowNPoints::UpdatePoints(wxCommandEvent &event)
        {
                this->lstSourceSphere[i]->SetRadius(mradio);
                this->lstActorsSphere[i]->GetProperty()->SetOpacity(mopacity);
+               this->lstActorsText[i]->GetTextProperty()->SetOpacity(mopacity);
                this->lstActorsText[i]->SetPosition(this->lstActorsText[i]->GetPosition()[0]+difradio,this->lstActorsText[i]->GetPosition()[1], this->lstActorsText[i]->GetPosition()[2]);
        }
 
index ceaa1c273084f330d85f408086d89c03301e3fa5..3a42953780d0d587a8bc5700e20fd53914b3fc60 100644 (file)
@@ -6,9 +6,15 @@
 
 manualViewContour::manualViewContour()
 {
-       _id_viewPoint_for_text  =       0;
-       _mesureScale            =       1;
-       _initialConoturModel = new manualContourModel();
+       _id_viewPoint_for_text  = 0;
+       _mesureScale                    = 1;
+       _initialConoturModel    = new manualContourModel();
+       
+       _minX                                   = 99999;
+       _minY                                   = 99999;
+       _maxX                                   = -99999;
+       _maxY                                   = -99999;
+       
 }
 // ----------------------------------------------------------------------------
 manualViewContour::~manualViewContour()
@@ -63,6 +69,7 @@ void manualViewContour::RefreshContour() // virtual
 //JSTG 25-02-08 --------------------
        //double t,delta, x,y,z;
        double x,y,z;
+       double xx,yy,zz;
 //----------------------------------
 
        _manContModel->UpdateSpline();
@@ -71,7 +78,11 @@ void manualViewContour::RefreshContour() // virtual
     nps = _manContModel->GetNumberOfPointsSpline();
        //delta=( double ) ( np  ) / ( double ) ( nps-1  );             //JSTG 25-02-08
 
-
+       _minX=99999;
+       _minY=99999;
+       _maxX=-99999;
+       _maxY=-99999;
+       
        if ( _pts!=NULL )
        {
                if (np>=2  )
@@ -85,8 +96,17 @@ void manualViewContour::RefreshContour() // virtual
 //--------------------------------------------------------------
        // EED 27 sep 2006
        //                      _pts->SetPoint(i, x,y,z );
-                               _pts->SetPoint(i, x*_spc[0], y*_spc[1], 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
+                               if (xx < _minX) { _minX = xx; }
+                               if (yy < _minY) { _minY = yy; }
+                               if (xx > _maxX) { _maxX = xx; }
+                               if (yy > _maxY) { _maxY = yy; }
+                               
                        }// for
                }
                else
@@ -190,30 +210,36 @@ bool manualViewContour::ifTouchContour(int x,int y,int z)
        yy = yy * _spc[1];
        zz = zz * _spc[2];
 
-    unsigned int i, nps,nps_t;
-    nps          = _sizePointsContour;
+       if ( (xx>=_minX) &&  (yy>=_minY) && (xx<=_maxX) && (yy<=_maxY)) {
        
-       if (this->_manContModel->IfCloseContour()==true)
-       {
-               nps_t = nps;
-       } else {
+               unsigned int i, nps,nps_t;
+               nps       = _sizePointsContour;
+       
+               if (this->_manContModel->IfCloseContour()==true)
+               {
+                       nps_t = nps;
+               } else {
                nps_t = nps-1;
-       }
+               } // if close
 
-       for( i = 0; i < nps_t; i++ ) 
-       {
-               _pts->GetPoint(i%nps, ppA);
-               _pts->GetPoint((i+1)%nps, ppB);
-               d1= sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz));
-               d2= sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz));
-               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]));
+               printf("EED  manualViewContour::ifTouchContour \n");
 
-               if (  ((d1+d2)>=d3) &&  ((d1+d2)<=d3*1.3) ) 
+               for( i = 0; i < nps_t; i++ ) 
                {
-                       result=true;
-                       i=nps;
-               }
-       }
+printf("%d ", i);
+                       _pts->GetPoint(i%nps, ppA);
+                       _pts->GetPoint((i+1)%nps, ppB);
+                       d1 = sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz));
+                       d2 = sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz));
+                       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;
+                       } // if
+               } // for i
+       } // if min max
        return result;
 }
 
index 330526d244723892115c03f70026cef88b417c3d..3acc8fa3b705b537cac25ca5d40e9c9f5c283ac3 100644 (file)
@@ -33,10 +33,14 @@ private:
        double  _mesureScale;
        std::vector< std::vector<double> > _initialMovingPoints;
        manualContourModel * _initialConoturModel;
-
        virtual void    RefreshText();
-protected:
 
+protected:
+       double _minX;
+       double _minY;
+       double _maxX;
+       double _maxY;
+       
 };
 
 #endif // manualViewContour_h