You add
Code: Select all
#include "SMDS_MeshNode.hxx"
Code: Select all
SMDS_MeshElement* myElements; // array of elements
Code: Select all
std::vector<SMDS_MeshNode> myNodeElements; // array of node elements
std::vector<SMDS_MeshCell> myCellElements; // array of cell elements
Code: Select all
SMDS_MeshElement* Element(int index) { return & myElements[index]; }
Code: Select all
SMDS_MeshElement* Element(int index)
{
if (!myNodeElements.empty())
return &myNodeElements[index];
else
return &myCellElements[index];
}
Code: Select all
const SMDS_MeshElement* Element(int index) const { return & myElements[index]; }
Code: Select all
const SMDS_MeshElement* Element(int index) const
{
if (!myNodeElements.empty())
return &myNodeElements[index];
else
return &myCellElements[index];
}
Code: Select all
int Index( const SMDS_MeshElement* e ) const { return (int)( e - myElements ); }
Code: Select all
int Index( const SMDS_MeshElement* e ) const
{
if (!myNodeElements.empty())
return (int)( static_cast<const SMDS_MeshNode*>(e) - myNodeElements.data() );
else;
return (int)( static_cast<const SMDS_MeshCell*>(e) - myCellElements.data() );
}
Code: Select all
if ( myFactory->myIsNodal )
myElements = new SMDS_MeshNode[ theChunkSize ];
else
myElements = new SMDS_MeshCell[ theChunkSize ];
Code: Select all
if ( myFactory->myIsNodal )
myNodeElements.resize(theChunkSize);
else
myCellElements.resize(theChunkSize);
Code: Select all
delete [] myElements;