X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_NodeLabelActor.cxx;h=4ac4c90f20faabb31a0df0dd2216adf4653b4274;hp=b3a8d3d0f8d4a72012ae854136a5b3d260b3d45a;hb=HEAD;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef diff --git a/src/OBJECT/SMESH_NodeLabelActor.cxx b/src/OBJECT/SMESH_NodeLabelActor.cxx index b3a8d3d0f..e3fa7389b 100644 --- a/src/OBJECT/SMESH_NodeLabelActor.cxx +++ b/src/OBJECT/SMESH_NodeLabelActor.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, 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 @@ -39,30 +39,31 @@ #include #include -vtkStandardNewMacro(SMESH_NodeLabelActor); +vtkStandardNewMacro(SMESH_NodeLabelActor) /*! Constructor. */ -SMESH_NodeLabelActor::SMESH_NodeLabelActor() { +SMESH_NodeLabelActor::SMESH_NodeLabelActor() +{ //Definition of points numbering pipeline //--------------------------------------- myPointsNumDataSet = vtkUnstructuredGrid::New(); myPtsMaskPoints = vtkMaskPoints::New(); - myPtsMaskPoints->SetInput(myPointsNumDataSet); + myPtsMaskPoints->SetInputData(myPointsNumDataSet); myPtsMaskPoints->SetOnRatio(1); myPtsSelectVisiblePoints = vtkSelectVisiblePoints::New(); - myPtsSelectVisiblePoints->SetInput(myPtsMaskPoints->GetOutput()); + myPtsSelectVisiblePoints->SetInputConnection(myPtsMaskPoints->GetOutputPort()); myPtsSelectVisiblePoints->SelectInvisibleOff(); myPtsSelectVisiblePoints->SetTolerance(0.1); - + myPtsLabeledDataMapper = vtkLabeledDataMapper::New(); - myPtsLabeledDataMapper->SetInput(myPtsSelectVisiblePoints->GetOutput()); - myPtsLabeledDataMapper->SetLabelFormat("%d"); + 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(); @@ -112,7 +114,7 @@ SMESH_NodeLabelActor::~SMESH_NodeLabelActor() { void SMESH_NodeLabelActor::SetFontProperties( SMESH::LabelFont family, int size, bool bold, bool italic, bool shadow, - vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b ) + double r, double g, double b ) { switch ( family ) { case SMESH::FntArial: @@ -130,40 +132,36 @@ 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; - - int aNbElem = aDataSet->GetNumberOfPoints(); - - vtkIntArray *anArray = vtkIntArray::New(); + + vtkIdType aNbElem = aDataSet->GetNumberOfPoints(); + + vtkIdTypeArray *anArray = vtkIdTypeArray::New(); anArray->SetNumberOfValues( aNbElem ); - + for ( vtkIdType anId = 0; anId < aNbElem; anId++ ) { - int aSMDSId = myVisualObj->GetNodeObjId( anId ); + vtkIdType aSMDSId = myVisualObj->GetNodeObjId( anId ); anArray->SetValue( anId, aSMDSId ); } - + aDataSet->GetPointData()->SetScalars( anArray ); - myPtsMaskPoints->SetInput( aDataSet ); + myPtsMaskPoints->SetInputData( aDataSet ); myPointLabels->SetVisibility( GetVisibility() ); anArray->Delete(); } - else - { - myPointLabels->SetVisibility( false ); - } } @@ -189,17 +187,19 @@ void SMESH_NodeLabelActor::RemoveFromRender(vtkRenderer* theRenderer) SMESH_DeviceActor::RemoveFromRender(theRenderer); } -void SMESH_NodeLabelActor::UpdateLabels() { +void SMESH_NodeLabelActor::UpdateLabels() +{ if(myIsPointsLabeled) SetPointsLabeled(myIsPointsLabeled); } void SMESH_NodeLabelActor::ProcessEvents(vtkObject* vtkNotUsed(theObject), - unsigned long theEvent, + unsigned long /*theEvent*/, void* theClientData, - void* vtkNotUsed(theCallData)) { - SMESH_NodeLabelActor* self = reinterpret_cast(theClientData); + void* vtkNotUsed(theCallData)) +{ + SMESH_NodeLabelActor* self = reinterpret_cast(theClientData); if(self) self->UpdateLabels(); }