#include "SMDS_ElemIterator.hxx"
#include "SMDS_MeshElementIDFactory.hxx"
+//#ifdef WNT
+//#include <SALOME_WNT.hxx>
+//#else
+//#define SALOME_WNT_EXPORT
+//#endif
+
+#if defined WNT && defined WIN32 && defined SMDS_EXPORTS
+#define SMDS_WNT_EXPORT __declspec( dllexport )
+#else
+#define SMDS_WNT_EXPORT
+#endif
+
#include <vector>
#include <iostream>
///////////////////////////////////////////////////////////////////////////////
/// Base class for elements
///////////////////////////////////////////////////////////////////////////////
-class SMDS_MeshElement:public SMDS_MeshObject
+class SMDS_WNT_EXPORT SMDS_MeshElement:public SMDS_MeshObject
{
+public:
- public:
- SMDS_ElemIteratorPtr nodesIterator() const;
- SMDS_ElemIteratorPtr edgesIterator() const;
- SMDS_ElemIteratorPtr facesIterator() const;
- virtual SMDS_ElemIteratorPtr
- elementsIterator(SMDSAbs_ElementType type) const;
+ SMDS_ElemIteratorPtr nodesIterator() const;
+ SMDS_ElemIteratorPtr edgesIterator() const;
+ SMDS_ElemIteratorPtr facesIterator() const;
+ virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const;
- virtual int NbNodes() const;
- virtual int NbEdges() const;
- virtual int NbFaces() const;
- int GetID() const;
+ virtual int NbNodes() const;
+ virtual int NbEdges() const;
+ virtual int NbFaces() const;
+ int GetID() const;
- ///Return the type of the current element
- virtual SMDSAbs_ElementType GetType() const = 0;
- virtual bool IsPoly() const { return false; };
+ /**
+ * Return true if index of node is valid (0...NbNodes()-1)
+ */
+ virtual bool IsValidIndex(const int ind) const;
+ /**
+ * Return node by it index (if index is valid)
+ */
+ virtual const SMDS_MeshNode* GetNode(const int ind) const;
- friend std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
- friend bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
+ ///Return the type of the current element
+ virtual SMDSAbs_ElementType GetType() const = 0;
+ virtual bool IsPoly() const { return false; };
+ virtual bool IsQuadratic() const;
- protected:
- SMDS_MeshElement(int ID=-1);
- virtual void Print(std::ostream & OS) const;
-
- private:
- int myID;
+ virtual bool IsMediumNode(class SMDS_MeshNode* node) const;
+
+ friend std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
+ friend bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
+
+protected:
+ SMDS_MeshElement(int ID=-1);
+ virtual void Print(std::ostream & OS) const;
+
+private:
+ int myID;
};
#endif