From 7ac24e7592ac5965df5aa639a9f8bd21feab562d Mon Sep 17 00:00:00 2001 From: vtn Date: Mon, 4 Feb 2008 13:58:23 +0000 Subject: [PATCH] NPAL16568: Added Approximation parameter in MakeFilling algorithm. --- doc/salome/gui/GEOM/images/filling.png | Bin 17649 -> 17640 bytes .../gui/GEOM/input/creating_complex_obj.doc | 4 +- .../gui/GEOM/input/creating_filling.doc | 12 +- .../gui/GEOM/input/creating_geom_objects.doc | 4 +- doc/salome/gui/GEOM/input/index.doc | 4 +- idl/GEOM_Gen.idl | 2 +- idl/GEOM_Superv.idl | 2 +- src/DlgRef/DlgRef_1Sel5Spin1Check.cxx | 71 +++++ src/DlgRef/DlgRef_1Sel5Spin1Check.h | 53 ++++ src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx | 150 +++++++++ src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h | 63 ++++ src/DlgRef/Makefile.am | 6 + .../UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui | 290 ++++++++++++++++++ src/DlgRef/UIFiles/ui_to_cxx | 3 + src/GEOM/GEOM_Gen_i.cc | 5 +- src/GEOMGUI/GEOM_msg_en.po | 4 + src/GEOMImpl/GEOMImpl_FillingDriver.cxx | 3 +- src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx | 11 +- src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx | 2 +- src/GEOMImpl/GEOMImpl_IFilling.hxx | 4 + src/GEOM_I/GEOM_I3DPrimOperations_i.cc | 5 +- src/GEOM_I/GEOM_I3DPrimOperations_i.hh | 2 +- src/GEOM_I_Superv/GEOM_Superv_i.cc | 4 +- src/GEOM_I_Superv/GEOM_Superv_i.hh | 2 +- src/GEOM_SWIG/batchmode_geompy.py | 4 +- src/GEOM_SWIG/geompyDC.py | 4 +- .../GenerationGUI_FillingDlg.cxx | 20 +- src/GenerationGUI/GenerationGUI_FillingDlg.h | 6 +- 28 files changed, 705 insertions(+), 35 deletions(-) create mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check.cxx create mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check.h create mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx create mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h create mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui diff --git a/doc/salome/gui/GEOM/images/filling.png b/doc/salome/gui/GEOM/images/filling.png index 418c22431a22619f4dc692f96e22f5621d389b47..1fb29455c8d99228329e0b9270bf785770f81fb7 100755 GIT binary patch literal 17640 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 literal 17649 zcmb8X1z1#HyEiH`|wx8c9N?~I>#(+Q|*fP=*$`A<3SMUdR9}OHaa!UqZ zpFm_JUcUe6voqu3{(hzTWPdJRrpq^vIug>8=}m|^?rose74Y!BoS2w1W4Xawu>n;x zg}X0Ew(ba3q1<8VVI+B=|1M}eYY|Od6~)6(84HE$E98NO>FPC&QI`=7|3uW*<@t9z zxJT;cw4JR<0e@|TJ>zG0+%K+8K0!g!4@L_#EtVU3UVkA$X<}=4RAg*Q zD5zh&Ve68v|45Dg`18#Twx-9`}^+Rv|?fE-}Iy1u3eSMVZ6|4Lk?rt>*S zdc>Bq#LTF>sjsWUd|B_s_Be&AC61FVIi=A=UD1*%<|Mo~;Odk5UQb$8hIUO``_XnU z;g>pm$-*G%jM5L-mKAku>LL1BHfhX4WXAK*)}gj5IqaaDLp3m!z?n#XZg2X0|P{ zE1IxWXC`{gZT=}R5IuCd#JX}>uhPYubq2Mz{)p{@(c;pUXSvg_HjxY(Iz3bE%s_^U zijK1q7$i+-zKmw|VZ~be9hqtf89#q@dXivZA2iEmsY5+q)z;3A-w8nu$uF?-kBg(T z%F|e07Lb-LHYkmobu=J@Y)8p#eB@+@fvpCy=VaBDW z4{_z5&qB@Yi?98tm~jnD$&4l+M}^Q;93dBXW}=zX?oo!>8IiK|)>%tRY%-yKTtcFsm!HI5;`Z_B&JgY!*#FR92^~DkNI_EzDbf zz-dg^%HMe%Gs*Mj85ve(S58ru)<2MyjK3v;73|Gx=spI zOTMuy;|rGSQB^1og}^)l5!SlUv|#P6uV-dvJ>!sHeKKjm@4WXUCG_z?o*98a8GK>P zZbGZhh^>4l#LO(C!pa8rVYTA$QCCp!8sFNzphJ=%)IfbbJ}oB$W48$iI!^7&(Za2b zX#{mWw904I>SDq1TG+@a^Uz{YD(QOP&Qn3U!=QLiZc!wG+u}FFlF1;O@jD$R9kRA! zf^7K0Fs8_ zA~Cr&B~X28PXBZqn9q zIvp+zaAH*kr`tx zjY<57#qxSM0jL0Yid@IgP!x~Vh&&wE)%!GzIFX~AEAtfc%a++~?_WZf+eoH(46k5{6JiT@FH1@o* zNx|WIjlR}wqRLNIt?z^~u~Ymd$T@qFiwB}Q>x$+>#NRb_LYbckqj&k#soKe!Z|6X9 zLmf$V1Yztx47nl0y;O}i`RubH!t#we4dkLODQagb5x;?#E!aH~Jh zi*`IRqY>;>Br7DC_C)FybD1|&A&Gh`Q{iif7ahZ!%p|_l7*Fxj>gkxB_~T%vfF{u9xHCzhC)KZU47*X8yo)Z22W{dQ2Sr2 zRxo3=LHjXrTG@*xtct@fsYRmQeL(k$2Xjcw_i%C3T8 zaL1-tW07aFi}YWO>~5+9$CU^mO7g!*H`<6k|N$|GO&irO^*&_|E|m0kh+d; zS&T|ZY8KMt6rb_{cMYDTz==j#le@=X z(AdbyEcGkZi?!vFjTh@vYQqpMi

oKQ`PxPA|STZS<6tZ?Cm6+>WQK-dR=s?d(b6 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 z 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%0D8hVtwDJJgJBm(eaVxP> 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 Wis$!j!GB@`k&#rCD0rpk`+opkND!U? diff --git a/doc/salome/gui/GEOM/input/creating_complex_obj.doc b/doc/salome/gui/GEOM/input/creating_complex_obj.doc index 23927a4a9..6edbfd9c5 100644 --- a/doc/salome/gui/GEOM/input/creating_complex_obj.doc +++ b/doc/salome/gui/GEOM/input/creating_complex_obj.doc @@ -5,8 +5,8 @@

  • \subpage create_extrusion_page
  • \subpage create_revolution_page
  • -
  • \subpage creaet_filling_page
  • +
  • \subpage create_filling_page
  • \subpage create_extrusion_alongpath_page
-*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/creating_filling.doc b/doc/salome/gui/GEOM/input/creating_filling.doc index 25c99395a..82d446f2c 100644 --- a/doc/salome/gui/GEOM/input/creating_filling.doc +++ b/doc/salome/gui/GEOM/input/creating_filling.doc @@ -1,18 +1,20 @@ /*! -\page creaet_filling_page Filling Surface with Edges +\page create_filling_page Filling Surface with Edges To generate a \b Filling in the Main Menu select New Entity - > Generation - > Filling \n To create a curving face using several edges you need to define the Edges Compound, \b Minimum and Maximum Degree, \b -Tolerance for \b 2D and for \b 3D and the Number of Iterations. +Tolerance for \b 2D and for \b 3D , the Number of Iterations +and Approximation. \n The \b Result of the operation will be a GEOM_Object (face). -\n TUI Command: geompy.MakeFilling(Edges, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter) -\n Arguments: Name + 1 List of edges + 5 Parameters +\n TUI Command: geompy.MakeFilling(Edges, MinDegree, +MaxDegree, Tol2D, Tol3D, NbIter, isApprox) +\n Arguments: Name + 1 List of edges + 6 Parameters (Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D -tolerance, Number of iterations). +tolerance, Number of iterations, Approximation). \image html filling.png diff --git a/doc/salome/gui/GEOM/input/creating_geom_objects.doc b/doc/salome/gui/GEOM/input/creating_geom_objects.doc index bc66bed97..1c804ae71 100644 --- a/doc/salome/gui/GEOM/input/creating_geom_objects.doc +++ b/doc/salome/gui/GEOM/input/creating_geom_objects.doc @@ -28,7 +28,7 @@
  • \ref create_extrusion_page
  • \ref create_revolution_page
  • -
  • \ref creaet_filling_page
  • +
  • \ref create_filling_page
  • \ref create_extrusion_alongpath_page
  • \subpage work_with_groups_page
  • @@ -46,4 +46,4 @@ -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/index.doc b/doc/salome/gui/GEOM/input/index.doc index 3d2d5d102..45eb2ac65 100644 --- a/doc/salome/gui/GEOM/input/index.doc +++ b/doc/salome/gui/GEOM/input/index.doc @@ -32,7 +32,7 @@
    • \ref create_extrusion_page
    • \ref create_revolution_page
    • -
    • \ref creaet_filling_page
    • +
    • \ref create_filling_page
    • \ref create_extrusion_alongpath_page
  • \ref work_with_groups_page
  • @@ -134,4 +134,4 @@ -*/ \ No newline at end of file +*/ diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index ff1d4044a..de4600e27 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -902,7 +902,7 @@ module GEOM GEOM_Object MakeFilling (in GEOM_Object theShape, in long theMinDeg, in long theMaxDeg, in double theTol2D, in double theTol3D, - in long theNbIter); + in long theNbIter, in boolean theApprox); /*! * Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices. diff --git a/idl/GEOM_Superv.idl b/idl/GEOM_Superv.idl index dcaecd95f..98d819daf 100644 --- a/idl/GEOM_Superv.idl +++ b/idl/GEOM_Superv.idl @@ -176,7 +176,7 @@ module GEOM GEOM_Object MakeFilling (in GEOM_Object theShape, in long theMinDeg, in long theMaxDeg, in double theTol2D, in double theTol3D, - in long theNbIter) ; + in long theNbIter, in boolean theApprox) ; GEOM_Object MakeThruSections(in ListOfGO theSeqSections, in boolean theModeSolid, in double thePreci, diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check.cxx b/src/DlgRef/DlgRef_1Sel5Spin1Check.cxx new file mode 100644 index 000000000..d683e9745 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel5Spin1Check.cxx @@ -0,0 +1,71 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// +// +// File : DlgRef_1Sel5Spin1Check.cxx +// Author : Vladimir TURIN +// Module : GEOM +// $Header: + +#include "DlgRef_1Sel5Spin1Check.h" + +#include +#include +#include + +/* + * Constructs a DlgRef_1Sel5Spin1Check which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +DlgRef_1Sel5Spin1Check::DlgRef_1Sel5Spin1Check(QWidget* parent, const char* name, WFlags fl) + :DlgRef_1Sel5Spin1Check_QTD(parent, name, fl) +{ + SpinBox1->close(TRUE); + SpinBox2->close(TRUE); + SpinBox3->close(TRUE); + SpinBox4->close(TRUE); + SpinBox5->close(TRUE); + + SpinBox_1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_1"); + Layout2->addWidget(SpinBox_1, 0, 1); + + SpinBox_2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_2"); + Layout2->addWidget(SpinBox_2, 0, 3); + + SpinBox_3 = new DlgRef_SpinBox(GroupBox1, "SpinBox_3"); + Layout2->addWidget(SpinBox_3, 2, 1); + + SpinBox_4 = new DlgRef_SpinBox(GroupBox1, "SpinBox_4"); + Layout2->addWidget(SpinBox_4, 1, 1); + + SpinBox_5 = new DlgRef_SpinBox(GroupBox1, "SpinBox_5"); + Layout2->addWidget(SpinBox_5, 1, 3); +} + + +/* + * Destroys the object and frees any allocated resources + */ +DlgRef_1Sel5Spin1Check::~DlgRef_1Sel5Spin1Check() +{ + // no need to delete child widgets, Qt does it all for us +} diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check.h b/src/DlgRef/DlgRef_1Sel5Spin1Check.h new file mode 100644 index 000000000..271839c42 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel5Spin1Check.h @@ -0,0 +1,53 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// +// +// File : DlgRef_1Sel5Spin1Check.h +// Author : Vladimir TURIN +// Module : GEOM +// $Header: + +#ifndef DLGREF_1SEL5SPIN_H +#define DLGREF_1SEL5SPIN_H + +#include "GEOM_DlgRef.hxx" + +#include "DlgRef_1Sel5Spin1Check_QTD.h" +#include "DlgRef_SpinBox.h" + +class GEOM_DLGREF_EXPORT DlgRef_1Sel5Spin1Check : public DlgRef_1Sel5Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel5Spin1Check( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + ~DlgRef_1Sel5Spin1Check(); + + DlgRef_SpinBox* SpinBox_1; + DlgRef_SpinBox* SpinBox_2; + DlgRef_SpinBox* SpinBox_3; + DlgRef_SpinBox* SpinBox_4; + DlgRef_SpinBox* SpinBox_5; + +}; + +#endif // DLGREF_1SEL5SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx new file mode 100644 index 000000000..27857593a --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx @@ -0,0 +1,150 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'DlgRef_1Sel5Spin1Check_QTD.ui' +** +** Created: Fri Feb 1 14:04:55 2008 +** by: The User Interface Compiler ($Id$) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ + +#include "DlgRef_1Sel5Spin1Check_QTD.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Constructs a DlgRef_1Sel5Spin1Check_QTD as a child of 'parent', with the + * name 'name' and widget flags set to 'f'. + */ +DlgRef_1Sel5Spin1Check_QTD::DlgRef_1Sel5Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) + : QWidget( parent, name, fl ) +{ + if ( !name ) + setName( "DlgRef_1Sel5Spin1Check_QTD" ); + DlgRef_1Sel5Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel5Spin1Check_QTDLayout"); + + GroupBox1 = new QGroupBox( this, "GroupBox1" ); + GroupBox1->setColumnLayout(0, Qt::Vertical ); + GroupBox1->layout()->setSpacing( 6 ); + GroupBox1->layout()->setMargin( 11 ); + GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); + GroupBox1Layout->setAlignment( Qt::AlignTop ); + + Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); + + TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); + TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); + + Layout1->addWidget( TextLabel1, 0, 0 ); + + PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); + PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); + + Layout1->addWidget( PushButton1, 0, 1 ); + + Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); + + SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); + SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( SpinBox2, 0, 3 ); + + SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); + SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( SpinBox3, 2, 1 ); + + TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); + TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( TextLabel5, 1, 0 ); + + TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); + TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( TextLabel3, 0, 2 ); + + TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); + TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( TextLabel4, 2, 0 ); + + SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); + SpinBox4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox4->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( SpinBox4, 1, 1 ); + + SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); + SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( SpinBox1, 0, 1 ); + + TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); + TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( TextLabel6, 1, 2 ); + + TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); + TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( TextLabel2, 0, 0 ); + + SpinBox5 = new QSpinBox( GroupBox1, "SpinBox5" ); + SpinBox5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox5->sizePolicy().hasHeightForWidth() ) ); + + Layout2->addWidget( SpinBox5, 1, 3 ); + + CheckBox1 = new QCheckBox( GroupBox1, "CheckBox1" ); + + Layout2->addMultiCellWidget( CheckBox1, 2, 2, 2, 3 ); + + Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); + Spacer6 = new QSpacerItem( 0, 120, QSizePolicy::Minimum, QSizePolicy::Expanding ); + Layout1->addItem( Spacer6, 2, 2 ); + + LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); + + Layout1->addWidget( LineEdit1, 0, 2 ); + + GroupBox1Layout->addLayout( Layout1, 0, 0 ); + + DlgRef_1Sel5Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); + languageChange(); + resize( QSize(162, 143).expandedTo(minimumSizeHint()) ); + clearWState( WState_Polished ); +} + +/* + * Destroys the object and frees any allocated resources + */ +DlgRef_1Sel5Spin1Check_QTD::~DlgRef_1Sel5Spin1Check_QTD() +{ + // no need to delete child widgets, Qt does it all for us +} + +/* + * Sets the strings of the subwidgets using the current + * language. + */ +void DlgRef_1Sel5Spin1Check_QTD::languageChange() +{ + setCaption( tr( "DlgRef_1Sel5Spin1Check_QTD" ) ); + GroupBox1->setTitle( QString::null ); + TextLabel1->setText( tr( "TL1" ) ); + PushButton1->setText( QString::null ); + TextLabel5->setText( tr( "TL5" ) ); + TextLabel3->setText( tr( "TL3" ) ); + TextLabel4->setText( tr( "TL4" ) ); + TextLabel6->setText( tr( "TL6" ) ); + TextLabel2->setText( tr( "TL2" ) ); + CheckBox1->setText( QString::null ); +} + diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h new file mode 100644 index 000000000..0f7fbc84b --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'DlgRef_1Sel5Spin1Check_QTD.ui' +** +** Created: Fri Feb 1 14:04:51 2008 +** by: The User Interface Compiler ($Id$) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ + +#ifndef DLGREF_1SEL5SPIN1CHECK_QTD_H +#define DLGREF_1SEL5SPIN1CHECK_QTD_H + +#include +#include + +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class QSpacerItem; +class QGroupBox; +class QLabel; +class QPushButton; +class QSpinBox; +class QCheckBox; +class QLineEdit; + +class DlgRef_1Sel5Spin1Check_QTD : public QWidget +{ + Q_OBJECT + +public: + DlgRef_1Sel5Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + ~DlgRef_1Sel5Spin1Check_QTD(); + + QGroupBox* GroupBox1; + QLabel* TextLabel1; + QPushButton* PushButton1; + QSpinBox* SpinBox2; + QSpinBox* SpinBox3; + QLabel* TextLabel5; + QLabel* TextLabel3; + QLabel* TextLabel4; + QSpinBox* SpinBox4; + QSpinBox* SpinBox1; + QLabel* TextLabel6; + QLabel* TextLabel2; + QSpinBox* SpinBox5; + QCheckBox* CheckBox1; + QLineEdit* LineEdit1; + +protected: + QGridLayout* DlgRef_1Sel5Spin1Check_QTDLayout; + QGridLayout* GroupBox1Layout; + QGridLayout* Layout1; + QSpacerItem* Spacer6; + QGridLayout* Layout2; + +protected slots: + virtual void languageChange(); + +}; + +#endif // DLGREF_1SEL5SPIN1CHECK_QTD_H diff --git a/src/DlgRef/Makefile.am b/src/DlgRef/Makefile.am index 4db37c6eb..960a9ad06 100644 --- a/src/DlgRef/Makefile.am +++ b/src/DlgRef/Makefile.am @@ -46,6 +46,7 @@ dist_libDlgRef_la_SOURCES = \ DlgRef_1Sel3Spin_QTD.cxx \ DlgRef_1Sel4Spin_QTD.cxx \ DlgRef_1Sel5Spin_QTD.cxx \ + DlgRef_1Sel5Spin1Check_QTD.cxx \ DlgRef_2Sel1Spin_QTD.cxx \ DlgRef_2Sel2Spin_QTD.cxx \ DlgRef_2Sel3Spin_QTD.cxx \ @@ -73,6 +74,7 @@ dist_libDlgRef_la_SOURCES = \ DlgRef_1Sel3Spin.cxx \ DlgRef_1Sel4Spin.cxx \ DlgRef_1Sel5Spin.cxx \ + DlgRef_1Sel5Spin1Check.cxx \ DlgRef_2Sel1Spin.cxx \ DlgRef_2Sel2Spin.cxx \ DlgRef_2Sel3Spin.cxx \ @@ -105,6 +107,7 @@ MOC_FILES = \ DlgRef_1Sel3Spin_QTD_moc.cxx \ DlgRef_1Sel4Spin_QTD_moc.cxx \ DlgRef_1Sel5Spin_QTD_moc.cxx \ + DlgRef_1Sel5Spin1Check_QTD_moc.cxx \ DlgRef_2Sel1Spin_QTD_moc.cxx \ DlgRef_2Sel2Spin_QTD_moc.cxx \ DlgRef_2Sel3Spin_QTD_moc.cxx \ @@ -132,6 +135,7 @@ MOC_FILES = \ DlgRef_1Sel3Spin_moc.cxx \ DlgRef_1Sel4Spin_moc.cxx \ DlgRef_1Sel5Spin_moc.cxx \ + DlgRef_1Sel5Spin1Check_moc.cxx \ DlgRef_2Sel1Spin_moc.cxx \ DlgRef_2Sel2Spin_moc.cxx \ DlgRef_2Sel3Spin_moc.cxx \ @@ -166,6 +170,7 @@ salomeinclude_HEADERS = \ DlgRef_1Sel3Spin_QTD.h \ DlgRef_1Sel4Spin_QTD.h \ DlgRef_1Sel5Spin_QTD.h \ + DlgRef_1Sel5Spin1Check_QTD.h \ DlgRef_2Sel1Spin_QTD.h \ DlgRef_2Sel2Spin_QTD.h \ DlgRef_2Sel3Spin_QTD.h \ @@ -193,6 +198,7 @@ salomeinclude_HEADERS = \ DlgRef_1Sel3Spin.h \ DlgRef_1Sel4Spin.h \ DlgRef_1Sel5Spin.h \ + DlgRef_1Sel5Spin1Check.h \ DlgRef_2Sel1Spin.h \ DlgRef_2Sel2Spin.h \ DlgRef_2Sel3Spin.h \ diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui new file mode 100644 index 000000000..155cbeca0 --- /dev/null +++ b/src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui @@ -0,0 +1,290 @@ + +DlgRef_1Sel5Spin1Check_QTD + + + DlgRef_1Sel5Spin1Check_QTD + + + + 0 + 0 + 162 + 143 + + + + DlgRef_1Sel5Spin1Check_QTD + + + + unnamed + + + 0 + + + 6 + + + + GroupBox1 + + + + + + + unnamed + + + 11 + + + 6 + + + + Layout1 + + + + unnamed + + + 0 + + + 6 + + + + TextLabel1 + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + + + PushButton1 + + + + 0 + 0 + 0 + 0 + + + + + + + + + Layout2 + + + + unnamed + + + 0 + + + 6 + + + + SpinBox2 + + + + 7 + 0 + 0 + 0 + + + + + + SpinBox3 + + + + 7 + 0 + 0 + 0 + + + + + + TextLabel5 + + + + 0 + 0 + 0 + 0 + + + + TL5 + + + + + TextLabel3 + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + + + TextLabel4 + + + + 0 + 0 + 0 + 0 + + + + TL4 + + + + + SpinBox4 + + + + 7 + 0 + 0 + 0 + + + + + + SpinBox1 + + + + 7 + 0 + 0 + 0 + + + + + + TextLabel6 + + + + 0 + 0 + 0 + 0 + + + + TL6 + + + + + TextLabel2 + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + + + SpinBox5 + + + + 7 + 0 + 0 + 0 + + + + + + CheckBox1 + + + + + + + + + + Spacer6 + + + Vertical + + + Expanding + + + + 0 + 120 + + + + + + LineEdit1 + + + + + + + + + + diff --git a/src/DlgRef/UIFiles/ui_to_cxx b/src/DlgRef/UIFiles/ui_to_cxx index d7a050dfd..60e5b024d 100755 --- a/src/DlgRef/UIFiles/ui_to_cxx +++ b/src/DlgRef/UIFiles/ui_to_cxx @@ -42,6 +42,9 @@ #uic -o DlgRef_1Sel5Spin_QTD.h DlgRef_1Sel5Spin_QTD.ui #uic -o DlgRef_1Sel5Spin_QTD.cxx -impl DlgRef_1Sel5Spin_QTD.h DlgRef_1Sel5Spin_QTD.ui +#uic -o DlgRef_1Sel5Spin1Check_QTD.h DlgRef_1Sel5Spin1Check_QTD.ui +#uic -o DlgRef_1Sel5Spin1Check_QTD.cxx -impl DlgRef_1Sel5Spin1Check_QTD.h DlgRef_1Sel5Spin1Check_QTD.ui + #uic -o DlgRef_1Sel1Check_QTD.h DlgRef_1Sel1Check_QTD.ui #uic -o DlgRef_1Sel1Check_QTD.cxx -impl DlgRef_1Sel1Check_QTD.h DlgRef_1Sel1Check_QTD.ui diff --git a/src/GEOM/GEOM_Gen_i.cc b/src/GEOM/GEOM_Gen_i.cc index 5e85a6195..f07429df9 100644 --- a/src/GEOM/GEOM_Gen_i.cc +++ b/src/GEOM/GEOM_Gen_i.cc @@ -3014,7 +3014,8 @@ GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFilling(GEOM::GEOM_Shape_ptr myShape, CORBA::Short maxdeg, CORBA::Double tol3d, CORBA::Double tol2d, - CORBA::Short nbiter) + CORBA::Short nbiter, + CORBA::Boolean theApprox) throw (SALOME::SALOME_Exception) { Unexpect aCatch(SALOME_SalomeException); @@ -3053,7 +3054,7 @@ GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFilling(GEOM::GEOM_Shape_ptr myShape, Handle(GeomFill_Line) Line = new GeomFill_Line(i) ; GeomFill_AppSurf App(mindeg, maxdeg, tol3d, tol2d, nbiter) ; /* user parameters */ - App.Perform(Line, Section) ; + App.Perform(Line, Section, theApprox) ; if (!App.IsDone()) { THROW_SALOME_CORBA_EXCEPTION("Filling aborted : non valid shape result", SALOME::BAD_PARAM); diff --git a/src/GEOMGUI/GEOM_msg_en.po b/src/GEOMGUI/GEOM_msg_en.po index 7a4a29d8d..11e004ab0 100644 --- a/src/GEOMGUI/GEOM_msg_en.po +++ b/src/GEOMGUI/GEOM_msg_en.po @@ -1012,6 +1012,10 @@ msgstr "Tol. 3D :" msgid "GEOM_FILLING_NB_ITER" msgstr "Nb. Iter :" +#: GeometryGUI_FillingDlg.cxx:84 +msgid "GEOM_FILLING_APPROX" +msgstr "Approximation" + #: GeometryGUI_FuseDlg.cxx:48 msgid "GEOM_FUSE_TITLE" msgstr "BOOLEAN : Fuse Two Objects" diff --git a/src/GEOMImpl/GEOMImpl_FillingDriver.cxx b/src/GEOMImpl/GEOMImpl_FillingDriver.cxx index f37a2176a..d17febfd2 100644 --- a/src/GEOMImpl/GEOMImpl_FillingDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_FillingDriver.cxx @@ -88,6 +88,7 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const Standard_Real tol3d = IF.GetTol2D(); Standard_Real tol2d = IF.GetTol3D(); Standard_Integer nbiter = IF.GetNbIter(); + Standard_Boolean isApprox = IF.GetApprox(); if (mindeg > maxdeg) { Standard_RangeError::Raise("Minimal degree can not be more than maximal degree"); @@ -115,7 +116,7 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const Handle(GeomFill_Line) Line = new GeomFill_Line(i); GeomFill_AppSurf App (mindeg, maxdeg, tol3d, tol2d, nbiter); /* user parameters */ - App.Perform(Line, Section); + App.Perform(Line, Section, isApprox); if (!App.IsDone()) return 0; Standard_Integer UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots; diff --git a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx index 6eefda984..a1c554544 100644 --- a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx @@ -1110,7 +1110,7 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeSolidShell (Handle(GEOM_Obje //============================================================================= Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeFilling (Handle(GEOM_Object) theShape, int theMinDeg, int theMaxDeg, - double theTol2D, double theTol3D, int theNbIter) + double theTol2D, double theTol3D, int theNbIter, bool isApprox) { SetErrorCode(KO); @@ -1138,6 +1138,7 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeFilling aFI.SetTol2D(theTol2D); aFI.SetTol3D(theTol3D); aFI.SetNbIter(theNbIter); + aFI.SetApprox(isApprox); //Compute the Solid value try { @@ -1159,9 +1160,13 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeFilling } //Make a Python command - GEOM::TPythonDump(aFunction) << aFilling << " = geompy.MakeFilling(" + GEOM::TPythonDump pd (aFunction); + pd << aFilling << " = geompy.MakeFilling(" << theShape << ", " << theMinDeg << ", " << theMaxDeg << ", " - << theTol2D << ", " << theTol3D << ", " << theNbIter << ")"; + << theTol2D << ", " << theTol3D << ", " << theNbIter; + if(isApprox) + pd << ", " << isApprox; + pd << ")"; SetErrorCode(OK); return aFilling; diff --git a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx index f87ddd5d5..5f1f52f36 100644 --- a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx @@ -83,7 +83,7 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations { Standard_EXPORT Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell); - Standard_EXPORT Handle(GEOM_Object) MakeFilling (Handle(GEOM_Object) theShape, int theMinDeg, int theMaxDeg, double theTol2D, double theTol3D, int theNbIter); + Standard_EXPORT Handle(GEOM_Object) MakeFilling (Handle(GEOM_Object) theShape, int theMinDeg, int theMaxDeg, double theTol2D, double theTol3D, int theNbIter, bool isApprox); Standard_EXPORT Handle(GEOM_Object) MakeThruSections(const Handle(TColStd_HSequenceOfTransient)& theSeqSections, bool theModeSolid, diff --git a/src/GEOMImpl/GEOMImpl_IFilling.hxx b/src/GEOMImpl/GEOMImpl_IFilling.hxx index d4269bf19..f8fbae645 100644 --- a/src/GEOMImpl/GEOMImpl_IFilling.hxx +++ b/src/GEOMImpl/GEOMImpl_IFilling.hxx @@ -28,6 +28,7 @@ #define FILL_ARG_TOL3D 4 #define FILL_ARG_SHAPE 5 #define FILL_ARG_NBITER 6 +#define FILL_ARG_APPROX 7 class GEOMImpl_IFilling { @@ -47,6 +48,9 @@ class GEOMImpl_IFilling void SetNbIter(int theNbIter) { _func->SetInteger(FILL_ARG_NBITER, theNbIter); } int GetNbIter() { return _func->GetInteger(FILL_ARG_NBITER); } + void SetApprox(bool theApprox) { _func->SetInteger(FILL_ARG_APPROX, theApprox); } + bool GetApprox() { return _func->GetInteger(FILL_ARG_APPROX); } + void SetShape(Handle(GEOM_Function) theShape) { _func->SetReference(FILL_ARG_SHAPE, theShape); } Handle(GEOM_Function) GetShape() { return _func->GetReference(FILL_ARG_SHAPE); } diff --git a/src/GEOM_I/GEOM_I3DPrimOperations_i.cc b/src/GEOM_I/GEOM_I3DPrimOperations_i.cc index 207c99708..55160f0fb 100644 --- a/src/GEOM_I/GEOM_I3DPrimOperations_i.cc +++ b/src/GEOM_I/GEOM_I3DPrimOperations_i.cc @@ -567,7 +567,8 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeFilling(GEOM::GEOM_Object_pt CORBA::Long theMaxDeg, CORBA::Double theTol2D, CORBA::Double theTol3D, - CORBA::Long theNbIter) + CORBA::Long theNbIter, + CORBA::Boolean theApprox) { GEOM::GEOM_Object_var aGEOMObject; @@ -583,7 +584,7 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeFilling(GEOM::GEOM_Object_pt if (aShape.IsNull()) return aGEOMObject._retn(); //Create the Solid - Handle(GEOM_Object) anObject = GetOperations()->MakeFilling(aShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter); + Handle(GEOM_Object) anObject = GetOperations()->MakeFilling(aShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, theApprox); if (!GetOperations()->IsDone() || anObject.IsNull()) return aGEOMObject._retn(); diff --git a/src/GEOM_I/GEOM_I3DPrimOperations_i.hh b/src/GEOM_I/GEOM_I3DPrimOperations_i.hh index f0397e5e9..330f4974b 100644 --- a/src/GEOM_I/GEOM_I3DPrimOperations_i.hh +++ b/src/GEOM_I/GEOM_I3DPrimOperations_i.hh @@ -105,7 +105,7 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i : GEOM::GEOM_Object_ptr theAxis, CORBA::Double theAngle); - GEOM::GEOM_Object_ptr MakeFilling(GEOM::GEOM_Object_ptr theShape, CORBA::Long theMinDeg, CORBA::Long theMaxDeg, CORBA::Double theTol2D, CORBA::Double theTol3D, CORBA::Long theNbIter); + GEOM::GEOM_Object_ptr MakeFilling(GEOM::GEOM_Object_ptr theShape, CORBA::Long theMinDeg, CORBA::Long theMaxDeg, CORBA::Double theTol2D, CORBA::Double theTol3D, CORBA::Long theNbIter, CORBA::Boolean theApprox); GEOM::GEOM_Object_ptr MakeThruSections(const GEOM::ListOfGO& theSeqSections, CORBA::Boolean theModeSolid, diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.cc b/src/GEOM_I_Superv/GEOM_Superv_i.cc index ba79c1791..520fbc2fe 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.cc +++ b/src/GEOM_I_Superv/GEOM_Superv_i.cc @@ -1019,12 +1019,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Ob GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilling (GEOM::GEOM_Object_ptr theShape, CORBA::Long theMinDeg, CORBA::Long theMaxDeg, CORBA::Double theTol2D, CORBA::Double theTol3D, - CORBA::Long theNbIter) + CORBA::Long theNbIter, CORBA::Boolean theApprox) { beginService( " GEOM_Superv_i::MakeFilling" ); MESSAGE("GEOM_Superv_i::MakeFilling"); get3DPrimOp(); - GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, theApprox); endService( " GEOM_Superv_i::MakeFilling" ); return anObj; } diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.hh b/src/GEOM_I_Superv/GEOM_Superv_i.hh index 18993469f..3cb1ffd25 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.hh +++ b/src/GEOM_I_Superv/GEOM_Superv_i.hh @@ -237,7 +237,7 @@ public: GEOM::GEOM_Object_ptr MakeFilling (GEOM::GEOM_Object_ptr theShape, CORBA::Long theMinDeg, CORBA::Long theMaxDeg, CORBA::Double theTol2D, CORBA::Double theTol3D, - CORBA::Long theNbIter); + CORBA::Long theNbIter, CORBA::Boolean theApprox); GEOM::GEOM_Object_ptr MakeThruSections(const GEOM::ListOfGO& theSeqSections, CORBA::Boolean theModeSolid, diff --git a/src/GEOM_SWIG/batchmode_geompy.py b/src/GEOM_SWIG/batchmode_geompy.py index 6485368cf..3ca8d022f 100644 --- a/src/GEOM_SWIG/batchmode_geompy.py +++ b/src/GEOM_SWIG/batchmode_geompy.py @@ -700,8 +700,8 @@ def MakeCopy(aShape): print "MakeCopy : ", InsertOp.GetErrorCode() return anObj -def MakeFilling(aShape,mindeg,maxdeg,tol2d,tol3d,nbiter): - anObj = PrimOp.MakeFilling(aShape,mindeg,maxdeg,tol2d,tol3d,nbiter) +def MakeFilling(aShape,mindeg,maxdeg,tol2d,tol3d,nbiter,isApprox=0): + anObj = PrimOp.MakeFilling(aShape,mindeg,maxdeg,tol2d,tol3d,nbiter,isApprox) if PrimOp.IsDone() == 0: print "MakeFilling : ", PrimOp.GetErrorCode() return anObj diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py index 415ff983b..2f37c4e86 100644 --- a/src/GEOM_SWIG/geompyDC.py +++ b/src/GEOM_SWIG/geompyDC.py @@ -1379,8 +1379,8 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing the created filling surface. # # Example: see GEOM_TestAll.py - def MakeFilling(self,theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter): - anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter) + def MakeFilling(self,theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox=0): + anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox) RaiseIfFailed("MakeFilling", self.PrimOp) return anObj diff --git a/src/GenerationGUI/GenerationGUI_FillingDlg.cxx b/src/GenerationGUI/GenerationGUI_FillingDlg.cxx index 64d13f3e7..9f6bc2c60 100644 --- a/src/GenerationGUI/GenerationGUI_FillingDlg.cxx +++ b/src/GenerationGUI/GenerationGUI_FillingDlg.cxx @@ -46,6 +46,7 @@ #include "GEOMImpl_Types.hxx" #include +#include #include "utilities.h" @@ -72,7 +73,7 @@ GenerationGUI_FillingDlg::GenerationGUI_FillingDlg(GeometryGUI* theGeometryGUI, RadioButton2->close(TRUE); RadioButton3->close(TRUE); - GroupPoints = new DlgRef_1Sel5Spin(this, "GroupPoints"); + GroupPoints = new DlgRef_1Sel5Spin1Check(this, "GroupPoints"); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_FILLING_COMPOUND")); GroupPoints->TextLabel2->setText(tr("GEOM_FILLING_MIN_DEG")); @@ -80,13 +81,14 @@ GenerationGUI_FillingDlg::GenerationGUI_FillingDlg(GeometryGUI* theGeometryGUI, GroupPoints->TextLabel4->setText(tr("GEOM_FILLING_NB_ITER")); GroupPoints->TextLabel5->setText(tr("GEOM_FILLING_MAX_DEG")); GroupPoints->TextLabel6->setText(tr("GEOM_FILLING_TOL_3D")); + GroupPoints->CheckBox1->setText(tr("GEOM_FILLING_APPROX")); GroupPoints->PushButton1->setPixmap(image1); GroupPoints->LineEdit1->setReadOnly( true ); Layout1->addWidget(GroupPoints, 2, 0); /***************************************************************/ - setHelpFileName("creaet_filling_page.html"); + setHelpFileName("create_filling_page.html"); /* Initialisations */ Init(); @@ -116,6 +118,7 @@ void GenerationGUI_FillingDlg::Init() myTol3D = 0.0001; myTol2D = 0.0001; myNbIter = 5; + myIsApprox = false; myOkCompound = false; globalSelection( GEOM_COMPOUND ); @@ -147,6 +150,7 @@ void GenerationGUI_FillingDlg::Init() connect(GroupPoints->SpinBox_3, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupPoints->SpinBox_4, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupPoints->SpinBox_5, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect(GroupPoints->CheckBox1, SIGNAL(stateChanged(int)), this, SLOT(ApproxChanged())); connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_1, SLOT(SetStep(double))); connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_2, SLOT(SetStep(double))); @@ -309,6 +313,16 @@ void GenerationGUI_FillingDlg::ValueChangedInSpinBox(double newValue) displayPreview(); } +//================================================================================= +// function : ApproxChanged() +// purpose : +//================================================================================= +void GenerationGUI_FillingDlg::ApproxChanged() +{ + myIsApprox = GroupPoints->CheckBox1->isChecked(); + displayPreview(); +} + //================================================================================= // function : createOperation // purpose : @@ -336,7 +350,7 @@ bool GenerationGUI_FillingDlg::execute( ObjectList& objects ) GEOM::GEOM_Object_var anObj; anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation() )->MakeFilling( - myCompound, myMinDeg, myMaxDeg, myTol2D, myTol3D, myNbIter ); + myCompound, myMinDeg, myMaxDeg, myTol2D, myTol3D, myNbIter, myIsApprox ); if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() ); diff --git a/src/GenerationGUI/GenerationGUI_FillingDlg.h b/src/GenerationGUI/GenerationGUI_FillingDlg.h index e4691b97e..67d70b837 100644 --- a/src/GenerationGUI/GenerationGUI_FillingDlg.h +++ b/src/GenerationGUI/GenerationGUI_FillingDlg.h @@ -31,7 +31,7 @@ #include "GenerationGUI.h" #include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel5Spin.h" +#include "DlgRef_1Sel5Spin1Check.h" //================================================================================= // class : GenerationGUI_FillingDlg @@ -62,9 +62,10 @@ private: Standard_Real myTol3D; Standard_Real myTol2D; Standard_Integer myNbIter; + bool myIsApprox; bool myOkCompound; /* to check when curv. compound is defined */ - DlgRef_1Sel5Spin* GroupPoints; + DlgRef_1Sel5Spin1Check* GroupPoints; private slots: void ClickOnOk(); @@ -74,6 +75,7 @@ private slots: void SelectionIntoArgument(); void SetEditCurrentArgument(); void ValueChangedInSpinBox(double newValue); + void ApproxChanged(); }; #endif // DIALOGBOX_FILLING_H -- 2.39.2