Salome HOME
Copyright update 2020
[plugins/netgenplugin.git] / src / GUI / NETGENPluginGUI_HypothesisCreator.h
index 3409cf409c8cc8cbc4bf2a6d4d344f121468b777..48461728732cc62ac905ab5f6a5d4099d533960e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 
 #include <TopAbs_ShapeEnum.hxx>
 
-class SMESHGUI_SpinBox;
 class GeomSelectionTools;
-class QComboBox;
 class QCheckBox;
+class QComboBox;
 class QLineEdit;
 class QTableWidget;
+class SMESHGUI_SpinBox;
+class SalomeApp_IntSpinBox;
 
 typedef struct
 {
-  double              myMaxSize, myMinSize, myGrowthRate, myNbSegPerEdge, myNbSegPerRadius;
-  int                 myFineness;
-  bool                mySecondOrder, myAllowQuadrangles, myOptimize, mySurfaceCurvature, myFuseEdges;
-  QString             myName;
-  QString             myMaxSizeVar, myMinSizeVar, myGrowthRateVar, myNbSegPerEdgeVar, myNbSegPerRadiusVar;
+  double  myMaxSize, myMinSize, myGrowthRate, myNbSegPerEdge, myNbSegPerRadius, myRidgeAngle, myChordalError, myElemSizeWeight, myEdgeCornerAngle, myChartAngle, myOuterChartAngle, myRestHChartDistFactor, myRestHLineLengthFactor, myRestHCloseEdgeFactor, myRestHSurfCurvFactor, myRestHEdgeAngleFactor, myRestHSurfMeshCurvFactor;
+  int     myFineness, myNbSurfOptSteps, myNbVolOptSteps, myWorstElemMeasure;
+  bool    mySecondOrder, myAllowQuadrangles, myOptimize, mySurfaceCurvature, myFuseEdges, myChordalErrorEnabled, myUseDelauney, myCheckOverlapping, myCheckChartBoundary, myRestHChartDistEnable, myRestHLineLengthEnable, myRestHCloseEdgeEnable, myRestHSurfCurvEnable, myRestHEdgeAngleEnable, myRestHSurfMeshCurvEnable, myKeepExistingEdges, myMakeGroupsOfSurfaces;
+  QString myName, myMeshSizeFile;
+  QString myMaxSizeVar, myMinSizeVar, myGrowthRateVar, myNbSegPerEdgeVar, myNbSegPerRadiusVar, myRidgeAngleVar, myChordalErrorVar, myNbSurfOptStepsVar, myNbVolOptStepsVar, myElemSizeWeightVar, myWorstElemMeasureVar, myEdgeCornerAngleVar, myChartAngleVar, myOuterChartAngleVar, myRestHChartDistFactorVar, myRestHLineLengthFactorVar, myRestHCloseEdgeFactorVar, myRestHSurfCurvFactorVar, myRestHEdgeAngleFactorVar, myRestHSurfMeshCurvFactorVar;
 } NetgenHypothesisData;
 
 /*!
@@ -76,12 +77,16 @@ protected:
 
 protected slots:
   virtual void     onFinenessChanged();
+  virtual void     onChordalErrorEnabled();
   virtual void     onSurfaceCurvatureChanged();
   virtual void     onAddLocalSizeOnVertex();
   virtual void     onAddLocalSizeOnEdge();
   virtual void     onAddLocalSizeOnFace();
+  virtual void     onAddLocalSizeOnSolid();
   virtual void     onRemoveLocalSizeOnShape();
   virtual void     onSetLocalSize(int,int);
+  virtual void     onSetSizeFile();
+  virtual void     onSTLEnable();
 
 private:
   bool readParamsFromHypo( NetgenHypothesisData& ) const;
@@ -91,24 +96,57 @@ private:
   void addLocalSizeOnShape(TopAbs_ShapeEnum);
 
 private:
- QLineEdit*        myName;
- SMESHGUI_SpinBox* myMaxSize;
- SMESHGUI_SpinBox* myMinSize;
- QCheckBox*        mySecondOrder;
- QCheckBox*        myOptimize;
- QComboBox*        myFineness;
- SMESHGUI_SpinBox* myGrowthRate;
- SMESHGUI_SpinBox* myNbSegPerEdge;
- SMESHGUI_SpinBox* myNbSegPerRadius;
- QCheckBox*        myAllowQuadrangles;
- QCheckBox*        mySurfaceCurvature;
- QCheckBox*        myFuseEdges;
-
- bool myIs2D;
- bool myIsONLY;
-
- QTableWidget* myLocalSizeTable;
- GeomSelectionTools* myGeomSelectionTools;
+ QLineEdit*            myName;
+ SMESHGUI_SpinBox*     myMaxSize;
+ SMESHGUI_SpinBox*     myMinSize;
+ QCheckBox*            mySecondOrder;
+ QCheckBox*            myOptimize;
+ QComboBox*            myFineness;
+ SMESHGUI_SpinBox*     myGrowthRate;
+ SMESHGUI_SpinBox*     myNbSegPerEdge;
+ SMESHGUI_SpinBox*     myNbSegPerRadius;
+ QCheckBox*            myChordalErrorEnabled;
+ SMESHGUI_SpinBox*     myChordalError;
+ QCheckBox*            myAllowQuadrangles;
+ QCheckBox*            mySurfaceCurvature;
+ // optimizer
+ SMESHGUI_SpinBox*     myElemSizeWeight;
+ SalomeApp_IntSpinBox* myNbSurfOptSteps;
+ SalomeApp_IntSpinBox* myNbVolOptSteps;
+ // insider
+ QCheckBox*            myFuseEdges;
+ SalomeApp_IntSpinBox* myWorstElemMeasure;
+ QCheckBox*            myUseDelauney;
+ QCheckBox*            myCheckOverlapping;
+ QCheckBox*            myCheckChartBoundary;
+ // stl options
+ QCheckBox*            myKeepExistingEdges;
+ QCheckBox*            myMakeGroupsOfSurfaces;
+ // stl charts
+ SMESHGUI_SpinBox*     myRidgeAngle;
+ SMESHGUI_SpinBox*     myEdgeCornerAngle;
+ SMESHGUI_SpinBox*     myChartAngle;
+ SMESHGUI_SpinBox*     myOuterChartAngle;
+ // stl size
+ SMESHGUI_SpinBox*     myRestHChartDistFactor;
+ SMESHGUI_SpinBox*     myRestHLineLengthFactor;
+ SMESHGUI_SpinBox*     myRestHCloseEdgeFactor;
+ SMESHGUI_SpinBox*     myRestHSurfCurvFactor;
+ SMESHGUI_SpinBox*     myRestHEdgeAngleFactor;
+ SMESHGUI_SpinBox*     myRestHSurfMeshCurvFactor;
+ QCheckBox*            myRestHChartDistEnable;
+ QCheckBox*            myRestHLineLengthEnable;
+ QCheckBox*            myRestHCloseEdgeEnable;
+ QCheckBox*            myRestHSurfCurvEnable;
+ QCheckBox*            myRestHEdgeAngleEnable;
+ QCheckBox*            myRestHSurfMeshCurvEnable;
+
+ bool myIs2D;   // 2D or 3D
+ bool myIsONLY; // one dim or several
+
+ QLineEdit*             myMeshSizeFile;
+ QTableWidget*          myLocalSizeTable;
+ GeomSelectionTools*    myGeomSelectionTools;
  QMap<QString, QString> myLocalSizeMap;
 };