Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix misprint
[modules/smesh.git]
/
src
/
SMDS
/
SMDS_MeshElement.hxx
diff --git
a/src/SMDS/SMDS_MeshElement.hxx
b/src/SMDS/SMDS_MeshElement.hxx
index ccb4373a92b5d6c542b0303f0d10f89009e66d7f..8d0d674e09166beed2108b114a915e6260369296 100644
(file)
--- a/
src/SMDS/SMDS_MeshElement.hxx
+++ b/
src/SMDS/SMDS_MeshElement.hxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
3
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
5
CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@
-6,7
+6,7
@@
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License
, or (at your option) any later version
.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-65,9
+65,12
@@
public:
SMDS_ElemIteratorPtr edgesIterator() const;
SMDS_ElemIteratorPtr facesIterator() const;
virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const;
SMDS_ElemIteratorPtr edgesIterator() const;
SMDS_ElemIteratorPtr facesIterator() const;
virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const;
- virtual SMDS_ElemIteratorPtr nodesIteratorToUNV() const;
virtual SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;
virtual SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;
+ virtual SMDS_NodeIteratorPtr nodeIterator() const;
+ virtual SMDS_NodeIteratorPtr interlacedNodesIterator() const;
+ virtual SMDS_NodeIteratorPtr nodesIteratorToUNV() const;
+
// std-like iteration on nodes
typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_ElemIteratorPtr > iterator;
iterator begin_nodes() const { return iterator( nodesIterator() ); }
// std-like iteration on nodes
typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_ElemIteratorPtr > iterator;
iterator begin_nodes() const { return iterator( nodesIterator() ); }
@@
-76,7
+79,7
@@
public:
virtual int NbNodes() const;
virtual int NbEdges() const;
virtual int NbFaces() const;
virtual int NbNodes() const;
virtual int NbEdges() const;
virtual int NbFaces() const;
- inline int GetID() const { return myID; }
;
+ inline int GetID() const { return myID; }
///Return the type of the current element
virtual SMDSAbs_ElementType GetType() const = 0;
///Return the type of the current element
virtual SMDSAbs_ElementType GetType() const = 0;
@@
-138,7
+141,7
@@
public:
* \param node - the node to check
* \retval int - node index within the element, -1 if not found
*/
* \param node - the node to check
* \retval int - node index within the element, -1 if not found
*/
- int GetNodeIndex( const SMDS_MeshNode* node ) const;
+
virtual
int GetNodeIndex( const SMDS_MeshNode* node ) const;
inline ShortType getMeshId() const { return myMeshId; }
inline LongType getshapeId() const { return myShapeId; }
inline ShortType getMeshId() const { return myMeshId; }
inline LongType getshapeId() const { return myShapeId; }
@@
-148,19
+151,28
@@
public:
/*!
* \brief Filters of elements, to be used with SMDS_SetIterator
*/
/*!
* \brief Filters of elements, to be used with SMDS_SetIterator
*/
- struct TypeFilter
+ struct Filter
+ {
+ virtual bool operator()(const SMDS_MeshElement* e) const = 0;
+ virtual ~Filter() {}
+ };
+ struct NonNullFilter: public Filter
+ {
+ bool operator()(const SMDS_MeshElement* e) const { return e; }
+ };
+ struct TypeFilter : public Filter
{
SMDSAbs_ElementType _type;
TypeFilter( SMDSAbs_ElementType t = SMDSAbs_NbElementTypes ):_type(t) {}
bool operator()(const SMDS_MeshElement* e) const { return e && e->GetType() == _type; }
};
{
SMDSAbs_ElementType _type;
TypeFilter( SMDSAbs_ElementType t = SMDSAbs_NbElementTypes ):_type(t) {}
bool operator()(const SMDS_MeshElement* e) const { return e && e->GetType() == _type; }
};
- struct EntityFilter
+ struct EntityFilter
: public Filter
{
SMDSAbs_EntityType _type;
EntityFilter( SMDSAbs_EntityType t = SMDSEntity_Last ):_type(t) {}
bool operator()(const SMDS_MeshElement* e) const { return e && e->GetEntityType() == _type; }
};
{
SMDSAbs_EntityType _type;
EntityFilter( SMDSAbs_EntityType t = SMDSEntity_Last ):_type(t) {}
bool operator()(const SMDS_MeshElement* e) const { return e && e->GetEntityType() == _type; }
};
- struct GeomFilter
+ struct GeomFilter
: public Filter
{
SMDSAbs_GeometryType _type;
GeomFilter( SMDSAbs_GeometryType t = SMDSGeom_NONE ):_type(t) {}
{
SMDSAbs_GeometryType _type;
GeomFilter( SMDSAbs_GeometryType t = SMDSGeom_NONE ):_type(t) {}
@@
-196,9
+208,16
@@
protected:
*/
// ============================================================
*/
// ============================================================
-struct TIDCompare {
+struct TID
Type
Compare {
bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
{ return e1->GetType() == e2->GetType() ? e1->GetID() < e2->GetID() : e1->GetType() < e2->GetType(); }
};
bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
{ return e1->GetType() == e2->GetType() ? e1->GetID() < e2->GetID() : e1->GetType() < e2->GetType(); }
};
+// WARNING: this comparator makes impossible to store both nodes and elements in the same set
+// because there are nodes and elements with the same ID. Use TIDTypeCompare for such containers.
+struct TIDCompare {
+ bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
+ { return e1->GetID() < e2->GetID(); }
+};
+
#endif
#endif