Salome HOME
#17237: Body fitting on sub-mesh, #16523: Treatment of internal faces
[modules/smesh.git] / src / StdMeshersGUI / StdMeshersGUI_CartesianParamCreator.cxx
index 88ea48899b99667d35607c432b375fdd780e8106..f1271c105c6428878aed755641743123af900d68 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  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
@@ -177,7 +177,7 @@ namespace StdMeshersGUI
     myStepSpin->SetStep( 1. );
     myStepSpin->SetValue( myStep = 1. );
 
-    // 3) Coodrinates/Spacing group
+    // 3) Coordinates/Spacing group
     QFrame*    csFrame = new QFrame( this );
     QVBoxLayout* scLay = new QVBoxLayout( csFrame );
     scLay->setMargin( 0 );
@@ -204,8 +204,8 @@ namespace StdMeshersGUI
     axisTabLayout->setSpacing( SPACING );
 
     axisTabLayout->addWidget( modeBox    , 0, 0, 1, 3 );
-    axisTabLayout->addWidget( myInsertBtn  , 1, 0, 1, 2 );
-    axisTabLayout->addWidget( myDeleteBtn  , 2, 0, 1, 2 );
+    axisTabLayout->addWidget( myInsertBtn, 1, 0, 1, 2 );
+    axisTabLayout->addWidget( myDeleteBtn, 2, 0, 1, 2 );
     axisTabLayout->addWidget( myStepLabel, 3, 0 );
     axisTabLayout->addWidget( myStepSpin , 3, 1 );
     axisTabLayout->addWidget( csFrame    , 1, 2, 4, 1 );
@@ -457,7 +457,7 @@ namespace StdMeshersGUI
 
   //================================================================================
   /*!
-   * \brief Returms spacing to set to a hypothesis
+   * \brief Returns spacing to set to a hypothesis
    */
   //================================================================================
 
@@ -821,6 +821,15 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame()
   myAddEdges = new QCheckBox( tr("ADD_EDGES"), GroupC1 );
   argGroupLayout->addWidget( myAddEdges, row, 0, 1, 2 );
   row++;
+  myCreateFaces = new QCheckBox( tr("CREATE_FACES"), GroupC1 );
+  argGroupLayout->addWidget( myCreateFaces, row, 0, 1, 2 );
+  row++;
+  myConsiderInternalFaces = new QCheckBox( tr("CONSIDER_INTERNAL_FACES"), GroupC1 );
+  argGroupLayout->addWidget( myConsiderInternalFaces, row, 0, 1, 2 );
+  row++;
+  myUseThresholdForInternalFaces = new QCheckBox( tr("USE_THRESHOLD_FOR_INTERNAL_FACES"), GroupC1 );
+  argGroupLayout->addWidget( myUseThresholdForInternalFaces, row, 0, 1, 2 );
+  row++;
 
   // 3)  Grid definition
   QTabWidget* tabWdg = new QTabWidget( fr );
@@ -924,6 +933,8 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame()
   connect( myOrthogonalChk, SIGNAL( toggled(bool)),             SLOT( onOrthogonalAxes(bool)));
   connect( optimBtn,        SIGNAL( clicked(bool)),             SLOT( onOptimalAxes(bool)));
   connect( resetBtn,        SIGNAL( clicked(bool)),             SLOT( onResetAxes(bool)));
+  connect( myConsiderInternalFaces,      SIGNAL( toggled(bool)),
+           myUseThresholdForInternalFaces, SLOT( setEnabled(bool)));
   for ( int i = 0; i < 3; ++i )
   {
     connect( myXDirSpin[i], SIGNAL(valueChanged   (const QString&)),
@@ -999,6 +1010,9 @@ void StdMeshersGUI_CartesianParamCreator::retrieveParams() const
     myThreshold->setText( varName );
 
   myAddEdges->setChecked( h->GetToAddEdges() );
+  myCreateFaces->setChecked( h->GetToCreateFaces() );
+  myConsiderInternalFaces->setChecked( h->GetToConsiderInternalFaces() );
+  myUseThresholdForInternalFaces->setChecked( h->GetToUseThresholdForInternalFaces() );
 
   // grid definition
   for ( int ax = 0; ax < 3; ++ax )
@@ -1080,12 +1094,15 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const
   try
   {
     if( isCreation() )
-      SMESH::SetName( SMESH::FindSObject( h ), myName->text().toLatin1().constData() );
+      SMESH::SetName( SMESH::FindSObject( h ), myName->text().toUtf8().constData() );
 
     // threshold
     h->SetVarParameter( myThreshold->text().toLatin1().constData(), "SetSizeThreshold" );
     h->SetSizeThreshold( myThreshold->text().toDouble() );
     h->SetToAddEdges( myAddEdges->isChecked() );
+    h->SetToCreateFaces( myCreateFaces->isChecked() );
+    h->SetToConsiderInternalFaces( myConsiderInternalFaces->isChecked() );
+    h->SetToUseThresholdForInternalFaces( myUseThresholdForInternalFaces->isChecked() );
 
     // grid
     for ( int ax = 0; ax < 3; ++ax )
@@ -1109,7 +1126,7 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const
     params << myPointSpin[0]->text();
     params << myPointSpin[1]->text();
     params << myPointSpin[2]->text();
-    h->SetVarParameter( params.join(":").toLatin1().constData(), "SetFixedPoint" );
+    h->SetVarParameter( params.join(":").toUtf8().constData(), "SetFixedPoint" );
     params.clear();
 
     SMESH::PointStruct ps;
@@ -1126,7 +1143,7 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const
       params << spins[ax][1]->text();
       params << spins[ax][2]->text();
     }
-    h->SetVarParameter( params.join(":").toLatin1().constData(), "SetAxesDirs" );
+    h->SetVarParameter( params.join(":").toUtf8().constData(), "SetAxesDirs" );
 
     SMESH::DirStruct axDir[3];
     for ( int ax = 0; ax < 3; ++ax )
@@ -1153,7 +1170,7 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const
 
 QString StdMeshersGUI_CartesianParamCreator::helpPage() const
 {
-  return "cartesian_algo_page.html#cartesian_hyp_anchor";
+  return "cartesian_algo.html#cartesian-hyp-anchor";
 }
 
 //================================================================================