X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_VolumeTool.hxx;h=69e20860a8996e69681ac49295e1f7dec751d99d;hb=4edb4666f465956c76c5b41ec9c8fc582dbea64a;hp=5c22c3edab61f1063f2c9e118ea0daccf5a69e2e;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_VolumeTool.hxx b/src/SMDS/SMDS_VolumeTool.hxx index 5c22c3eda..69e20860a 100644 --- a/src/SMDS/SMDS_VolumeTool.hxx +++ b/src/SMDS/SMDS_VolumeTool.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 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 @@ -73,6 +73,8 @@ class SMDS_EXPORT SMDS_VolumeTool int ID() const; // return element ID + bool IsPoly() const { return myPolyedre; } + // ----------------------- // general info // ----------------------- @@ -128,6 +130,9 @@ class SMDS_EXPORT SMDS_VolumeTool double MinLinearSize2() const; // Return minimal square distance between connected corner nodes + double MaxLinearSize2() const; + // Return maximal square distance between connected corner nodes + // ------------- // info on faces // ------------- @@ -174,7 +179,11 @@ class SMDS_EXPORT SMDS_VolumeTool // SetExternalNormal() is taken into account. bool IsFreeFace( int faceIndex, const SMDS_MeshElement** otherVol=0 ) const; - // Check that all volumes built on the face nodes lays on one side + // Fast check that only one volume is built on nodes of a given face + // otherVol returns another volume sharing the given facet + + bool IsFreeFaceAdv( int faceIndex, const SMDS_MeshElement** otherVol=0 ) const; + // Thorough check that all volumes built on the face nodes lays on one side // otherVol returns another volume sharing the given facet bool GetFaceNormal (int faceIndex, double & X, double & Y, double & Z) const; @@ -192,7 +201,8 @@ class SMDS_EXPORT SMDS_VolumeTool int GetCenterNodeIndex( int faceIndex ) const; // Return index of the node located at face center of a quadratic element like HEX27 - int GetFaceIndex( const std::set& theFaceNodes ) const; + int GetFaceIndex( const std::set& theFaceNodes, + const int theFaceIndexHint=-1) const; // Return index of a face formed by theFaceNodes. // Return -1 if a face not found @@ -229,6 +239,9 @@ class SMDS_EXPORT SMDS_VolumeTool static int NbCornerNodes(VolumeType type); // Useful to know nb of corner nodes of a quadratic volume + static int GetOppFaceIndexOfHex( int faceIndex ); + // Return index of the opposite face of the hexahedron + private: bool setFace( int faceIndex ) const;