X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshNode.hxx;h=60d71f6c133682c27fce3b33fab94a79902ddc03;hp=78966bc5795fda355d610bb51f09ce9069995d02;hb=cb55604f37e3d2583272fd436bb6557b041948b5;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/SMDS/SMDS_MeshNode.hxx b/src/SMDS/SMDS_MeshNode.hxx index 78966bc57..60d71f6c1 100644 --- a/src/SMDS/SMDS_MeshNode.hxx +++ b/src/SMDS/SMDS_MeshNode.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -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,52 +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 xyx[3]) const; // thread safe getting coords + 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); - inline void setVtkId(int vtkId) { myVtkID = vtkId; }; 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