Salome HOME
Draft version of "Find River Bottom", new viewer dialog base class, new component...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_VTKPrsShape.cxx
index 7512b0a39276be343d805dd695e0bd1badebc342..1df604f57184288ec0a088e53628e1a9bac0d8e6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -55,7 +55,7 @@
 
 #include <Precision.hxx>
 
-#include <GEOM_Actor.h>
+#include <HYDROGUI_Actor.h>
 #include <vtkScalarBarActor.h>
 
 #include <QString>
@@ -69,7 +69,8 @@ const double VTK_MIN_DEFLECTION = 0.001;
 // Purpose : Constructor
 //=======================================================================
 HYDROGUI_VTKPrsShape::HYDROGUI_VTKPrsShape( const Handle(HYDROData_Entity)& theObject )
-: HYDROGUI_VTKPrs( theObject )
+: HYDROGUI_VTKPrs( theObject ),
+myDisplayMode( GEOM_Actor::eWireframe )
 {
 }
 
@@ -87,18 +88,18 @@ HYDROGUI_VTKPrsShape::~HYDROGUI_VTKPrsShape()
 //================================================================
 void HYDROGUI_VTKPrsShape::compute()
 {
+  HYDROGUI_VTKPrs::compute();
+
   if ( !getObject().IsNull() )
   {
     buildShape();
 
     if ( !myTopoShape.IsNull() )
     {
-      GEOM_Actor* anActor = GEOM_Actor::New();
+      HYDROGUI_Actor* anActor = getActor<HYDROGUI_Actor>(this);
       anActor->SetShape( myTopoShape, VTK_MIN_DEFLECTION );
+      anActor->setDisplayMode( myDisplayMode );
       anActor->setIO( getIO() );
-      AddObject( anActor );
-
-      anActor->Delete();
     }
   }
 }
@@ -146,6 +147,7 @@ void HYDROGUI_VTKPrsShape::buildShape()
           setWire( aPolylineWire, false, false );  
         } else {
           myTopoShape = aPolylineShape;
+          myDisplayMode = GEOM_Actor::eWireframe;
         }
       }
 
@@ -165,6 +167,7 @@ void HYDROGUI_VTKPrsShape::buildShape()
           setWire( aPolylineWire, false, false );  
         } else {
           myTopoShape = aPolylineShape;
+          myDisplayMode = GEOM_Actor::eWireframe;
         }
       }
 
@@ -267,15 +270,16 @@ void HYDROGUI_VTKPrsShape::buildShape()
 }
 
 void HYDROGUI_VTKPrsShape::setWire( const TopoDS_Wire& theWire,
-                              const bool         theToDisplay,
-                              const bool         theIsUpdateViewer )
+                                    const bool         theToDisplay,
+                                    const bool         theIsUpdateViewer )
 {
   myTopoShape = theWire;
+  myDisplayMode = GEOM_Actor::eWireframe;
 }
 
 void HYDROGUI_VTKPrsShape::setFaces( const TopoDS_Compound& theWires,
-                               const bool             theToDisplay,
-                               const bool             theIsUpdateViewer )
+                                     const bool             theToDisplay,
+                                     const bool             theIsUpdateViewer )
 {
   TopExp_Explorer anExp( theWires, TopAbs_WIRE );
   TopoDS_Compound aCompound;
@@ -296,11 +300,12 @@ void HYDROGUI_VTKPrsShape::setFaces( const TopoDS_Compound& theWires,
   }
 
   myTopoShape = aCompound;
+  //myDisplayMode = GEOM_Actor::eShading;
 }
 
 void HYDROGUI_VTKPrsShape::setFace( const TopoDS_Wire& theWire,
-                              const bool         theToDisplay,
-                              const bool         theIsUpdateViewer )
+                                    const bool         theToDisplay,
+                                    const bool         theIsUpdateViewer )
 {
   BRepBuilderAPI_MakeFace aFaceBuilder( theWire, Standard_True );
   aFaceBuilder.Build();
@@ -312,15 +317,17 @@ void HYDROGUI_VTKPrsShape::setFace( const TopoDS_Wire& theWire,
 }
 
 void HYDROGUI_VTKPrsShape::setFace( const TopoDS_Face& theFace,
-                              const bool         theToDisplay,
-                              const bool         theIsUpdateViewer )
+                                    const bool         theToDisplay,
+                                    const bool         theIsUpdateViewer )
 {
   myTopoShape = theFace;
+  //myDisplayMode = GEOM_Actor::eShading;
 }
 
 void HYDROGUI_VTKPrsShape::setShape( const TopoDS_Shape& theShape,
-                               const bool          theToDisplay,
-                               const bool          theIsUpdateViewer )
+                                     const bool          theToDisplay,
+                                     const bool          theIsUpdateViewer )
 {
   myTopoShape = theShape;
+  //myDisplayMode = GEOM_Actor::eShading;
 }