// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
#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;
void RemoveInverseElement(const SMDS_MeshElement * parent);
void ClearInverseElements();
bool emptyInverseElements();
- SMDS_Iterator<const SMDS_MeshElement*> * GetInverseElementIterator() const;
- void SetPosition(SMDS_Position * aPos);
- SMDS_Position *GetPosition();
- const SMDS_Position *GetPosition() const;
+ SMDS_ElemIteratorPtr GetInverseElementIterator(SMDSAbs_ElementType type=SMDSAbs_All) const;
+ int NbInverseNodes(SMDSAbs_ElementType type=SMDSAbs_All) const;
+ void SetPosition(const SMDS_PositionPtr& aPos);
+ const SMDS_PositionPtr& GetPosition() const;
SMDSAbs_ElementType GetType() const;
int NbNodes() const;
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_Iterator<const SMDS_MeshElement *> *
+ SMDS_ElemIteratorPtr
elementsIterator(SMDSAbs_ElementType type) const;
private:
double myX, myY, myZ;
- SMDS_Position *myPosition;
- set<const SMDS_MeshElement*> myInverseElements;
+ SMDS_PositionPtr myPosition;
+ NCollection_List<const SMDS_MeshElement*> myInverseElements;
};
#endif