Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/smesh.git] / src / SMDS / SMDS_MeshNode.hxx
index 01482f9226c7a86d52037dc4deec9161f04f5051..fad62253411a848c8b0675bef333b36332e43275 100644 (file)
 
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_Position.hxx"
+#include <NCollection_List.hxx>
 
-#include <set>
-using namespace std;
+//#ifdef WNT
+//#include <SALOME_WNT.hxx>
+//#else
+//#define SALOME_WNT_EXPORT
+//#endif
 
-class SMDS_MeshNode:public SMDS_MeshElement
+#if defined WNT && defined WIN32 && defined SMDS_EXPORTS
+#define SMDS_WNT_EXPORT __declspec( dllexport )
+#else
+#define SMDS_WNT_EXPORT
+#endif
+
+class SMDS_WNT_EXPORT SMDS_MeshNode:public SMDS_MeshElement
 {
 
   public:
        SMDS_MeshNode(double x, double y, double z);
-       void Print(ostream & OS) const;
+       void Print(std::ostream & OS) const;
        double X() const;
        double Y() const;
        double Z() const;
@@ -54,6 +64,15 @@ class SMDS_MeshNode:public SMDS_MeshElement
        void setXYZ(double x, double y, double z);
        friend bool operator<(const SMDS_MeshNode& e1, const SMDS_MeshNode& e2);
 
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int) const { return this; }
+
   protected:
        SMDS_ElemIteratorPtr
                elementsIterator(SMDSAbs_ElementType type) const;
@@ -61,7 +80,7 @@ class SMDS_MeshNode:public SMDS_MeshElement
   private:
        double myX, myY, myZ;
        SMDS_PositionPtr myPosition;
-       set<const SMDS_MeshElement*> myInverseElements;
+       NCollection_List<const SMDS_MeshElement*> myInverseElements;
 };
 
 #endif