From fed3f445536b7fd310a30d88096b62ba52fb1a03 Mon Sep 17 00:00:00 2001 From: Viktor UZLOV Date: Tue, 26 Jan 2021 14:44:58 +0300 Subject: [PATCH] correct SMESH_ElementFactory --- src/SMDS/SMDS_ElementFactory.cxx | 24 ++++++++++++------------ src/SMDS/SMDS_ElementFactory.hxx | 28 +++++++++++++++------------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/SMDS/SMDS_ElementFactory.cxx b/src/SMDS/SMDS_ElementFactory.cxx index e4dbe1ae0..ed07ccdf8 100644 --- a/src/SMDS/SMDS_ElementFactory.cxx +++ b/src/SMDS/SMDS_ElementFactory.cxx @@ -92,11 +92,11 @@ SMDS_ElementFactory::~SMDS_ElementFactory() //================================================================================ /*! * \brief Return a number of elements in a chunk - * \return int - chunk size + * \return smIdType - chunk size */ //================================================================================ -int SMDS_ElementFactory::ChunkSize() +smIdType SMDS_ElementFactory::ChunkSize() { return theChunkSize; } @@ -108,7 +108,7 @@ int SMDS_ElementFactory::ChunkSize() */ //================================================================================ -int SMDS_ElementFactory::GetFreeID() +smIdType SMDS_ElementFactory::GetFreeID() { if ( myChunksWithUnused.empty() ) { @@ -122,11 +122,11 @@ int SMDS_ElementFactory::GetFreeID() //================================================================================ /*! * \brief Return maximal ID of an used element - * \return int - element ID + * \return smIdType - element ID */ //================================================================================ -int SMDS_ElementFactory::GetMaxID() +smIdType SMDS_ElementFactory::GetMaxID() { int id = 0; TIndexRanges usedRanges; @@ -143,11 +143,11 @@ int SMDS_ElementFactory::GetMaxID() //================================================================================ /*! * \brief Return minimal ID of an used element - * \return int - element ID + * \return smIdType - element ID */ //================================================================================ -int SMDS_ElementFactory::GetMinID() +smIdType SMDS_ElementFactory::GetMinID() { int id = 0; TIndexRanges usedRanges; @@ -169,7 +169,7 @@ int SMDS_ElementFactory::GetMinID() */ //================================================================================ -SMDS_MeshElement* SMDS_ElementFactory::NewElement( const int id ) +SMDS_MeshElement* SMDS_ElementFactory::NewElement( const smIdType id ) { int iChunk = ( id - 1 ) / theChunkSize; int index = ( id - 1 ) % theChunkSize; @@ -200,7 +200,7 @@ SMDS_MeshElement* SMDS_ElementFactory::NewElement( const int id ) */ //================================================================================ -const SMDS_MeshElement* SMDS_ElementFactory::FindElement( const int id ) const +const SMDS_MeshElement* SMDS_ElementFactory::FindElement( const smIdType id ) const { if ( id > 0 ) { @@ -488,7 +488,7 @@ void SMDS_NodeFactory::SetNbShapes( size_t nbShapes ) */ //================================================================================ -int SMDS_NodeFactory::GetShapeDim( int shapeID ) const +int SMDS_NodeFactory::GetShapeDim( smIdType shapeID ) const { return shapeID < (int)myShapeDim.size() ? myShapeDim[ shapeID ] : theDefaultShapeDim; } @@ -499,9 +499,9 @@ int SMDS_NodeFactory::GetShapeDim( int shapeID ) const */ //================================================================================ -void SMDS_NodeFactory::SetShapeDim( int shapeID, int dim ) +void SMDS_NodeFactory::SetShapeDim( smIdType shapeID, int dim ) { - if ( shapeID >= (int)myShapeDim.size() ) + if ( shapeID >= (smIdType)myShapeDim.size() ) myShapeDim.resize( shapeID + 10, theDefaultShapeDim ); myShapeDim[ shapeID ] = dim; } diff --git a/src/SMDS/SMDS_ElementFactory.hxx b/src/SMDS/SMDS_ElementFactory.hxx index 86d7408ce..1521067ed 100644 --- a/src/SMDS/SMDS_ElementFactory.hxx +++ b/src/SMDS/SMDS_ElementFactory.hxx @@ -40,6 +40,8 @@ #include +#include + class SMDS_ElementChunk; class SMDS_Mesh; class SMDS_MeshCell; @@ -78,25 +80,25 @@ public: virtual ~SMDS_ElementFactory(); //! Return minimal ID of a non-used element - int GetFreeID(); + smIdType GetFreeID(); //! Return maximal ID of an used element - int GetMaxID(); + smIdType GetMaxID(); //! Return minimal ID of an used element - int GetMinID(); + smIdType GetMinID(); //! Return an element by ID. NULL if the element with the given ID is already used - SMDS_MeshElement* NewElement( const int id ); + SMDS_MeshElement* NewElement( const smIdType id ); //! Return a SMDS_MeshCell by ID. NULL if the cell with the given ID is already used - SMDS_MeshCell* NewCell( const int id ) { return static_cast( NewElement( id )); } + SMDS_MeshCell* NewCell( const smIdType id ) { return static_cast( NewElement( id )); } //! Return an used element by ID. NULL if the element with the given ID is not yet used - const SMDS_MeshElement* FindElement( const int id ) const; + const SMDS_MeshElement* FindElement( const smIdType id ) const; //! Return a number of used elements - int NbUsedElements() const { return myNbUsedElements; } + smIdType NbUsedElements() const { return myNbUsedElements; } //! Return an iterator on all element filtered using a given filter. // nbElemsToReturn is used to optimize by stopping the iteration as soon as @@ -132,7 +134,7 @@ public: virtual bool CompactChangePointers(); //! Return a number of elements in a chunk - static int ChunkSize(); + static smIdType ChunkSize(); }; //------------------------------------------------------------------------------------ @@ -149,19 +151,19 @@ public: ~SMDS_NodeFactory(); //! Return a SMDS_MeshNode by ID. NULL if the node with the given ID is already used - SMDS_MeshNode* NewNode( int id ) { return (SMDS_MeshNode*) NewElement(id); } + SMDS_MeshNode* NewNode( smIdType id ) { return (SMDS_MeshNode*) NewElement(id); } //! Return an used node by ID. NULL if the node with the given ID is not yet used - const SMDS_MeshNode* FindNode( int id ) { return (const SMDS_MeshNode*) FindElement(id); } + const SMDS_MeshNode* FindNode( smIdType id ) { return (const SMDS_MeshNode*) FindElement(id); } //! Set a total number of sub-shapes in the main shape void SetNbShapes( size_t nbShapes ); //! Return a dimension of a shape - int GetShapeDim( int shapeID ) const; + int GetShapeDim( smIdType shapeID ) const; //! Set a dimension of a shape - void SetShapeDim( int shapeID, int dim ); + void SetShapeDim( smIdType shapeID, int dim ); //! De-allocate all nodes virtual void Clear(); @@ -403,7 +405,7 @@ public: static bool IsUsed( const _UsedRange& r ) { return r.myValue; } //! Return index of an element in the chunk - int Index( const SMDS_MeshElement* e ) const { return e - myElements; } + smIdType Index( const SMDS_MeshElement* e ) const { return e - myElements; } //! Return ID of the 1st element in the chunk int Get1stID() const { return my1stID; } -- 2.39.2