mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-03-14 03:41:33 +05:00
Remove numeration shift
This commit is contained in:
parent
af8ab09bab
commit
2be6ff75b2
@ -113,7 +113,6 @@ smIdType SMDS_ElementFactory::GetFreeID()
|
||||
if ( myChunksWithUnused.empty() )
|
||||
{
|
||||
smIdType id0 = myChunks.size() * theChunkSize + 1;
|
||||
id0 += idShift;
|
||||
myChunks.push_back( new SMDS_ElementChunk( this, id0 ));
|
||||
}
|
||||
SMDS_ElementChunk * chunk = (*myChunksWithUnused.begin());
|
||||
@ -170,14 +169,13 @@ smIdType SMDS_ElementFactory::GetMinID()
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
SMDS_MeshElement* SMDS_ElementFactory::NewElement( const smIdType ID )
|
||||
SMDS_MeshElement* SMDS_ElementFactory::NewElement( const smIdType id )
|
||||
{
|
||||
smIdType id = ID > idShift ? ID - idShift : ID;
|
||||
smIdType iChunk = ( id - 1 ) / theChunkSize;
|
||||
smIdType index = ( id - 1 ) % theChunkSize;
|
||||
while ((smIdType) myChunks.size() <= iChunk )
|
||||
{
|
||||
smIdType id0 = myChunks.size() * theChunkSize + 1 + idShift;
|
||||
smIdType id0 = myChunks.size() * theChunkSize + 1;
|
||||
myChunks.push_back( new SMDS_ElementChunk( this, id0 ));
|
||||
}
|
||||
SMDS_MeshElement* e = myChunks[iChunk].Element( FromIdType<int>(index) );
|
||||
@ -202,9 +200,8 @@ SMDS_MeshElement* SMDS_ElementFactory::NewElement( const smIdType ID )
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
const SMDS_MeshElement* SMDS_ElementFactory::FindElement( const smIdType ID ) const
|
||||
const SMDS_MeshElement* SMDS_ElementFactory::FindElement( const smIdType id ) const
|
||||
{
|
||||
smIdType id = ID -idShift;
|
||||
if ( id > 0 )
|
||||
{
|
||||
smIdType iChunk = ( id - 1 ) / theChunkSize;
|
||||
@ -226,12 +223,11 @@ const SMDS_MeshElement* SMDS_ElementFactory::FindElement( const smIdType ID ) co
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
smIdType SMDS_ElementFactory::FromVtkToSmds( vtkIdType VTKID )
|
||||
smIdType SMDS_ElementFactory::FromVtkToSmds( vtkIdType vtkID )
|
||||
{
|
||||
vtkIdType vtkID = VTKID;
|
||||
if ( vtkID >= 0 && vtkID < (vtkIdType)mySmdsIDs.size() )
|
||||
return mySmdsIDs[vtkID] + 1;
|
||||
return vtkID + 1 + idShift;
|
||||
return vtkID + 1;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
@ -248,7 +244,7 @@ void SMDS_ElementFactory::Free( const SMDS_MeshElement* e )
|
||||
|
||||
if ( !myVtkIDs.empty() )
|
||||
{
|
||||
size_t id = e->GetID() - 1 - idShift;
|
||||
size_t id = e->GetID() - 1;
|
||||
size_t vtkID = e->GetVtkID();
|
||||
if ( id < myVtkIDs.size() )
|
||||
myVtkIDs[ id ] = -1;
|
||||
@ -620,18 +616,17 @@ smIdType SMDS_ElementChunk::GetID( const SMDS_MeshElement* e ) const
|
||||
|
||||
void SMDS_ElementChunk::SetVTKID( const SMDS_MeshElement* e, const vtkIdType vtkID )
|
||||
{
|
||||
smIdType id = e->GetID() - idShift;
|
||||
if ( id - 1 != vtkID )
|
||||
if ( e->GetID() - 1 != vtkID )
|
||||
{
|
||||
if ((smIdType) myFactory->myVtkIDs.size() <= id - 1 )
|
||||
if ((smIdType) myFactory->myVtkIDs.size() <= e->GetID() - 1 )
|
||||
{
|
||||
vtkIdType i = (vtkIdType) myFactory->myVtkIDs.size();
|
||||
myFactory->myVtkIDs.resize( id + 100 );
|
||||
myFactory->myVtkIDs.resize( e->GetID() + 100 );
|
||||
vtkIdType newSize = (vtkIdType) myFactory->myVtkIDs.size();
|
||||
for ( ; i < newSize; ++i )
|
||||
myFactory->myVtkIDs[i] = i;
|
||||
}
|
||||
myFactory->myVtkIDs[ id - 1 ] = vtkID;
|
||||
myFactory->myVtkIDs[ e->GetID() - 1 ] = vtkID;
|
||||
|
||||
if ((vtkIdType) myFactory->mySmdsIDs.size() <= vtkID )
|
||||
{
|
||||
@ -652,7 +647,7 @@ void SMDS_ElementChunk::SetVTKID( const SMDS_MeshElement* e, const vtkIdType vtk
|
||||
|
||||
vtkIdType SMDS_ElementChunk::GetVtkID( const SMDS_MeshElement* e ) const
|
||||
{
|
||||
vtkIdType dfltVtkID = FromIdType<vtkIdType>(e->GetID() - 1) - idShift;
|
||||
vtkIdType dfltVtkID = FromIdType<vtkIdType>(e->GetID() - 1);
|
||||
return ( dfltVtkID < (vtkIdType)myFactory->myVtkIDs.size() ) ? myFactory->myVtkIDs[ dfltVtkID ] : dfltVtkID;
|
||||
}
|
||||
|
||||
|
@ -53,10 +53,6 @@ struct _ChunkCompare {
|
||||
typedef boost::ptr_vector<SMDS_ElementChunk> TChunkVector;
|
||||
typedef std::set<SMDS_ElementChunk*,_ChunkCompare> TChunkPtrSet;
|
||||
|
||||
const smIdType idShift = 2147483647;
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
/*!
|
||||
* \brief Allocate SMDS_MeshElement's (SMDS_MeshCell's or SMDS_MeshNode's )
|
||||
@ -569,7 +565,7 @@ SMDS_ElementFactory::GetShapeIterator( int shapeID,
|
||||
size_t nbElemsToReturn,
|
||||
const SMDS_MeshElement* sm1stElem )
|
||||
{
|
||||
smIdType iChunk = sm1stElem ? (( sm1stElem->GetID() - 1 - idShift) / ChunkSize()) : 0;
|
||||
smIdType iChunk = sm1stElem ? (( sm1stElem->GetID() - 1 ) / ChunkSize()) : 0;
|
||||
typedef _ChunkIterator< ElemIterator, TSubIDRangeSet > TChuckIterator;
|
||||
return boost::make_shared< TChuckIterator >( myChunks,
|
||||
& SMDS_ElementChunk::GetSubIDRangesMinMax,
|
||||
|
Loading…
x
Reference in New Issue
Block a user