X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVTKViewer%2FVTKViewer_ExtractUnstructuredGrid.h;h=897de6f556600abf212e96e8aeff2bed42fee6a4;hb=refs%2Fheads%2Fngr%2Fpython3_dev_pv5.4;hp=04fea401ada6baaaac4503aaae5bfa470f2f3413;hpb=bb8609caf7881d966fbb88dec0a7822736da93f5;p=modules%2Fgui.git diff --git a/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h b/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h index 04fea401a..897de6f55 100755 --- a/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h +++ b/src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -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 @@ -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. + //! 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(int 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.