X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVTKViewer%2FVTKViewer_ExtractUnstructuredGrid.h;h=eda00fd7bd7112b82b017e26cb5aec480f8bd0b9;hb=refs%2Ftags%2FV9_11_0;hp=dfbc31aeab6dd77fa3bfeeda0e223af49d704754;hpb=627194285d9b5354291d3a442b68b8740f114eda;p=modules%2Fgui.git diff --git a/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h b/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h old mode 100755 new mode 100644 index dfbc31aea..eda00fd7b --- a/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h +++ b/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2023 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 @@ -45,7 +45,7 @@ class VTKVIEWER_EXPORT VTKViewer_ExtractUnstructuredGrid : public vtkUnstructure { public: //! VTK type macros. - vtkTypeMacro( VTKViewer_ExtractUnstructuredGrid, vtkUnstructuredGridAlgorithm ); + vtkTypeMacro( VTKViewer_ExtractUnstructuredGrid, vtkUnstructuredGridAlgorithm ) //! \brief Construct with all types of clipping turned off. static VTKViewer_ExtractUnstructuredGrid *New(); @@ -53,7 +53,7 @@ public: enum EExtraction{ eCells, ePoints}; //! Sets mode of extraction to \a theExtractionMode void SetModeOfExtraction(EExtraction theExtractionMode){ - myExtractionMode = theExtractionMode; Modified(); + if ( myExtractionMode != theExtractionMode ) { myExtractionMode = theExtractionMode; Modified(); } } //! Get Extraction mode (Return: \a myExtractionMode field) EExtraction GetModeOfExtraction(){ return myExtractionMode;} @@ -61,47 +61,47 @@ public: enum EChanging{ ePassAll, eAdding, eRemoving}; //! Sets mode of changing to \a theChangeMode void SetModeOfChanging(EChanging theChangeMode){ - myChangeMode = theChangeMode; - Modified(); + if ( myChangeMode != theChangeMode ) { myChangeMode = theChangeMode; Modified(); } } //! Return \a myChangeMode field - EChanging GetModeOfChanging(){ return myChangeMode;} + EChanging GetModeOfChanging(){ return myChangeMode; } //! Add cell id to \a myCellIds std::set void RegisterCell(vtkIdType theCellId); //! Check if myCellIds is empty. - int IsCellsRegistered() { return !myCellIds.empty();} + int IsCellsRegistered() { return !myCellIds.empty(); } //! Remove the cell from the output - void ClearRegisteredCells() { - myCellIds.clear(); - Modified(); + void ClearRegisteredCells() { + if ( !myCellIds.empty() ) { myCellIds.clear(); Modified(); } } - + //! Add cell type to \a myCellTypes std::set void RegisterCellsWithType(vtkIdType theCellType); //! Check if myCellTypes is empty. - int IsCellsWithTypeRegistered() { return !myCellTypes.empty();} + int IsCellsWithTypeRegistered() { return !myCellTypes.empty(); } //! Remove every cells with the type from the output - void ClearRegisteredCellsWithType() { - myCellTypes.clear(); - Modified(); + void ClearRegisteredCellsWithType() { + if ( !myCellTypes.empty() ) { myCellTypes.clear(); Modified(); } } //! \brief Do the filter do some real work - int IsChanging() { return IsCellsRegistered() || IsCellsWithTypeRegistered();} + int IsChanging() { return IsCellsRegistered() || IsCellsWithTypeRegistered(); } //! \brief Do it keep the mapping between input's and output's UnstructuredGrid void SetStoreMapping(int theStoreMapping); //! Get \a myStoreMapping - int GetStoreMapping(){ return myStoreMapping;} + int GetStoreMapping(){ return myStoreMapping; } - //! Gets the input id by output id. - vtkIdType GetInputId(int theOutId) const; + //! Computes a map out IDs to in IDs. Call it before GetInputId()!!! + void BuildOut2InMap(); + //! Gets the input id by output id. Call BuildOut2InMap() before + vtkIdType GetInputId(vtkIdType theOutId) const; //! Gets the output id by input id. - vtkIdType GetOutputId(int theInId) const; + //vtkIdType GetOutputId(int theInId) const; - typedef std::vector TVectorId; + typedef std::vector TVectorId; typedef std::map TMapId; + typedef std::set TSetId; protected: VTKViewer_ExtractUnstructuredGrid(); @@ -112,13 +112,12 @@ protected: EExtraction myExtractionMode; EChanging myChangeMode; - typedef std::set TSetId; TSetId myCellIds; TSetId myCellTypes; - bool myStoreMapping; + bool myStoreMapping, myPassAll; TVectorId myOut2InId; - TMapId myIn2OutId; + //TMapId myIn2OutId; private: //! Not implemented.