X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVTKViewer%2FVTKViewer_ExtractUnstructuredGrid.h;h=29724878598c3ff2028c10c879da2ed4eca5d708;hb=d0b0c10e5649e0338079df4a53cf95044792d989;hp=a7975c20960ce9f585b5ff544f1fed70cad69d1d;hpb=d6bd12111347879cd8dbe1a15ac4d6ba32ce0d6b;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 a7975c209..297248785 --- a/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h +++ b/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -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.