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
00028 #ifndef _NETGENPlugin_Hypothesis_HXX_
00029 #define _NETGENPlugin_Hypothesis_HXX_
00030
00031 #include "NETGENPlugin_Defs.hxx"
00032
00033 #include "SMESH_Hypothesis.hxx"
00034 #include "Utils_SALOME_Exception.hxx"
00035
00036
00037
00038
00039 using namespace std;
00040
00041 class NETGENPLUGIN_EXPORT NETGENPlugin_Hypothesis: public SMESH_Hypothesis
00042 {
00043 public:
00044
00045 NETGENPlugin_Hypothesis(int hypId, int studyId, SMESH_Gen * gen);
00046
00047 void SetMaxSize(double theSize);
00048 double GetMaxSize() const { return _maxSize; }
00049
00050 void SetSecondOrder(bool theVal);
00051 bool GetSecondOrder() const { return _secondOrder; }
00052
00053 void SetOptimize(bool theVal);
00054 bool GetOptimize() const { return _optimize; }
00055
00056 enum Fineness
00057 {
00058 VeryCoarse,
00059 Coarse,
00060 Moderate,
00061 Fine,
00062 VeryFine,
00063 UserDefined
00064 };
00065
00066 void SetFineness(Fineness theFineness);
00067 Fineness GetFineness() const { return _fineness; }
00068
00069
00070
00071 void SetGrowthRate(double theRate);
00072 double GetGrowthRate() const { return _growthRate; }
00073
00074 void SetNbSegPerEdge(double theVal);
00075 double GetNbSegPerEdge() const { return _nbSegPerEdge; }
00076
00077 void SetNbSegPerRadius(double theVal);
00078 double GetNbSegPerRadius() const { return _nbSegPerRadius; }
00079
00080
00081
00082 static double GetDefaultMaxSize();
00083 static Fineness GetDefaultFineness();
00084 static double GetDefaultGrowthRate();
00085 static double GetDefaultNbSegPerEdge();
00086 static double GetDefaultNbSegPerRadius();
00087 static bool GetDefaultSecondOrder();
00088 static bool GetDefaultOptimize();
00089
00090
00091 virtual ostream & SaveTo(ostream & save);
00092 virtual istream & LoadFrom(istream & load);
00093 friend NETGENPLUGIN_EXPORT ostream & operator <<(ostream & save, NETGENPlugin_Hypothesis & hyp);
00094 friend NETGENPLUGIN_EXPORT istream & operator >>(istream & load, NETGENPlugin_Hypothesis & hyp);
00095
00102 virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
00103
00108 virtual bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0);
00109
00110 private:
00111 double _maxSize;
00112 double _growthRate;
00113 double _nbSegPerEdge;
00114 double _nbSegPerRadius;
00115 Fineness _fineness;
00116 bool _secondOrder;
00117 bool _optimize;
00118 };
00119
00120 #endif