-// Copyright (C) 2007-2013 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
// 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
int ID() const;
// return element ID
+ bool IsPoly() const { return myPolyedre; }
+
// -----------------------
// general info
// -----------------------
// 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;
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<const SMDS_MeshNode*>& theFaceNodes ) const;
+ int GetFaceIndex( const std::set<const SMDS_MeshNode*>& theFaceNodes,
+ const int theFaceIndexHint=-1) const;
// Return index of a face formed by theFaceNodes.
// Return -1 if a face not found
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;