Version: 9.12.0
StdMeshers_CompositeHexa_3D.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 // SMESH SMESH : implementation of SMESH idl descriptions
21 // File : StdMeshers_CompositeBlock_3D.hxx
22 // Module : SMESH
23 //
24 #ifndef _SMESH_CompositeSegment_1D_HXX_
25 #define _SMESH_CompositeSegment_1D_HXX_
26 
27 #include "SMESH_StdMeshers.hxx"
28 #include "SMESH_Algo.hxx"
29 
30 class SMESH_Mesh;
31 class SMESH_ProxyMesh;
34 class TopoDS_Edge;
35 class TopoDS_Face;
36 struct _QuadFaceGrid;
37 
45 {
46 public:
47  StdMeshers_CompositeHexa_3D(int hypId, SMESH_Gen* gen);
48 
49  void SetHypothesis( const StdMeshers_BlockRenumber* hyp ) { _blockRenumberHyp = hyp; }
50 
51  virtual bool Compute(SMESH_Mesh& aMesh,
52  const TopoDS_Shape& aShape);
53 
54  virtual bool Evaluate(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape,
55  MapShapeNbElems& aResMap);
56 
57  virtual bool CheckHypothesis(SMESH_Mesh& /*aMesh*/,
58  const TopoDS_Shape& /*aShape*/,
59  Hypothesis_Status& aStatus);
60 
61  private:
62 
63  bool findBoxFaces( const TopoDS_Shape& shape,
64  std::list< _QuadFaceGrid >& boxFaceContainer,
65  SMESH_Mesh& mesh,
66  SMESH_ProxyMesh& proxyMesh,
67  bool& toRenumber,
68  _QuadFaceGrid * & fBottom,
69  _QuadFaceGrid * & fTop,
70  _QuadFaceGrid * & fFront,
71  _QuadFaceGrid * & fBack,
72  _QuadFaceGrid * & fLeft,
73  _QuadFaceGrid * & fRight);
74 
76 };
77 
78 #endif
std::map< SMESH_subMesh *, std::vector< smIdType > > MapShapeNbElems
Definition: SMESH_Algo.hxx:61
#define STDMESHERS_EXPORT
Definition: SMESH_StdMeshers.hxx:38
Definition: SMESH_Algo.hxx:511
virtual bool Evaluate(SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, MapShapeNbElems &aResMap)=0
evaluates size of prospective mesh on a shape
virtual bool CheckHypothesis(SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, SMESH_Hypothesis::Hypothesis_Status &aStatus)=0
Check hypothesis definition to mesh a shape.
virtual bool Compute(SMESH_Mesh &aMesh, const TopoDS_Shape &aShape)=0
Computes mesh on a shape.
Definition: SMESH_Gen.hxx:68
Definition: SMESH_Mesh.hxx:80
Container of xD mesh elements substituting other ones in the input mesh of an (x+1)D algorithm.
Definition: SMESH_ProxyMesh.hxx:51
Definition: StdMeshers_BlockRenumber.hxx:72
Computes hexahedral mesh on a box with composite sides.
Definition: StdMeshers_CompositeHexa_3D.hxx:45
const StdMeshers_BlockRenumber * _blockRenumberHyp
Definition: StdMeshers_CompositeHexa_3D.hxx:75
void SetHypothesis(const StdMeshers_BlockRenumber *hyp)
Definition: StdMeshers_CompositeHexa_3D.hxx:49
Represents a side of a quasi quadrilateral face.
Definition: StdMeshers_FaceSide.hxx:67
Class corresponding to a meshed composite face of a box.
Definition: StdMeshers_CompositeHexa_3D.cxx:152
Hypothesis_Status
Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
Definition: SMESH_Mesh.idl:208