Salome HOME
IPAL53819: Mesh edition clears Numbering
[modules/smesh.git] / src / OBJECT / SMESH_NodeLabelActor.cxx
index 039456b0108aad0d87367f112e5c20b3999276a7..a1ed15ad7db9e5388c1111ae2486bd0838710bde 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  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
@@ -44,7 +44,8 @@ vtkStandardNewMacro(SMESH_NodeLabelActor);
 /*!
   Constructor.
 */
-SMESH_NodeLabelActor::SMESH_NodeLabelActor() {
+SMESH_NodeLabelActor::SMESH_NodeLabelActor()
+{
   //Definition of points numbering pipeline
   //---------------------------------------
   myPointsNumDataSet = vtkUnstructuredGrid::New();
@@ -57,12 +58,12 @@ SMESH_NodeLabelActor::SMESH_NodeLabelActor() {
   myPtsSelectVisiblePoints->SetInputConnection(myPtsMaskPoints->GetOutputPort());
   myPtsSelectVisiblePoints->SelectInvisibleOff();
   myPtsSelectVisiblePoints->SetTolerance(0.1);
-    
+
   myPtsLabeledDataMapper = vtkLabeledDataMapper::New();
   myPtsLabeledDataMapper->SetInputConnection(myPtsSelectVisiblePoints->GetOutputPort());
   myPtsLabeledDataMapper->SetLabelFormat("%d");
   myPtsLabeledDataMapper->SetLabelModeToLabelScalars();
-    
+
   myPtsTextProp = vtkTextProperty::New();
   myPtsTextProp->SetFontFamilyToTimes();
   myPtsTextProp->SetFontSize(10);
@@ -90,19 +91,20 @@ SMESH_NodeLabelActor::SMESH_NodeLabelActor() {
 /*!
   Destructor
 */
-SMESH_NodeLabelActor::~SMESH_NodeLabelActor() {
+SMESH_NodeLabelActor::~SMESH_NodeLabelActor()
+{
   //Deleting of points numbering pipeline
   //---------------------------------------
   myPointsNumDataSet->Delete();
-  
+
   // commented: porting to vtk 5.0
   //  myPtsLabeledDataMapper->RemoveAllInputs();
   myPtsLabeledDataMapper->Delete();
-  
+
   // commented: porting to vtk 5.0
   //  myPtsSelectVisiblePoints->UnRegisterAllOutputs();
   myPtsSelectVisiblePoints->Delete();
-  
+
   // commented: porting to vtk 5.0
   //  myPtsMaskPoints->UnRegisterAllOutputs();
   myPtsMaskPoints->Delete();
@@ -130,16 +132,16 @@ void SMESH_NodeLabelActor::SetFontProperties( SMESH::LabelFont family, int size,
   myPtsTextProp->SetColor( r, g, b ); 
 }
 
-void SMESH_NodeLabelActor::SetPointsLabeled(bool theIsPointsLabeled) {
+void SMESH_NodeLabelActor::SetPointsLabeled(bool theIsPointsLabeled)
+{
+  myIsPointsLabeled = theIsPointsLabeled;
+
+  myPointLabels->SetVisibility( false );
+
   myTransformFilter->Update();
   vtkDataSet* aGrid = vtkUnstructuredGrid::SafeDownCast(myTransformFilter->GetOutput());
 
-  if(!aGrid)
-    return;
-    
-  myIsPointsLabeled = theIsPointsLabeled && aGrid->GetNumberOfPoints();
-
-  if ( myIsPointsLabeled )
+  if ( myIsPointsLabeled && aGrid )
   {
     myPointsNumDataSet->ShallowCopy(aGrid);
     vtkUnstructuredGrid *aDataSet = myPointsNumDataSet;
@@ -160,10 +162,6 @@ void SMESH_NodeLabelActor::SetPointsLabeled(bool theIsPointsLabeled) {
     myPointLabels->SetVisibility( GetVisibility() );
     anArray->Delete();
   }
-  else
-  {
-    myPointLabels->SetVisibility( false );
-  } 
 }
 
 
@@ -189,7 +187,8 @@ void SMESH_NodeLabelActor::RemoveFromRender(vtkRenderer* theRenderer)
   SMESH_DeviceActor::RemoveFromRender(theRenderer);
 }
 
-void SMESH_NodeLabelActor::UpdateLabels() {
+void SMESH_NodeLabelActor::UpdateLabels()
+{
   if(myIsPointsLabeled)
     SetPointsLabeled(myIsPointsLabeled);
 }
@@ -198,8 +197,9 @@ void SMESH_NodeLabelActor::UpdateLabels() {
 void SMESH_NodeLabelActor::ProcessEvents(vtkObject* vtkNotUsed(theObject),
                                          unsigned long theEvent,
                                          void* theClientData,
-                                         void* vtkNotUsed(theCallData)) {
-  SMESH_NodeLabelActor* self = reinterpret_cast<SMESH_NodeLabelActor*>(theClientData);    
+                                         void* vtkNotUsed(theCallData))
+{
+  SMESH_NodeLabelActor* self = reinterpret_cast<SMESH_NodeLabelActor*>(theClientData);
   if(self)
     self->UpdateLabels();
 }