Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _SMESH_RadialPrism_3D_HXX_
00028 #define _SMESH_RadialPrism_3D_HXX_
00029
00030 #include "SMESH_StdMeshers.hxx"
00031
00032 #include "SMESH_3D_Algo.hxx"
00033 #include "SMDS_MeshNode.hxx"
00034
00035 #include <vector>
00036 #include <map>
00037
00038 class StdMeshers_NumberOfLayers;
00039 class StdMeshers_LayerDistribution;
00040 class SMESH_MesherHelper;
00041 class gp_Pnt;
00042
00043 class STDMESHERS_EXPORT StdMeshers_RadialPrism_3D: public SMESH_3D_Algo
00044 {
00045 public:
00046 StdMeshers_RadialPrism_3D(int hypId, int studyId, SMESH_Gen* gen);
00047 virtual ~StdMeshers_RadialPrism_3D();
00048
00049 virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
00050 const TopoDS_Shape& aShape,
00051 SMESH_Hypothesis::Hypothesis_Status& aStatus);
00052
00053 virtual bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape);
00054
00055 virtual bool Evaluate(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape,
00056 MapShapeNbElems& aResMap);
00057
00058 protected:
00059
00060 typedef std::vector<const SMDS_MeshNode* > TNodeColumn;
00061 typedef std::map< const SMDS_MeshNode*, TNodeColumn > TNode2ColumnMap;
00062
00063 TNodeColumn* makeNodeColumn( TNode2ColumnMap& n2ColMap,
00064 const SMDS_MeshNode* outNode,
00065 const SMDS_MeshNode* inNode);
00066
00067 bool computeLayerPositions(const gp_Pnt& pIn,
00068 const gp_Pnt& pOut);
00069
00070
00071 const StdMeshers_NumberOfLayers* myNbLayerHypo;
00072 const StdMeshers_LayerDistribution* myDistributionHypo;
00073 SMESH_MesherHelper* myHelper;
00074 std::vector< double > myLayerPositions;
00075 };
00076
00077 #endif