Salome HOME
Copyright update 2021
[modules/gui.git] / src / VTKViewer / VTKViewer_Actor.cxx
old mode 100755 (executable)
new mode 100644 (file)
index f68d23d..9d636ca
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  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
@@ -54,28 +54,28 @@ int VTKViewer_POINT_SIZE = 5;
 int VTKViewer_LINE_WIDTH = 3;
 
 
-vtkStandardNewMacro(VTKViewer_Actor);
+vtkStandardNewMacro(VTKViewer_Actor)
 
 /*!
   Constructor
 */
 VTKViewer_Actor
 ::VTKViewer_Actor():
+  myIsResolveCoincidentTopology(true),
   myOpacity(1.0),
-  myIsHighlighted(false),
-  myIsPreselected(false),
-  myRepresentation(VTKViewer::Representation::Surface),
   myDisplayMode(1),
-  myProperty(vtkProperty::New()),
-  PreviewProperty(NULL),
   myIsInfinite(false),
-  myIsResolveCoincidentTopology(true),
   myStoreMapping(false),
   myGeomFilter(VTKViewer_GeometryFilter::New()),
-  myTransformFilter(VTKViewer_TransformFilter::New())
+  myTransformFilter(VTKViewer_TransformFilter::New()),
+  myRepresentation(VTKViewer::Representation::Surface),
+  myProperty(vtkProperty::New()),
+  PreviewProperty(NULL),
+  myIsPreselected(false),
+  myIsHighlighted(false)
 {
-  vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(myPolygonOffsetFactor,
-                                                                 myPolygonOffsetUnits);
+  VTKViewer_Actor::GetDefaultPolygonOffsetParameters(myPolygonOffsetFactor,
+                                                    myPolygonOffsetUnits);
 
   for(int i = 0; i < 6; i++)
     myPassFilter.push_back(vtkPassThroughFilter::New());
@@ -93,7 +93,7 @@ VTKViewer_Actor
 
   myTransformFilter->Delete();
 
-  for(int i = 0, iEnd = myPassFilter.size(); i < iEnd; i++)
+  for(size_t i = 0, iEnd = myPassFilter.size(); i < iEnd; i++)
     if(myPassFilter[i])
       myPassFilter[i]->Delete();
   
@@ -218,8 +218,8 @@ VTKViewer_Actor
       SetNumberOfCloudPoints(aNbOfPoints);
   }
 
+  int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
   if(myIsResolveCoincidentTopology){
-    int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
     double aFactor, aUnit; 
     vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnit);
     
@@ -229,10 +229,11 @@ VTKViewer_Actor
     Superclass::Render(ren,m);
     
     vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnit);
-    vtkMapper::SetResolveCoincidentTopology(aResolveCoincidentTopology);
   }else{
+    vtkMapper::SetResolveCoincidentTopologyToOff();
     Superclass::Render(ren,m);
   }
+  vtkMapper::SetResolveCoincidentTopology(aResolveCoincidentTopology);
 }
 
 /*!
@@ -272,6 +273,19 @@ VTKViewer_Actor
   units = myPolygonOffsetUnits;
 }
 
+/*!
+  Get polygon offset parameters
+  \param factor, units  - Opengl polygon offset parameters
+*/
+void
+VTKViewer_Actor
+::GetDefaultPolygonOffsetParameters(double& factor, 
+                                   double& units)
+{
+  factor = 2.0;
+  units = 2.0;
+}
+
 /*!
   \return shrink factor
 */
@@ -331,12 +345,12 @@ VTKViewer_Actor
 /*!
   To calculatate last modified time
 */
-unsigned long int
+vtkMTimeType
 VTKViewer_Actor
 ::GetMTime()
 {
-  unsigned long mTime = this->Superclass::GetMTime();
-  unsigned long time = myTransformFilter->GetMTime();
+  vtkMTimeType mTime = this->Superclass::GetMTime();
+  vtkMTimeType time = myTransformFilter->GetMTime();
   mTime = ( time > mTime ? time : mTime );
   if(vtkDataSet *aDataSet = dynamic_cast<vtkDataSet*>(myPassFilter[0]->GetInput())){ // bad usage of GetInput
     time = aDataSet->GetMTime();
@@ -436,6 +450,17 @@ VTKViewer_Actor
   return GetInput()->GetPoint(theObjID);
 }
 
+/*!
+ Maps object index of a node to corresponding VTK index
+*/
+int
+VTKViewer_Actor
+::GetNodeVtkId( int theObjID )
+{
+  return theObjID;
+}
+
+
 /*!
   Get corresponding #vtkCell for given object index
 */
@@ -490,14 +515,14 @@ VTKViewer_Actor
   if(myIsInfinite)
     return true;
 
-  static double MAX_DISTANCE = 0.9*VTK_LARGE_FLOAT;
+  static double MAX_DISTANCE = 0.9*VTK_FLOAT_MAX;
   double aBounds[6];
   GetBounds(aBounds);
   for(int i = 0; i < 6; i++)
     if(fabs(aBounds[i]) > MAX_DISTANCE)
       return true;
   
-  static double MIN_DISTANCE = 1.0/VTK_LARGE_FLOAT;
+  static double MIN_DISTANCE = 1.0/VTK_FLOAT_MAX;
   if(GetLength() < MIN_DISTANCE)
     return true;
   
@@ -612,28 +637,28 @@ VTKViewer_Actor
 */
 void
 VTKViewer_Actor
-::SetMaterial(std::vector<vtkProperty*> theProps)
+::SetMaterial(std::vector<vtkProperty*> /*theProps*/)
 {
 }
 
 /*!
-  Get current front material\r
-*/\r
-vtkProperty* \r
-VTKViewer_Actor\r
-::GetFrontMaterial()\r
-{\r
-  return NULL;\r
-}\r
-\r
-/*!\r
-  Get current back material\r
-*/\r
-vtkProperty* \r
-VTKViewer_Actor\r
-::GetBackMaterial()\r
-{\r
-  return NULL;\r
+  Get current front material
+*/
+vtkProperty* 
+VTKViewer_Actor
+::GetFrontMaterial()
+{
+  return NULL;
+}
+
+/*!
+  Get current back material
+*/
+vtkProperty* 
+VTKViewer_Actor
+::GetBackMaterial()
+{
+  return NULL;
 }
 
 /*!
@@ -745,4 +770,4 @@ vtkDataSet* VTKViewer_Actor::GetHighlightedDataSet() {
 
 
 
-vtkCxxSetObjectMacro(VTKViewer_Actor,PreviewProperty,vtkProperty);
+vtkCxxSetObjectMacro(VTKViewer_Actor,PreviewProperty,vtkProperty)