]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualViewPoint.cpp
#3012 creaMaracasVisu Bug New Normal - Update Image in ViewerNV #3065 creaMara...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualViewPoint.cpp
index 61067b7cabf7457eb165b605e89f278fac579169..5a8625a28c989d0fa69267dcd2216e028b9aac4b 100644 (file)
@@ -1,13 +1,31 @@
-#include "manualViewPoint.h"
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
 
+#include "manualViewPoint.h"
 
-// ---------------------------------------------------------------------------
-// ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-
-//int manualViewPoint::range=1;
-
-
 manualViewPoint::manualViewPoint(wxVtkBaseView *wxvtkbaseview){
        _selected                = false;
        _posibleSelected = false;
@@ -19,8 +37,16 @@ manualViewPoint::manualViewPoint(wxVtkBaseView *wxvtkbaseview){
        _spc[0]                  = 1;
        _spc[1]                  = 1;
        _spc[2]                  = 1;
-
        _widthline               = 1;
+       
+       //Colors
+       _colorNormal_r = 1.0;
+       _colorNormal_g = 0.0;
+       _colorNormal_b = 0.0;
+
+       _colorPosibleSelected_r = 1.0;
+       _colorPosibleSelected_g = 1.0;
+       _colorPosibleSelected_b = 0.0;
 
 }
 // ----------------------------------------------------------------------------
@@ -28,6 +54,27 @@ manualViewPoint::~manualViewPoint(){
        DeleteVtkObjects();
 }
 
+
+// ----------------------------------------------------------------------------
+manualViewPoint * manualViewPoint :: Clone()
+{
+       manualViewPoint * clone = new manualViewPoint(_wxvtkbaseview);
+       CopyAttributesTo(clone);
+       return clone;
+}
+
+// ---------------------------------------------------------------------------
+
+void manualViewPoint::CopyAttributesTo( manualViewPoint * cloneObject)
+{
+       // Fathers object
+       cloneObject->SetPosibleSelected(_posibleSelected);
+       cloneObject->SetSelected(_selected);
+       cloneObject->SetSpacing(_spc);
+       cloneObject->SetWidthLine(_widthline);
+}
+
+
 // ----------------------------------------------------------------------------
 void manualViewPoint::SetWidthLine( double width)
 {
@@ -72,14 +119,15 @@ vtkActor* manualViewPoint::CreateVtkPointActor()
        _pts = vtkPoints::New();
        _pts->SetNumberOfPoints(8);
 
-       _pts->SetPoint(0, -1000 , -1000 , 0 );
-       _pts->SetPoint(1,  1000 , -1000 , 0 );
-       _pts->SetPoint(2,  1000 ,  1000 , 0 );
-       _pts->SetPoint(3, -1000 ,  1000 , 0 );
-       _pts->SetPoint(4, -1000 ,  1000 , 0 );
-       _pts->SetPoint(5, -1000 ,  1000 , 0 );
-       _pts->SetPoint(6, -1000 ,  1000 , 0 );
-       _pts->SetPoint(7, -1000 ,  1000 , 0 );
+//EED
+//     _pts->SetPoint(0, -1000 , -1000 , 0 );
+//     _pts->SetPoint(1,  1000 , -1000 , 0 );
+//     _pts->SetPoint(2,  1000 ,  1000 , 0 );
+//     _pts->SetPoint(3, -1000 ,  1000 , 0 );
+//     _pts->SetPoint(4, -1000 ,  1000 , 0 );
+//     _pts->SetPoint(5, -1000 ,  1000 , 0 );
+//     _pts->SetPoint(6, -1000 ,  1000 , 0 );
+//     _pts->SetPoint(7, -1000 ,  1000 , 0 );
        
        vtkCellArray *lines = vtkCellArray::New();
        lines->InsertNextCell(17);
@@ -118,6 +166,8 @@ vtkActor* manualViewPoint::CreateVtkPointActor()
 
        return _pointVtkActor;
 }
+
+
 // ----------------------------------------------------------------------------
 vtkActor* manualViewPoint::GetVtkActor(){
        return _pointVtkActor;
@@ -125,9 +175,6 @@ vtkActor* manualViewPoint::GetVtkActor(){
 // ----------------------------------------------------------------------------
 void manualViewPoint::SetPositionXY(double x, double y,double i_range,double posZ)
 {
-//     double range=0.2; // i_range;
-//     double range=(double)manualViewPoint::range;
-
        double range=i_range;
 
 //EED 27 sep 2006
@@ -144,6 +191,9 @@ void manualViewPoint::SetPositionXY(double x, double y,double i_range,double pos
                _pts->SetPoint(5, x+range, y+range, posZ+range);
                _pts->SetPoint(6, x+range, y-range, posZ+range);
                _pts->SetPoint(7, x-range, y-range, posZ+range);
+
+//EED 2017-03-02
+               _pts->Modified();
        }
 }
 
@@ -154,12 +204,22 @@ void manualViewPoint::UpdateColorActor()
        if (_pointVtkActor!=NULL){
 //EED03
                _pointVtkActor->GetProperty()->SetLineWidth( _widthline );
-               _pointVtkActor->GetProperty()->SetDiffuseColor(1,0,0);
+               _pointVtkActor->GetProperty()->SetDiffuseColor(_colorNormal_r,_colorNormal_g,_colorNormal_b);
                if (_posibleSelected==true){
-                       _pointVtkActor->GetProperty()->SetDiffuseColor(1,1,0);
+                       _pointVtkActor->GetProperty()->SetDiffuseColor(_colorPosibleSelected_r,_colorPosibleSelected_g,_colorPosibleSelected_b);
                }
        }
 }
+
+// ----------------------------------------------------------------------------
+void manualViewPoint::UpdateColorActor(double nR, double nG, double nB)
+{
+       _colorNormal_r = nR;
+       _colorNormal_g = nG;
+       _colorNormal_b = nB;
+       UpdateColorActor();
+}
+
 // ----------------------------------------------------------------------------
 void manualViewPoint::GetSpacing(double spc[3])
 {