X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FStdMeshers%2FStdMeshers_QuadToTriaAdaptor.hxx;fp=src%2FStdMeshers%2FStdMeshers_QuadToTriaAdaptor.hxx;h=af818549f264005607c7621b80d2eff1d107b3dd;hb=0635c9fc80f67d1e5dc0e94ec85f487286a92070;hp=0000000000000000000000000000000000000000;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx new file mode 100644 index 000000000..af818549f --- /dev/null +++ b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx @@ -0,0 +1,76 @@ +// 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 SMESH : implementaion of SMESH idl descriptions +// File : StdMeshers_QuadToTriaAdaptor.hxx +// Module : SMESH +// +#ifndef _SMESH_QuadToTriaAdaptor_HXX_ +#define _SMESH_QuadToTriaAdaptor_HXX_ + +#include +#include +#include +#include +#include + +#include +#include +#include + +class STDMESHERS_EXPORT StdMeshers_QuadToTriaAdaptor +{ +public: + + StdMeshers_QuadToTriaAdaptor(); + + ~StdMeshers_QuadToTriaAdaptor(); + + bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape); + + bool Compute(SMESH_Mesh& aMesh); + + std::list GetTriangles(const SMDS_MeshElement* aFace); + +protected: + + //bool CheckDegenerate(const SMDS_MeshElement* aFace); + + int Preparation(const SMDS_MeshElement* face, + Handle(TColgp_HArray1OfPnt) PN, + Handle(TColgp_HArray1OfVec) VN, + std::vector& FNodes, + gp_Pnt& PC, gp_Vec& VNorm); + + bool CheckIntersection(const gp_Pnt& P, const gp_Pnt& PC, + gp_Pnt& Pint, SMESH_Mesh& aMesh, + const TopoDS_Shape& aShape, + const TopoDS_Shape& NotCheckedFace); + + bool Compute2ndPart(SMESH_Mesh& aMesh); + + std::map< const SMDS_MeshElement*, std::list > myResMap; + std::map< const SMDS_MeshElement*, const SMDS_MeshElement* > myMapFPyram; + std::list< const SMDS_MeshNode* > myDegNodes; + +}; + +#endif