-// Copyright (C) 2007-2020 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
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkCellData.h>
+#include <vtkTriangleFilter.h>
+#include <vtkGeometryFilter.h>
// Qt includes
#include <QComboBox>
SALOME_Actor* myFaceOrientation;
vtkPolyDataMapper* myFaceOrientationDataMapper;
SMESH_FaceOrientationFilter* myFaceOrientationFilter;
+ vtkSmartPointer<vtkGeometryFilter> myGeometryFilter = nullptr;
+ vtkSmartPointer<vtkTriangleFilter> myTriangleFilter = nullptr;
public:
TElementSimulation (SalomeApp_Application* theApplication)
myGrid = vtkUnstructuredGrid::New();
+ myGeometryFilter = vtkSmartPointer<vtkGeometryFilter>::New();
+ myGeometryFilter->SetInputData(myGrid);
+
+ myTriangleFilter = vtkSmartPointer<vtkTriangleFilter>::New();
+ myTriangleFilter->SetInputConnection(myGeometryFilter->GetOutputPort());
+
// Create and display actor
myMapper = vtkDataSetMapper::New();
- myMapper->SetInputData(myGrid);
+ myMapper->SetInputConnection(myTriangleFilter->GetOutputPort());
myPreviewActor = SALOME_Actor::New();
myPreviewActor->PickableOff();
// Orientation of faces
myFaceOrientationFilter = SMESH_FaceOrientationFilter::New();
- myFaceOrientationFilter->SetInputData(myGrid);
+ myFaceOrientationFilter->SetInputConnection(myTriangleFilter->GetOutputPort());
myFaceOrientationDataMapper = vtkPolyDataMapper::New();
myFaceOrientationDataMapper->SetInputConnection(myFaceOrientationFilter->GetOutputPort());
myGrid->InsertNextCell(theType,anIds);
anIds->Delete();
+ myGeometryFilter->Update();
+ myTriangleFilter->Update();
+
myGrid->Modified();
SetVisibility(true, theActor->GetFacesOriented(), false);
void SetBallPosition(SMESH_Actor* theActor,TVTKIds& theIds, double theDiameter)
{
vtkUnstructuredGrid *aGrid = theActor->GetUnstructuredGrid();
+ myBallPolyData->SetPoints(NULL);
myBallPolyData->Reset();
myBallPolyData->DeleteCells();
myBallPolyData->SetPoints(aGrid->GetPoints());
if (myNbOkNodes && !SMESHGUI::isStudyLocked()) {
myBusy = true;
QStringList aListId = myEditCurrentArgument->text().split(" ", QString::SkipEmptyParts);
- SMESH::long_array_var anArrayOfIndices = new SMESH::long_array;
+ SMESH::smIdType_array_var anArrayOfIndices = new SMESH::smIdType_array;
anArrayOfIndices->length(aListId.count());
const std::vector<int>& revIndex = SMDS_MeshCell::reverseSmdsOrder( myGeomType );
if ( ReverseOrDulicate && ReverseOrDulicate->isChecked() && (int)revIndex.size() == aListId.count() )
}
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
- SMESH::long_array_var anIdList = new SMESH::long_array;
+ SMESH::smIdType_array_var anIdList = new SMESH::smIdType_array;
anIdList->length( 1 );
anIdList[0] = -1;
- int nbElemsBefore = 0;
+ smIdType nbElemsBefore = 0;
switch (myElementType) {
case SMDSAbs_0DElement: {
for ( size_t i = 0; i < anArrayOfIndices->length(); ++i )
anIdList[i] = aMeshEditor->Add0DElement(anArrayOfIndices[i], duplicateElements);
- CORBA::ULong nbAdded = myMesh->Nb0DElements() - nbElemsBefore;
+ SMESH::smIdType nbAdded = myMesh->Nb0DElements() - nbElemsBefore;
if ( !duplicateElements && nbAdded < anArrayOfIndices->length() )
SUIT_MessageBox::information(SMESHGUI::desktop(),
tr("SMESH_INFORMATION"),
aMesh = myActor->GetObject()->GetMesh();
if (aMesh) {
- TColStd_MapOfInteger newIndices;
+ SVTK_TVtkIDsMap newIndices;
QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts);
bool allOk = true;