Version: 9.16.0
StdMeshers_RadialPrism_3D.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SMESH SMESH : implementation of SMESH idl descriptions
24// File : StdMeshers_RadialPrism_3D.hxx
25// Module : SMESH
26//
27#ifndef _SMESH_RadialPrism_3D_HXX_
28#define _SMESH_RadialPrism_3D_HXX_
29
30#include "SMESH_StdMeshers.hxx"
31
32#include "SMESH_Algo.hxx"
33#include "SMDS_MeshNode.hxx"
34
35#include <vector>
36#include <map>
37
41class gp_Pnt;
42
44{
45public:
46 StdMeshers_RadialPrism_3D(int hypId, SMESH_Gen* gen);
48
49 virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
50 const TopoDS_Shape& aShape,
52
53 virtual bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape);
54
55 virtual bool Evaluate(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape,
56 MapShapeNbElems& aResMap);
57
58 virtual bool IsApplicableToShape(const TopoDS_Shape & shape, bool toCheckAll) const
59 {
60 return IsApplicable( shape, toCheckAll );
61 }
62 static bool IsApplicable(const TopoDS_Shape & aShape, bool toCheckAll);
63
64protected:
65
66 typedef std::vector<const SMDS_MeshNode* > TNodeColumn;
67 typedef std::map< const SMDS_MeshNode*, TNodeColumn > TNode2ColumnMap;
68
69 TNodeColumn* makeNodeColumn( TNode2ColumnMap& n2ColMap,
70 const SMDS_MeshNode* outNode,
71 const SMDS_MeshNode* inNode);
72
73 bool computeLayerPositions(const gp_Pnt& pIn,
74 const gp_Pnt& pOut);
75
76
80 std::vector< double > myLayerPositions;
81};
82
83#endif
std::map< SMESH_subMesh *, std::vector< smIdType > > MapShapeNbElems
Definition: SMESH_Algo.hxx:63
#define STDMESHERS_EXPORT
Definition: SMESH_StdMeshers.hxx:38
Definition: SMDS_MeshNode.hxx:36
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
Hypothesis_Status
Definition: SMESH_Hypothesis.hxx:51
Definition: SMESH_Mesh.hxx:80
It helps meshers to add elements and provides other utilities.
Definition: SMESH_MesherHelper.hxx:84
This hypothesis is used by "Radial prism" algorithm.
Definition: StdMeshers_LayerDistribution.hxx:51
This hypothesis is used by "Radial prism" algorithm.
Definition: StdMeshers_NumberOfLayers.hxx:49
Definition: StdMeshers_RadialPrism_3D.hxx:44
std::vector< const SMDS_MeshNode * > TNodeColumn
Definition: StdMeshers_RadialPrism_3D.hxx:66
const StdMeshers_NumberOfLayers * myNbLayerHypo
Definition: StdMeshers_RadialPrism_3D.hxx:77
virtual bool IsApplicableToShape(const TopoDS_Shape &shape, bool toCheckAll) const
Return true if the algorithm can mesh a given shape.
Definition: StdMeshers_RadialPrism_3D.hxx:58
std::map< const SMDS_MeshNode *, TNodeColumn > TNode2ColumnMap
Definition: StdMeshers_RadialPrism_3D.hxx:67
SMESH_MesherHelper * myHelper
Definition: StdMeshers_RadialPrism_3D.hxx:79
std::vector< double > myLayerPositions
Definition: StdMeshers_RadialPrism_3D.hxx:80
const StdMeshers_LayerDistribution * myDistributionHypo
Definition: StdMeshers_RadialPrism_3D.hxx:78
bool IsApplicable(const QString &aHypType, GEOM::GEOM_Object_ptr theGeomObject, const bool toCheckAll)
Definition: SMESHGUI_HypothesesUtils.cxx:617