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
00028
00029 #ifndef _SMESH_NUMBEROFSEGMENTS_HXX_
00030 #define _SMESH_NUMBEROFSEGMENTS_HXX_
00031
00032 #include "SMESH_StdMeshers.hxx"
00033
00034 #include "SMESH_Hypothesis.hxx"
00035 #include "Utils_SALOME_Exception.hxx"
00036 #include <vector>
00037
00044 class STDMESHERS_EXPORT StdMeshers_NumberOfSegments:
00045 public SMESH_Hypothesis
00046 {
00047 public:
00048 StdMeshers_NumberOfSegments(int hypId, int studyId, SMESH_Gen* gen);
00049 virtual ~StdMeshers_NumberOfSegments();
00050
00051
00052 const std::vector<double>& BuildDistributionExpr( const char*, int, int ) throw ( SALOME_Exception );
00053 const std::vector<double>& BuildDistributionTab( const std::vector<double>&, int, int ) throw ( SALOME_Exception );
00054
00059 void SetNumberOfSegments(int segmentsNumber)
00060 throw (SALOME_Exception);
00061
00065 int GetNumberOfSegments() const;
00066
00070 enum DistrType
00071 {
00072 DT_Regular,
00073 DT_Scale,
00074 DT_TabFunc,
00075 DT_ExprFunc
00076 };
00077
00081 void SetDistrType(DistrType typ)
00082 throw (SALOME_Exception);
00083
00087 DistrType GetDistrType() const;
00088
00096 virtual void SetScaleFactor(double scaleFactor)
00097 throw (SALOME_Exception);
00098
00104 double GetScaleFactor() const
00105 throw (SALOME_Exception);
00106
00116 void SetTableFunction(const std::vector<double>& table)
00117 throw (SALOME_Exception);
00118
00124 const std::vector<double>& GetTableFunction() const
00125 throw (SALOME_Exception);
00126
00134 void SetExpressionFunction( const char* expr)
00135 throw (SALOME_Exception);
00136
00142 const char* GetExpressionFunction() const
00143 throw (SALOME_Exception);
00144
00154 void SetConversionMode( int conv )
00155 throw (SALOME_Exception);
00156
00162 int ConversionMode() const
00163 throw (SALOME_Exception);
00164
00165 void SetReversedEdges( std::vector<int>& ids);
00166
00167 void SetObjectEntry( const char* entry ) { _objEntry = entry; }
00168
00169 const char* GetObjectEntry() { return _objEntry.c_str(); }
00170
00171 const std::vector<int>& GetReversedEdges() const { return _edgeIDs; }
00172
00179 virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
00180
00185 virtual bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0);
00186
00187 virtual std::ostream & SaveTo(std::ostream & save);
00188 virtual std::istream & LoadFrom(std::istream & load);
00189 friend std::ostream& operator << (std::ostream & save, StdMeshers_NumberOfSegments & hyp);
00190 friend std::istream& operator >> (std::istream & load, StdMeshers_NumberOfSegments & hyp);
00191
00192 protected:
00193 int _numberOfSegments;
00194 DistrType _distrType;
00195 double _scaleFactor;
00196 std::vector<double> _table, _distr;
00197 std::string _func;
00198 int _convMode;
00199 std::vector<int> _edgeIDs;
00200 std::string _objEntry;
00201 };
00202
00203 #endif