mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-12 00:29:17 +05:00
0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh
- SMDS_ElemIteratorPtr elementsIterator() const; + SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type=SMDSAbs_All) const;
This commit is contained in:
parent
34fb01e7b5
commit
51a896bafb
@ -2020,23 +2020,14 @@ SMDS_NodeIteratorPtr SMDS_Mesh::nodesIterator() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/// Return an iterator on elements of the current mesh factory
|
///Iterator on NCollection_Map
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
SMDS_ElemIteratorPtr SMDS_Mesh::elementsIterator() const
|
template <class MAP, typename ELEM=const SMDS_MeshElement*, class FATHER=SMDS_ElemIterator>
|
||||||
|
struct MYNCollection_Map_Iterator: public FATHER
|
||||||
{
|
{
|
||||||
return myElementIDFactory->elementsIterator();
|
typename MAP::Iterator myIterator;
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
MYNCollection_Map_Iterator(const MAP& map):myIterator(map){}
|
||||||
///Return an iterator on edges of the current mesh.
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
class SMDS_Mesh_MyEdgeIterator:public SMDS_EdgeIterator
|
|
||||||
{
|
|
||||||
typedef SMDS_Mesh::SetOfEdges SetOfEdges;
|
|
||||||
SetOfEdges::Iterator myIterator;
|
|
||||||
public:
|
|
||||||
SMDS_Mesh_MyEdgeIterator(const SetOfEdges& s):myIterator(s)
|
|
||||||
{}
|
|
||||||
|
|
||||||
bool more()
|
bool more()
|
||||||
{
|
{
|
||||||
@ -2049,81 +2040,66 @@ class SMDS_Mesh_MyEdgeIterator:public SMDS_EdgeIterator
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const SMDS_MeshEdge* next()
|
ELEM next()
|
||||||
{
|
{
|
||||||
const SMDS_MeshEdge* current = myIterator.Value();
|
ELEM current = (ELEM) myIterator.Value();
|
||||||
myIterator.Next();
|
myIterator.Next();
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
///Return an iterator on edges of the current mesh.
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
SMDS_EdgeIteratorPtr SMDS_Mesh::edgesIterator() const
|
SMDS_EdgeIteratorPtr SMDS_Mesh::edgesIterator() const
|
||||||
{
|
{
|
||||||
return SMDS_EdgeIteratorPtr(new SMDS_Mesh_MyEdgeIterator(myEdges));
|
typedef MYNCollection_Map_Iterator
|
||||||
|
< SetOfEdges, const SMDS_MeshEdge*, SMDS_EdgeIterator > TIterator;
|
||||||
|
return SMDS_EdgeIteratorPtr(new TIterator(myEdges));
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
///Return an iterator on faces of the current mesh.
|
///Return an iterator on faces of the current mesh.
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
class SMDS_Mesh_MyFaceIterator:public SMDS_FaceIterator
|
|
||||||
{
|
|
||||||
typedef SMDS_Mesh::SetOfFaces SetOfFaces;
|
|
||||||
SetOfFaces::Iterator myIterator;
|
|
||||||
public:
|
|
||||||
SMDS_Mesh_MyFaceIterator(const SetOfFaces& s):myIterator(s)
|
|
||||||
{}
|
|
||||||
|
|
||||||
bool more()
|
|
||||||
{
|
|
||||||
while(myIterator.More())
|
|
||||||
{
|
|
||||||
if(myIterator.Value()->GetID()!=-1)
|
|
||||||
return true;
|
|
||||||
myIterator.Next();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const SMDS_MeshFace* next()
|
|
||||||
{
|
|
||||||
const SMDS_MeshFace* current = myIterator.Value();
|
|
||||||
myIterator.Next();
|
|
||||||
return current;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SMDS_FaceIteratorPtr SMDS_Mesh::facesIterator() const
|
SMDS_FaceIteratorPtr SMDS_Mesh::facesIterator() const
|
||||||
{
|
{
|
||||||
return SMDS_FaceIteratorPtr(new SMDS_Mesh_MyFaceIterator(myFaces));
|
typedef MYNCollection_Map_Iterator
|
||||||
|
< SetOfFaces, const SMDS_MeshFace*, SMDS_FaceIterator > TIterator;
|
||||||
|
return SMDS_FaceIteratorPtr(new TIterator(myFaces));
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
///Return an iterator on volumes of the current mesh.
|
///Return an iterator on volumes of the current mesh.
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
class SMDS_Mesh_MyVolumeIterator:public SMDS_VolumeIterator
|
|
||||||
{
|
|
||||||
typedef SMDS_Mesh::SetOfVolumes SetOfVolumes;
|
|
||||||
SetOfVolumes::Iterator myIterator;
|
|
||||||
public:
|
|
||||||
SMDS_Mesh_MyVolumeIterator(const SetOfVolumes& s):myIterator(s)
|
|
||||||
{}
|
|
||||||
|
|
||||||
bool more()
|
|
||||||
{
|
|
||||||
return myIterator.More() != Standard_False;
|
|
||||||
}
|
|
||||||
|
|
||||||
const SMDS_MeshVolume* next()
|
|
||||||
{
|
|
||||||
const SMDS_MeshVolume* current = myIterator.Value();
|
|
||||||
myIterator.Next();
|
|
||||||
return current;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SMDS_VolumeIteratorPtr SMDS_Mesh::volumesIterator() const
|
SMDS_VolumeIteratorPtr SMDS_Mesh::volumesIterator() const
|
||||||
{
|
{
|
||||||
return SMDS_VolumeIteratorPtr(new SMDS_Mesh_MyVolumeIterator(myVolumes));
|
typedef MYNCollection_Map_Iterator
|
||||||
|
< SetOfVolumes, const SMDS_MeshVolume*, SMDS_VolumeIterator > TIterator;
|
||||||
|
return SMDS_VolumeIteratorPtr(new TIterator(myVolumes));
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// Return an iterator on elements of the current mesh factory
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
SMDS_ElemIteratorPtr SMDS_Mesh::elementsIterator(SMDSAbs_ElementType type) const
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case SMDSAbs_All:
|
||||||
|
break;
|
||||||
|
case SMDSAbs_Volume:
|
||||||
|
return SMDS_ElemIteratorPtr (new MYNCollection_Map_Iterator< SetOfVolumes >(myVolumes));
|
||||||
|
case SMDSAbs_Face:
|
||||||
|
return SMDS_ElemIteratorPtr (new MYNCollection_Map_Iterator< SetOfFaces >(myFaces));
|
||||||
|
case SMDSAbs_Edge:
|
||||||
|
return SMDS_ElemIteratorPtr (new MYNCollection_Map_Iterator< SetOfEdges >(myEdges));
|
||||||
|
case SMDSAbs_Node:
|
||||||
|
return myNodeIDFactory->elementsIterator();
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
return myElementIDFactory->elementsIterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -50,7 +50,7 @@ public:
|
|||||||
SMDS_EdgeIteratorPtr edgesIterator() const;
|
SMDS_EdgeIteratorPtr edgesIterator() const;
|
||||||
SMDS_FaceIteratorPtr facesIterator() const;
|
SMDS_FaceIteratorPtr facesIterator() const;
|
||||||
SMDS_VolumeIteratorPtr volumesIterator() const;
|
SMDS_VolumeIteratorPtr volumesIterator() const;
|
||||||
SMDS_ElemIteratorPtr elementsIterator() const;
|
SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type=SMDSAbs_All) const;
|
||||||
|
|
||||||
SMDSAbs_ElementType GetElementType( const int id, const bool iselem ) const;
|
SMDSAbs_ElementType GetElementType( const int id, const bool iselem ) const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user