X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshElement.cxx;h=f309847d171df8dde2cac977276c1b38dabf2809;hb=7724b590e3c4ad76edbac5e36395234b6c1c57d9;hp=14c0af4b54667b048204f24d98da91b257a9b157;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_MeshElement.cxx b/src/SMDS/SMDS_MeshElement.cxx index 14c0af4b5..f309847d1 100644 --- a/src/SMDS/SMDS_MeshElement.cxx +++ b/src/SMDS/SMDS_MeshElement.cxx @@ -1,23 +1,29 @@ +// Copyright (C) 2007-2008 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 +// +// 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. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMDS : implementaion of Salome mesh data structure // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// 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. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// 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 +#ifdef _MSC_VER +#pragma warning(disable:4786) +#endif #include "SMDS_MeshElement.hxx" #include "SMDS_MeshNode.hxx" @@ -26,7 +32,16 @@ #include "SMDS_MeshVolume.hxx" #include "utilities.h" -SMDS_MeshElement::SMDS_MeshElement(int ID):myID(ID) +using namespace std; + +int SMDS_MeshCell::nbCells = 0; + +SMDS_MeshElement::SMDS_MeshElement(int ID):myID(ID), myMeshId(-1), myShapeId(-1), myIdInShape(-1) +{ +} + +SMDS_MeshElement::SMDS_MeshElement(int id, ShortType meshId, ShortType shapeId): + myID(id), myMeshId(meshId), myShapeId(shapeId), myIdInShape(-1) { } @@ -184,4 +199,60 @@ bool operator<(const SMDS_MeshElement& e1, const SMDS_MeshElement& e2) default : MESSAGE("Internal Error"); } + return false; +} + +bool SMDS_MeshElement::IsValidIndex(const int ind) const +{ + return ( ind>-1 && ind= 0 ) { + SMDS_ElemIteratorPtr it = nodesIterator(); + for ( int i = 0; i < ind; ++i ) + it->next(); + if ( it->more() ) + return static_cast (it->next()); + } + return 0; +} + +bool SMDS_MeshElement::IsQuadratic() const +{ + return false; +} + +bool SMDS_MeshElement::IsMediumNode(const SMDS_MeshNode* node) const +{ + return false; +} + +//================================================================================ + /*! + * \brief Check if a node belongs to the element + * \param node - the node to check + * \retval int - node index within the element, -1 if not found + */ +//================================================================================ + +int SMDS_MeshElement::GetNodeIndex( const SMDS_MeshNode* node ) const +{ + SMDS_ElemIteratorPtr nIt = nodesIterator(); + for ( int i = 0; nIt->more(); ++i ) + if ( nIt->next() == node ) + return i; + return -1; +} + +SMDS_MeshCell::SMDS_MeshCell() : SMDS_MeshElement(-1) +{ + nbCells++; + myVtkID = -1; +}; + +SMDS_MeshCell::~SMDS_MeshCell() +{ + nbCells--; }