SMDS_CellLinks *cellLinks = dynamic_cast<SMDS_CellLinks*>(grid->GetCellLinks());
assert(cellLinks);
if (myVtkID >= cellLinks->GetLinksSize())
- cellLinks->ResizeL(myVtkID+SMDS_Mesh::chunkSize);
+ cellLinks->ResizeL(myVtkID+SMDS_Mesh::chunkSize);
}
SMDS_MeshNode::~SMDS_MeshNode()
{
nbNodes--;
+ if ( myPosition && myPosition != SMDS_SpacePosition::originSpacePosition() )
+ delete myPosition, myPosition = 0;
}
//=======================================================================
void SMDS_MeshNode::SetPosition(const SMDS_PositionPtr& aPos)
{
- myPosition = aPos;
+ if ( myPosition &&
+ myPosition != SMDS_SpacePosition::originSpacePosition() &&
+ myPosition != aPos )
+ delete myPosition;
+ myPosition = aPos;
}
//=======================================================================
SMDSAbs_ElementType type):
myMesh(mesh), myCells(cells), myNcells(ncells), myType(type), iter(0)
{
- //MESSAGE("myNcells " << myNcells);
+ //MESSAGE("myNcells " << myNcells);
for (; iter<ncells; iter++)
{
int vtkId = myCells[iter];
myFiltCells.push_back((SMDS_MeshElement*)elem);
}
myNcells = myFiltCells.size();
- //MESSAGE("myNcells " << myNcells);
+ //MESSAGE("myNcells " << myNcells);
iter = 0;
//MESSAGE("SMDS_MeshNode_MyIterator (filter) " << ncells << " " << myNcells);
}