X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshNode.hxx;h=268045ef8e666cd9dda90f12807a20a3cf25c204;hp=d3bf53264c15889bf720ef16b5411b3174824463;hb=HEAD;hpb=5d68554076bbca0e1e95fb0db215a6c2b84b6c54 diff --git a/src/SMDS/SMDS_MeshNode.hxx b/src/SMDS/SMDS_MeshNode.hxx index d3bf53264..99549e937 100644 --- a/src/SMDS/SMDS_MeshNode.hxx +++ b/src/SMDS/SMDS_MeshNode.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMDS : implementaion of Salome mesh data structure +// SMESH SMDS : implementation of Salome mesh data structure // File : SMDS_MeshNode.hxx // Module : SMESH // @@ -31,51 +31,53 @@ #include "SMDS_MeshElement.hxx" #include "SMDS_Position.hxx" -#include "ObjectPool.hxx" class SMDS_EXPORT SMDS_MeshNode: public SMDS_MeshElement { -public: - friend class SMESHDS_Mesh; - friend class SMDS_Mesh; - friend class ObjectPool; - friend class SMDS_VtkFace; + public: - void Print(std::ostream & OS) const; + void setXYZ(double x, double y, double z); double X() const; // ! NOT thread safe methods ! double Y() const; double Z() const; void GetXYZ(double xyz[3]) const; // thread safe getting coords + SMDS_ElemIteratorPtr GetInverseElementIterator(SMDSAbs_ElementType type=SMDSAbs_All) const; int NbInverseElements(SMDSAbs_ElementType type=SMDSAbs_All) const; - const SMDS_PositionPtr& GetPosition() const; - virtual SMDSAbs_ElementType GetType() const; - virtual vtkIdType GetVtkType() const; + + SMDS_PositionPtr GetPosition() const; // WARNING result is std::unique_ptr ! + void SetPosition(const SMDS_PositionPtr& aPos, int shapeID = 0 ); + + virtual SMDSAbs_ElementType GetType() const { return SMDSAbs_Node; } + virtual VTKCellType GetVtkType() const { return VTK_VERTEX; } virtual SMDSAbs_EntityType GetEntityType() const { return SMDSEntity_Node;} virtual SMDSAbs_GeometryType GetGeomType() const { return SMDSGeom_NONE; } - virtual int NbNodes() const; + virtual int NbNodes() const { return 1; } + virtual int NbEdges() const { return 0; } + virtual int NbFaces() const { return 0; } - void SetPosition(const SMDS_PositionPtr& aPos); - void setXYZ(double x, double y, double z); + virtual SMDS_ElemIteratorPtr nodesIterator() const; + virtual SMDS_NodeIteratorPtr nodeIterator() const; + virtual const SMDS_MeshNode* GetNode(const int ind) const; + + virtual bool IsPoly() const { return false; } + virtual bool IsQuadratic() const { return false; } + virtual bool IsMediumNode(const SMDS_MeshNode* /*node*/) const { return false; } + virtual int NbCornerNodes() const { return 1; } + + void Print(std::ostream & OS) const; + + private: - static int nbNodes; + void init(double x=0, double y=0, double z=0); -protected: - SMDS_MeshNode(); - SMDS_MeshNode(int id, int meshId, int shapeId = -1, double x=0, double y=0, double z=0); - virtual ~SMDS_MeshNode(); - void init(int id, int meshId, int shapeId = -1, double x=0, double y=0, double z=0); double* getCoord() const; - void AddInverseElement(const SMDS_MeshElement * ME); - void RemoveInverseElement(const SMDS_MeshElement * parent); + void AddInverseElement (const SMDS_MeshElement * elem); + void RemoveInverseElement(const SMDS_MeshElement * elem); void ClearInverseElements(); - bool emptyInverseElements(); - SMDS_ElemIteratorPtr - elementsIterator(SMDSAbs_ElementType type) const; + friend class SMDS_Mesh; -private: - SMDS_PositionPtr myPosition; }; #endif