Salome HOME
PAL13460 (force the mesh to go through a point)
authoreap <eap@opencascade.com>
Wed, 28 Feb 2007 09:13:32 +0000 (09:13 +0000)
committereap <eap@opencascade.com>
Wed, 28 Feb 2007 09:13:32 +0000 (09:13 +0000)
   add SMDSAbs_ElementType arg to NbInverseNodes()

src/SMDS/SMDS_MeshNode.cxx
src/SMDS/SMDS_MeshNode.hxx

index e4b551912c197cbfe9f2997fe52e65307809a1a3..b7a1cb117ed5544bdc711316938ccecb25327bc5 100644 (file)
@@ -240,6 +240,24 @@ bool SMDS_MeshNode::emptyInverseElements()
   return myInverseElements.IsEmpty() != Standard_False;
 }
 
+//================================================================================
+/*!
+ * \brief Count inverse elements of given type
+ */
+//================================================================================
+
+int SMDS_MeshNode::NbInverseNodes(SMDSAbs_ElementType type) const
+{
+  if ( type == SMDSAbs_All )
+    return myInverseElements.Extent();
+  int nb = 0;
+  NCollection_List<const SMDS_MeshElement*>::Iterator it( myInverseElements );
+  for ( ; it.More(); it.Next() )
+    if ( it.Value()->GetType() == type )
+      nb++;
+  return nb;
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 /// To be used with STL set
 ///////////////////////////////////////////////////////////////////////////////
index 0da589b4d7accb6a280c4159fd9eb3519eca819c..10c1499cceb77356fcdc2d0ccf0e3d8c9c407f06 100644 (file)
@@ -57,7 +57,7 @@ class SMDS_WNT_EXPORT SMDS_MeshNode:public SMDS_MeshElement
        void ClearInverseElements();
        bool emptyInverseElements();
        SMDS_ElemIteratorPtr GetInverseElementIterator(SMDSAbs_ElementType type=SMDSAbs_All) const;
-        int NbInverseNodes() const { return myInverseElements.Extent(); }
+        int NbInverseNodes(SMDSAbs_ElementType type=SMDSAbs_All) const;
        void SetPosition(const SMDS_PositionPtr& aPos);
        const SMDS_PositionPtr& GetPosition() const;
        SMDSAbs_ElementType GetType() const;