typedef _RangeSet< _ShapeIDRange > TSubIDRangeSet;
typedef _RangeSet< _UsedRange > TUsedRangeSet;
typedef boost::dynamic_bitset<> TBitSet;
-typedef float TParam;
+//typedef float TParam;
+typedef double TParam;
//------------------------------------------------------------------------------------
/*!
void SMDS_MeshCell::InitStaticMembers()
{
- initCellProps();
- initVtkTypes();
- initToVtkInterlaces();
- initReverseInterlaces();
- initQuadInterlace();
- initFromVtkInterlaces();
+ if ( theCellProps.empty() )
+ {
+ initCellProps();
+ initVtkTypes();
+ initToVtkInterlaces();
+ initReverseInterlaces();
+ initQuadInterlace();
+ initFromVtkInterlaces();
+ }
}
void SMDS_MeshCell::init( SMDSAbs_EntityType theEntity, int theNbNodes, ... )
const SMDS_MeshNode* nToKeep = nnIt->second;
TNodeNodeMap::iterator nnIt_i = nodeNodeMap.find( nToKeep );
while ( nnIt_i != nodeNodeMap.end() && nnIt_i->second != nnIt->second )
+ {
nToKeep = nnIt_i->second;
- nnIt->second = nToKeep;
+ nnIt->second = nToKeep;
+ nnIt_i = nodeNodeMap.find( nToKeep );
+ }
}
if ( theAvoidMakingHoles )
for ( ; groupIt != nodeGroupsToMerge.end(); groupIt++ )
{
const list<const SMDS_MeshNode*>& nodes = *groupIt;
+ if ( nodes.front()->IsNull() ) continue;
SMDS_ElemIteratorPtr segIt = nodes.front()->GetInverseElementIterator( SMDSAbs_Edge );
while ( segIt->more() )
segments.insert( segIt->next() );