-// Copyright (C) 2007-2012 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
// 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
#include <VTKViewer_TransformFilter.h>
#include <VTKViewer_CellCenters.h>
+#include <VTKViewer_ExtractUnstructuredGrid.h>
#include <vtkObjectFactory.h>
#include <vtkCallbackCommand.h>
myCellsNumDataSet = vtkUnstructuredGrid::New();
myCellCenters = VTKViewer_CellCenters::New();
- myCellCenters->SetInput(myCellsNumDataSet);
+ myCellCenters->SetInputData(myCellsNumDataSet);
myClsMaskPoints = vtkMaskPoints::New();
- myClsMaskPoints->SetInput(myCellCenters->GetOutput());
+ myClsMaskPoints->SetInputConnection(myCellCenters->GetOutputPort());
myClsMaskPoints->SetOnRatio(1);
myClsSelectVisiblePoints = vtkSelectVisiblePoints::New();
- myClsSelectVisiblePoints->SetInput(myClsMaskPoints->GetOutput());
+ myClsSelectVisiblePoints->SetInputConnection(myClsMaskPoints->GetOutputPort());
myClsSelectVisiblePoints->SelectInvisibleOff();
myClsSelectVisiblePoints->SetTolerance(0.1);
myClsLabeledDataMapper = vtkLabeledDataMapper::New();
- myClsLabeledDataMapper->SetInput(myClsSelectVisiblePoints->GetOutput());
+ myClsLabeledDataMapper->SetInputConnection(myClsSelectVisiblePoints->GetOutputPort());
myClsLabeledDataMapper->SetLabelFormat("%d");
myClsLabeledDataMapper->SetLabelModeToLabelScalars();
- vtkTextProperty* aClsTextProp = vtkTextProperty::New();
- aClsTextProp->SetFontFamilyToTimes();
- static int aCellsFontSize = 12;
- aClsTextProp->SetFontSize(aCellsFontSize);
- aClsTextProp->SetBold(1);
- aClsTextProp->SetItalic(0);
- aClsTextProp->SetShadow(0);
- myClsLabeledDataMapper->SetLabelTextProperty(aClsTextProp);
- aClsTextProp->Delete();
+ myClsTextProp = vtkTextProperty::New();
+ myClsTextProp->SetFontFamilyToTimes();
+ myClsTextProp->SetFontSize(12);
+ myClsTextProp->SetBold(1);
+ myClsTextProp->SetItalic(0);
+ myClsTextProp->SetShadow(0);
+ myClsTextProp->SetColor( 0, 1, 0 );
+ myClsLabeledDataMapper->SetLabelTextProperty(myClsTextProp);
myIsCellsLabeled = false;
myCellsLabels = vtkActor2D::New();
myCellsLabels->SetMapper(myClsLabeledDataMapper);
- myCellsLabels->GetProperty()->SetColor(0,1,0);
myCellsLabels->SetVisibility(myIsCellsLabeled);
vtkCallbackCommand* callBackCommand = vtkCallbackCommand::New();
callBackCommand->SetCallback(SMESH_CellLabelActor::ProcessEvents);
myTransformFilter->AddObserver("VTKViewer_TransformFilter::TransformationFinished",
- callBackCommand);
+ callBackCommand);
callBackCommand->Delete();
}
//Deleting of cells numbering pipeline
//---------------------------------------
myCellsNumDataSet->Delete();
-
- myClsLabeledDataMapper->RemoveAllInputs();
- myClsLabeledDataMapper->Delete();
-
- // commented: porting to vtk 5.0
- // myClsSelectVisiblePoints->UnRegisterAllOutputs();
- myClsSelectVisiblePoints->Delete();
-
+ myCellsLabels->Delete();
// commented: porting to vtk 5.0
// myClsMaskPoints->UnRegisterAllOutputs();
myClsMaskPoints->Delete();
-
// commented: porting to vtk 5.0
// myCellCenters->UnRegisterAllOutputs();
myCellCenters->Delete();
-
- myCellsLabels->Delete();
+
+ myClsLabeledDataMapper->RemoveAllInputs();
+ myClsLabeledDataMapper->Delete();
+ // commented: porting to vtk 5.0
+ // myClsSelectVisiblePoints->UnRegisterAllOutputs();
+ myClsSelectVisiblePoints->Delete();
+ myClsTextProp->Delete();
}
+void SMESH_CellLabelActor::SetFontProperties( SMESH::LabelFont family, int size,
+ bool bold, bool italic, bool shadow,
+ double r, double g, double b )
+{
+ switch ( family ) {
+ case SMESH::FntArial:
+ myClsTextProp->SetFontFamilyToArial(); break;
+ case SMESH::FntCourier:
+ myClsTextProp->SetFontFamilyToCourier(); break;
+ case SMESH::FntTimes:
+ default:
+ myClsTextProp->SetFontFamilyToTimes(); break;
+ }
+ myClsTextProp->SetFontSize( size );
+ myClsTextProp->SetBold( bold );
+ myClsTextProp->SetItalic( italic );
+ myClsTextProp->SetShadow( shadow );
+ myClsTextProp->SetColor( r, g, b );
+}
+
void SMESH_CellLabelActor::SetCellsLabeled(bool theIsCellsLabeled) {
myTransformFilter->Update();
vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::SafeDownCast(myTransformFilter->GetOutput());
vtkIntArray *anArray = vtkIntArray::New();
anArray->SetNumberOfValues(aNbElem);
for(int anId = 0; anId < aNbElem; anId++){
- int aSMDSId = myVisualObj->GetElemObjId(anId);
+ vtkIdType id = myExtractUnstructuredGrid->GetInputId(anId);
+ id = (id >=0) ? id : anId;
+ int aSMDSId = myVisualObj->GetElemObjId(id);
anArray->SetValue(anId,aSMDSId);
}
aDataSet->GetCellData()->SetScalars(anArray);
- myCellCenters->SetInput(aDataSet);
+ myCellCenters->SetInputData(aDataSet);
myCellsLabels->SetVisibility(GetVisibility());
}else{
myCellsLabels->SetVisibility(false);
void SMESH_CellLabelActor::ProcessEvents(vtkObject* vtkNotUsed(theObject),
- unsigned long theEvent,
- void* theClientData,
- void* vtkNotUsed(theCallData)) {
+ unsigned long theEvent,
+ void* theClientData,
+ void* vtkNotUsed(theCallData)) {
SMESH_CellLabelActor* self = reinterpret_cast<SMESH_CellLabelActor*>(theClientData);
if(self)
self->UpdateLabels();