]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Fix bug 15646: Problem with GlueFaces operation.
authorjfa <jfa@opencascade.com>
Tue, 10 Jul 2007 08:43:38 +0000 (08:43 +0000)
committerjfa <jfa@opencascade.com>
Tue, 10 Jul 2007 08:43:38 +0000 (08:43 +0000)
16 files changed:
idl/GEOM_Gen.idl
idl/GEOM_Superv.idl
resources/GEOMCatalog.xml.in
src/GEOMAlgo/GEOMAlgo_Gluer.cxx
src/GEOMAlgo/GEOMAlgo_Gluer.hxx
src/GEOMImpl/GEOMImpl_GlueDriver.cxx
src/GEOMImpl/GEOMImpl_GlueDriver.hxx
src/GEOMImpl/GEOMImpl_IGlue.hxx
src/GEOMImpl/GEOMImpl_IShapesOperations.cxx
src/GEOMImpl/GEOMImpl_IShapesOperations.hxx
src/GEOM_I/GEOM_IShapesOperations_i.cc
src/GEOM_I/GEOM_IShapesOperations_i.hh
src/GEOM_I_Superv/GEOM_Superv_i.cc
src/GEOM_I_Superv/GEOM_Superv_i.hh
src/GEOM_SWIG/geompy.py
src/RepairGUI/RepairGUI_GlueDlg.cxx

index d9c4d61dc4d0da8032d255da4024eb09ff51da27..bed796e59c3461e80d44e73aa3fbaa1c033c3c37 100644 (file)
@@ -985,9 +985,10 @@ module GEOM
      *  Replace coincident faces in theShape by one face.
      *  \param theShape Initial shape.
      *  \param theTolerance Maximum distance between faces, which can be considered as coincident.
+     *  \param doKeepNonSolids If FALSE, only solids will present in the result, otherwise all initial shapes.
      *  \return New GEOM_Object, containing a copy of theShape without coincident faces.
      */
-    GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance);
+    GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance, in boolean doKeepNonSolids);
 
     /*!
      *  Find coincident faces in theShape for possible gluing.
@@ -1003,10 +1004,11 @@ module GEOM
      *  \param theShape Initial shape.
      *  \param theTolerance Maximum distance between faces, which can be considered as coincident.
      *  \param theFaces List of faces for gluing.
+     *  \param doKeepNonSolids If FALSE, only solids will present in the result, otherwise all initial shapes.
      *  \return New GEOM_Object, containing a copy of theShape without some faces.
      */
     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance,
-                                    in ListOfGO theFaces);
+                                    in ListOfGO theFaces, in boolean doKeepNonSolids);
 
     /*!
      *  Explode a shape on subshapes of a given type.
index 5ba10377c7fa4236e9ca9e75c9233ae79469afdb..4ad14db98f405e221cf56fdcfd7537b30666cad0 100644 (file)
@@ -313,12 +313,14 @@ module GEOM
     GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
     GEOM_Object MakeCompound (in GEOM_List theShapes) ;
     GEOM_Object MakeGlueFaces (in GEOM_Object theShape, 
-                              in double theTolerance);
+                              in double theTolerance,
+                              in boolean doKeepNonSolids);
     GEOM_List GetGlueFaces (in GEOM_Object theShape, 
                            in double theTolerance);
     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, 
                                     in double theTolerance,
-                                    in ListOfGO theFaces);
+                                    in ListOfGO theFaces,
+                                    in boolean doKeepNonSolids);
     GEOM_List MakeExplode (in GEOM_Object theShape,
                           in long        theShapeType,
                           in boolean     isSorted) ;
index 4b05e9c22168fb8c52acfdaf8625effd357a7575..2a3f4aa094b9279903d727f6c2b952175675fbb1 100644 (file)
                     </outParameter-list>
                     <DataStream-list></DataStream-list>
                 </component-service>
+                    <component-service>
+                        <service-name>GetDumpName</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theStudyEntry</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>string</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllDumpNames</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>string_array</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
             </component-service-list>
         </component-interface-list>
     <constraint>hostname = localhost</constraint>
             <component-name>GEOM_Superv</component-name>
             <component-username>GEOM_Superv</component-username>
             <component-type>OTHER</component-type>
-            <component-author>mkr</component-author>
+            <component-author></component-author>
             <component-version>@VERSION@</component-version>
             <component-comment>Supervision wrapper for Geometry component</component-comment>
             <component-multistudy>1</component-multistudy>
-           <component-impltype>1</component-impltype>
+            <component-impltype>1</component-impltype>
             <component-icone></component-icone>
             <constraint></constraint>
             <component-interface-list>
                 <component-service-list>
                     <component-service>
                         <service-name>SetStudyID</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateListOfGO</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddItemToListOfGO</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateListOfLong</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddItemToListOfLong</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateListOfDouble</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddItemToListOfDouble</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePointXYZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePointWithReference</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePointOnCurve</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theRefCurve</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theParameter</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakeTangentOnCurve</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeVectorDXDYDZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeVectorTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeLineTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePlaneThreePnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePlanePntVec</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePlaneFace</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeMarker</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>MakeTangentPlaneOnFace</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theFace</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theParameterU</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theParameterV</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theTrimSize</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>MakeBox</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeBoxDXDYDZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeBoxTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCylinderPntVecRH</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCylinderRH</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSphere</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSphereR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSpherePntR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeTorusPntVecRR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeTorusRR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeConePntVecR1R2H</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeConeR1R2H</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePrismVecH</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePrismTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePipe</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeRevolutionAxisAngle</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilling</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>MakeThruSections</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theSeqSections</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theModeSolid</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>thePreci</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theRuled</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakePipeWithDifferentSections</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theSeqBases</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theLocations</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>thePath</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithContact</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithCorrection</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakePipeWithShellSections</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theSeqBases</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theSeqSubBases</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theLocations</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>thePath</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithContact</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithCorrection</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>MakeBoolean</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFuse</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePartition</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                                 <inParameter-type>GEOM_List</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
+                            <inParameter>
+                                <inParameter-name>theKeepNonlimitShapes</inParameter-name>
+                                <inParameter-type>short</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
                         </inParameter-list>
                         <outParameter-list>
                             <outParameter>
                     </component-service>
                     <component-service>
                         <service-name>MakeHalfPartition</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>Export</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>Import</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ImportTranslators</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ExportTranslators</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateTwoPoints</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateTwoPointsCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateDXDYDZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateDXDYDZCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateVector</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateVectorCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiTranslate1D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiTranslate2D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>Rotate</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RotateCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RotateThreePoints</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RotateThreePointsCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiRotate1D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiRotate2D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPlane</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPlaneCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorAxis</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorAxisCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPointCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>OffsetShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>OffsetShapeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ScaleShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ScaleShapeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>PositionShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>PositionShapeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeEdge</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeWire</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFace</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFaceWires</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeShell</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSolidShell</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSolidShells</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCompound</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeGlueFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theShape</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theTolerance</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>doKeepNonSolids</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetGlueFaces</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                         </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_List</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakeGlueFacesByList</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theShape</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theTolerance</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theFaces</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>doKeepNonSolids</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
                     </component-service>
                     <component-service>
                         <service-name>MakeExplode</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>NumberOfFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>NumberOfEdges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ChangeOrientation</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeQuad4Vertices</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeQuad</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeQuad2Edges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeHexa</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeHexa2Faces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetEdge</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetEdgeNearPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceByPoints</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceByEdges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetOppositeFace</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceNearPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceByNormale</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>IsCompoundOfBlocks</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
-                                <outParameter-type>long</outParameter-type>
+                                <outParameter-type>boolean</outParameter-type>
                                 <outParameter-comment>unknown</outParameter-comment>
                             </outParameter>
                             <outParameter>
                     </component-service>
                     <component-service>
                         <service-name>CheckCompoundOfBlocks</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
-                                <outParameter-type>long</outParameter-type>
+                                <outParameter-type>boolean</outParameter-type>
                                 <outParameter-comment>unknown</outParameter-comment>
                             </outParameter>
                             <outParameter>
                     </component-service>
                     <component-service>
                         <service-name>PrintBCErrors</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ExplodeCompoundOfBlocks</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetBlockNearPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetBlockByParts</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetBlocksByParts</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeMultiTransformation1D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeMultiTransformation2D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCirclePntVecR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCircleThreePnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeEllipse</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeArc</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeArcCenter</service-name>
-                        <service-author>ngr</service-author>
-                        <service-version>3.2.6</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                             </outParameter>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
-                    </component-service>                    <component-service>
+                    </component-service>
+                    <component-service>
                         <service-name>MakePolyline</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSplineBezier</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSplineInterpolation</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSketcher</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilletAll</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilletEdges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilletFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeChamferAll</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeChamferEdge</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeChamferFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeArchimede</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetSubShapeIndex</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateGroup</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddObject</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RemoveObject</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetType</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetMainShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetObjects</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
index 9c27ede442c09280fd084daecf518600df92129d..0d1b7707cd1f4b74eaf8d1f9219ada8fa8a9df41 100755 (executable)
@@ -102,6 +102,7 @@ GEOMAlgo_Gluer::GEOMAlgo_Gluer()
   myTolerance=0.0001;
   myTol=myTolerance;
   myCheckGeometry=Standard_True;
+  myKeepNonSolids=Standard_False;
   myNbAlone=0;
 }
 //=======================================================================
@@ -128,6 +129,14 @@ Standard_Boolean GEOMAlgo_Gluer::CheckGeometry() const
   return myCheckGeometry;
 }
 //=======================================================================
+//function : SetKeepNonSolids
+//purpose  : 
+//=======================================================================
+void GEOMAlgo_Gluer::SetKeepNonSolids(const Standard_Boolean aFlag)
+{
+  myKeepNonSolids=aFlag;
+}
+//=======================================================================
 //function : AloneShapes
 //purpose  : 
 //=======================================================================
@@ -356,39 +365,45 @@ void GEOMAlgo_Gluer::MakeVertices()
   }
 }
 //=======================================================================
-//function : MakeSolids
+//function : MakeSubShapes
 //purpose  : 
 //=======================================================================
-void GEOMAlgo_Gluer::MakeSolids()
+void GEOMAlgo_Gluer::MakeSubShapes (const TopoDS_Shape&  theShape,
+                                    TopTools_MapOfShape& theMS,
+                                    TopoDS_Compound&     theResult)
 {
-  myErrorStatus=0;
+  if (theMS.Contains(theShape))
+    return;
   //
-  Standard_Integer aNbS;
-  TopAbs_Orientation anOr;
-  TopoDS_Compound aCmp;
-  TopoDS_Solid aNewSolid;
-  TopTools_IndexedMapOfShape aMS;
-  TopExp_Explorer aExpS, aExp;
   BRep_Builder aBB;
   //
-  aBB.MakeCompound(aCmp);
+  theMS.Add(theShape);
   //
-  aNbS=aMS.Extent();
-  aExpS.Init(myShape, TopAbs_SOLID);
-  for (; aExpS.More(); aExpS.Next()) {
-    const TopoDS_Solid& aSolid=TopoDS::Solid(aExpS.Current());
-    if (aMS.Contains(aSolid)) {
-      continue;
+  if (theShape.ShapeType() == TopAbs_COMPOUND ||
+      theShape.ShapeType() == TopAbs_COMPSOLID)
+  {
+    TopoDS_Iterator It (theShape, Standard_True, Standard_True);
+    for (; It.More(); It.Next())
+    {
+      MakeSubShapes(It.Value(), theMS, theResult);
     }
-    aMS.Add(aSolid);
+  }
+  else if (theShape.ShapeType() == TopAbs_SOLID)
+  {
+    // build a solid
+    TopoDS_Solid aNewSolid;
+    TopExp_Explorer aExpS, aExp;
     //
-    anOr=aSolid.Orientation();
+    const TopoDS_Solid& aSolid = TopoDS::Solid(theShape);
+    //
+    TopAbs_Orientation anOr = aSolid.Orientation();
     //
     aBB.MakeSolid(aNewSolid);
     aNewSolid.Orientation(anOr);
     //
     aExp.Init(aSolid, TopAbs_SHELL);
-    for (; aExp.More(); aExp.Next()) {
+    for (; aExp.More(); aExp.Next())
+    {
       const TopoDS_Shape& aShell=aExp.Current();
       const TopoDS_Shape& aShellR=myOrigins.Find(aShell);
       aBB.Add(aNewSolid, aShellR);
@@ -400,14 +415,39 @@ void GEOMAlgo_Gluer::MakeSolids()
     myImages.Bind(aNewSolid, aLS);
     myOrigins.Bind(aSolid, aNewSolid);
     //
-    aBB.Add(aCmp, aNewSolid);
+    aBB.Add(theResult, aNewSolid);
   }
+  else
+  {
+    if (myKeepNonSolids)
+    {
+      // just add image
+      const TopoDS_Shape& aShapeR = myOrigins.Find(theShape);
+      aBB.Add(theResult, aShapeR);
+    }
+  }
+}
+//=======================================================================
+//function : MakeSolids
+//purpose  : 
+//=======================================================================
+void GEOMAlgo_Gluer::MakeSolids()
+{
+  myErrorStatus=0;
+  //
+  BRep_Builder aBB;
+  TopoDS_Compound aCmp;
+  TopTools_MapOfShape aMS;
+  //
+  aBB.MakeCompound(aCmp);
+  //
+  // Add images of all initial sub-shapes in the result.
+  // If myKeepNonSolids==false, add only solids images.
+  MakeSubShapes(myShape, aMS, aCmp);
   //
   myResult=aCmp;
   //
-  aNbS=aMS.Extent();
-  if (aNbS) {
-    Standard_Real aTol=1.e-7;
+  if (aMS.Extent()) {
     BOP_CorrectTolerances::CorrectCurveOnSurface(myResult);
   }
 }
index 0f8a871ab08d4b807fa3bfa602b42b1ef8adbbb0..5ca326149aa9b810af5f3a0e47d7f5d4e6fba339 100644 (file)
 #ifndef _TopTools_ListOfShape_HeaderFile
 #include <TopTools_ListOfShape.hxx>
 #endif
+#ifndef _TopTools_MapOfShape_HeaderFile
+#include <TopTools_MapOfShape.hxx>
+#endif
 #ifndef _GEOMAlgo_ShapeAlgo_HeaderFile
 #include <GEOMAlgo_ShapeAlgo.hxx>
 #endif
 #ifndef _TopAbs_ShapeEnum_HeaderFile
 #include <TopAbs_ShapeEnum.hxx>
 #endif
+#ifndef _TopoDS_Compound_HeaderFile
+#include <TopoDS_Compound.hxx>
+#endif
 class TopTools_ListOfShape;
 class TopoDS_Shape;
 class TopoDS_Edge;
@@ -92,6 +98,9 @@ Standard_EXPORT   void SetCheckGeometry(const Standard_Boolean aFlag) ;
 Standard_EXPORT   Standard_Boolean CheckGeometry() const;
 
 
+Standard_EXPORT   void SetKeepNonSolids(const Standard_Boolean aFlag) ;
+
+
 Standard_EXPORT virtual  void Perform() ;
 
 
@@ -143,6 +152,11 @@ Standard_EXPORT   void MakeShapes(const TopAbs_ShapeEnum aType) ;
 Standard_EXPORT   void MakeShells() ;
 
 
+Standard_EXPORT   void MakeSubShapes(const TopoDS_Shape& theShape,
+                                     TopTools_MapOfShape& theMS,
+                                     TopoDS_Compound& theResult);
+
+
 Standard_EXPORT   void MakeSolids() ;
 
 
@@ -173,6 +187,7 @@ Standard_EXPORT   Standard_Boolean HasNewSubShape(const TopoDS_Shape& aS) const;
  // Fields PROTECTED
  //
 Standard_Boolean myCheckGeometry;
+Standard_Boolean myKeepNonSolids;
 Standard_Real myTol;
 TopTools_DataMapOfShapeListOfShape myImages;
 TopTools_DataMapOfShapeShape myOrigins;
index e056bf7d8479911ee17f766f9e23c45e3fc7838a..ec18620ffdb16e1d45b213e626408cfc37312d28 100644 (file)
@@ -73,6 +73,7 @@ const Standard_GUID& GEOMImpl_GlueDriver::GetID()
 //=======================================================================
 TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& theShape,
                                                          const Standard_Real theTolerance,
+                                                         const Standard_Boolean doKeepNonSolids,
                                                          TCollection_AsciiString& theWarning) const
 {
   Standard_Integer iErr, iWrn;
@@ -82,6 +83,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& the
   aGluer.SetShape(theShape);
   aGluer.SetTolerance(theTolerance);
   aGluer.SetCheckGeometry(Standard_True);
+  aGluer.SetKeepNonSolids(doKeepNonSolids);
 
   aGluer.Perform();
 
@@ -197,7 +199,8 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& the
 //purpose  :
 //=======================================================================
 TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
-                                             const Standard_Real theTolerance)
+                                             const Standard_Real theTolerance,
+                                             const Standard_Boolean doKeepNonSolids)
 {
   Standard_Integer iErr, iWrn;
   TopoDS_Shape aRes;
@@ -206,6 +209,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
   aGluer.SetShape(theShape);
   aGluer.SetTolerance(theTolerance);
   aGluer.SetCheckGeometry(Standard_True);
+  aGluer.SetKeepNonSolids(doKeepNonSolids);
 
   aGluer.Perform();
 
@@ -261,6 +265,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
 //=======================================================================
 TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesByList (const TopoDS_Shape& theShape,
                                                   const Standard_Real theTolerance,
+                                                   const Standard_Boolean doKeepNonSolids,
                                                   const TopTools_MapOfShape& aFaces)
 {
   TopoDS_Shape aRes;
@@ -272,6 +277,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesByList (const TopoDS_Shape& theShape,
 
   aGluer.SetShape(theShape);
   aGluer.SetTolerance(theTolerance);
+  aGluer.SetKeepNonSolids(doKeepNonSolids);
   aGluer.Perform();
   Standard_Integer iErr = aGluer.ErrorStatus();
   if (iErr) return aRes;
@@ -327,8 +333,10 @@ Standard_Integer GEOMImpl_GlueDriver::Execute(TFunction_Logbook& log) const
 
   Standard_Real tol3d = aCI.GetTolerance();
 
+  Standard_Boolean aKeepNonSolids = aCI.GetKeepNonSolids();
+
   if (aType == GLUE_FACES) {
-    aShape = GlueFacesWithWarnings(aShapeBase, tol3d, aWrn);
+    aShape = GlueFacesWithWarnings(aShapeBase, tol3d, aKeepNonSolids, aWrn);
   }
   else { // aType == GLUE_FACES_BY_LIST
     Handle(TColStd_HSequenceOfTransient) SF = aCI.GetFaces();
@@ -347,7 +355,7 @@ Standard_Integer GEOMImpl_GlueDriver::Execute(TFunction_Logbook& log) const
       if(!aFaces.Contains(aFace))
        aFaces.Add(aFace);
     }
-    aShape = GlueFacesByList(aShapeBase, tol3d, aFaces);
+    aShape = GlueFacesByList(aShapeBase, tol3d, aKeepNonSolids, aFaces);
   }
 
   if (aShape.IsNull()) return 0;
index eee00b868d75f9e096b733a9b066e7bae9d624cd..e7c3befa849c93a28e0484cf4cec58044f01a348 100644 (file)
@@ -150,14 +150,17 @@ Standard_EXPORT static const Standard_GUID& GetID();
 Standard_EXPORT ~GEOMImpl_GlueDriver() {};
 
 Standard_EXPORT static TopoDS_Shape GlueFaces (const TopoDS_Shape& theShape,
-                                               const Standard_Real theTolerance);
+                                               const Standard_Real theTolerance,
+                                               const Standard_Boolean doKeepNonSolids = Standard_True);
 
 Standard_EXPORT TopoDS_Shape GlueFacesWithWarnings (const TopoDS_Shape& theShape,
                                                     const Standard_Real theTolerance,
+                                                    const Standard_Boolean doKeepNonSolids,
                                                     TCollection_AsciiString& theWarning) const;
 
 Standard_EXPORT static TopoDS_Shape GlueFacesByList (const TopoDS_Shape& theShape,
                                                     const Standard_Real theTolerance,
+                                                     const Standard_Boolean doKeepNonSolids,
                                                     const TopTools_MapOfShape& aFaces);
 
 
index 7670ed70a65f14d3a49c0eae88aafa42b7046e39..e6e269221b7494f093bfc5894b327332d816b23d 100644 (file)
@@ -27,6 +27,7 @@
 #define GLUE_ARG_BASE   1
 #define GLUE_ARG_TOLER  2
 #define GLUE_ARG_FACES  3
+#define GLUE_ARG_KEEPALL 4
 
 class GEOMImpl_IGlue
 {
@@ -50,6 +51,9 @@ class GEOMImpl_IGlue
   Handle(TColStd_HSequenceOfTransient) GetFaces()
   { return _func->GetReferenceList(GLUE_ARG_FACES); }
 
+  void SetKeepNonSolids (Standard_Boolean theFlag) { _func->SetInteger(GLUE_ARG_KEEPALL, theFlag ? 1 : 0); }
+  Standard_Boolean GetKeepNonSolids() { return (_func->GetInteger(GLUE_ARG_KEEPALL) != 0); }
+
  private:
 
   Handle(GEOM_Function) _func;
index e8a351f61e6b35fee5494a7d5e5a8fd6fef0f6b2..957c1840add7f47913267f15c7bd0b6cac2953f2 100644 (file)
@@ -497,7 +497,8 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeShape
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFaces
                                                 (Handle(GEOM_Object) theShape,
-                                                 const Standard_Real theTolerance)
+                                                 const Standard_Real theTolerance,
+                                                 const Standard_Boolean doKeepNonSolids)
 {
   SetErrorCode(KO);
 
@@ -521,6 +522,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFaces
 
   aCI.SetBase(aRefShape);
   aCI.SetTolerance(theTolerance);
+  aCI.SetKeepNonSolids(doKeepNonSolids);
 
   //Compute the sub-shape value
   Standard_Boolean isWarning = Standard_False;
@@ -636,7 +638,8 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetGlueFaces
 Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList
                                                 (Handle(GEOM_Object) theShape,
                                                  const Standard_Real theTolerance,
-                                                list<Handle(GEOM_Object)> theFaces)
+                                                list<Handle(GEOM_Object)> theFaces,
+                                                 const Standard_Boolean doKeepNonSolids)
 {
   SetErrorCode(KO);
 
@@ -660,6 +663,8 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList
 
   aCI.SetBase(aRefShape);
   aCI.SetTolerance(theTolerance);
+  aCI.SetKeepNonSolids(doKeepNonSolids);
+
   Handle(TColStd_HSequenceOfTransient) aFaces = new TColStd_HSequenceOfTransient;
   list<Handle(GEOM_Object)>::iterator it = theFaces.begin();
   for (; it != theFaces.end(); it++) {
index 228aa8862c5d626a75c2ab03d956279e84013e57..b345677552a4efe7fc9e42bafd5348f3d89cb4af 100644 (file)
@@ -61,22 +61,24 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
   Standard_EXPORT Handle(GEOM_Object) MakeCompound (list<Handle(GEOM_Object)> theShapes);
 
   Standard_EXPORT Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape,
-                                                    const Standard_Real theTolerance);
+                                                    const Standard_Real theTolerance,
+                                                     const Standard_Boolean doKeepNonSolids);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetGlueFaces (Handle(GEOM_Object) theShape,
                                                                     const Standard_Real theTolerance);
 
   Standard_EXPORT Handle(GEOM_Object) MakeGlueFacesByList (Handle(GEOM_Object) theShape,
                                                           const Standard_Real theTolerance,
-                                                          list<Handle(GEOM_Object)> theFaces);
+                                                          list<Handle(GEOM_Object)> theFaces,
+                                                           const Standard_Boolean doKeepNonSolids);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object)    theShape,
-                                                    const Standard_Integer theShapeType,
-                                                    const Standard_Boolean isSorted);
+                                                                    const Standard_Integer theShapeType,
+                                                                    const Standard_Boolean isSorted);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfInteger) SubShapeAllIDs (Handle(GEOM_Object)    theShape,
-                                                     const Standard_Integer theShapeType,
-                                                     const Standard_Boolean isSorted);
+                                                                     const Standard_Integer theShapeType,
+                                                                     const Standard_Boolean isSorted);
 
   Standard_EXPORT Handle(GEOM_Object) GetSubShape (Handle(GEOM_Object)    theMainShape,
                                                    const Standard_Integer theID);
index b3edf98dbaeedf9c4c9a50b0ad6413bcdf3e74ab..7e022a0c31e155993476d8351cf9af55515540fa 100644 (file)
@@ -328,7 +328,8 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeCompound
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFaces
                                            (GEOM::GEOM_Object_ptr theShape,
-                                           const CORBA::Double   theTolerance)
+                                           const CORBA::Double   theTolerance,
+                                           const CORBA::Boolean  doKeepNonSolids)
 {
   GEOM::GEOM_Object_var aGEOMObject;
 
@@ -345,7 +346,7 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFaces
 
   //Perform the gluing
   Handle(GEOM_Object) anObject =
-    GetOperations()->MakeGlueFaces(aShape, theTolerance);
+    GetOperations()->MakeGlueFaces(aShape, theTolerance, doKeepNonSolids);
   //if (!GetOperations()->IsDone() || anObject.IsNull())
   // to allow warning
   if (anObject.IsNull())
@@ -401,7 +402,8 @@ GEOM::ListOfGO* GEOM_IShapesOperations_i::GetGlueFaces
 GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFacesByList
                                            (GEOM::GEOM_Object_ptr theShape,
                                            const CORBA::Double   theTolerance,
-                                           const GEOM::ListOfGO& theFaces)
+                                           const GEOM::ListOfGO& theFaces,
+                                           const CORBA::Boolean  doKeepNonSolids)
 {
   GEOM::GEOM_Object_var aGEOMObject;
 
@@ -430,7 +432,7 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFacesByList
 
   //Perform the gluing
   Handle(GEOM_Object) anObject =
-    GetOperations()->MakeGlueFacesByList(aShape, theTolerance, aFaces);
+    GetOperations()->MakeGlueFacesByList(aShape, theTolerance, aFaces, doKeepNonSolids);
   //if (!GetOperations()->IsDone() || anObject.IsNull())
   // to allow warning
   if (anObject.IsNull())
index 98e4e4e3eb55bcb1958a2f17064111f8019eb70d..036603b7f5566519fd1e39e88f26cc6c4d189936 100644 (file)
@@ -60,14 +60,16 @@ class GEOM_IShapesOperations_i :
   GEOM::GEOM_Object_ptr MakeCompound (const GEOM::ListOfGO& theShapes);
 
   GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
-                                      CORBA::Double         theTolerance);
+                                      CORBA::Double         theTolerance,
+                                      const CORBA::Boolean  doKeepNonSolids);
 
   GEOM::ListOfGO* GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
                                CORBA::Double         theTolerance);
 
   GEOM::GEOM_Object_ptr MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
                                             CORBA::Double         theTolerance,
-                                            const GEOM::ListOfGO& theFaces);
+                                            const GEOM::ListOfGO& theFaces,
+                                            const CORBA::Boolean  doKeepNonSolids);
 
   GEOM::ListOfGO* MakeExplode (GEOM::GEOM_Object_ptr theShape,
                               CORBA::Long           theShapeType,
index f2c741940b33091f48445dcf0458c3419506573c..fa0a64a0e70081a9cfcf5cefb2a60935cd624bcf 100644 (file)
@@ -1681,12 +1681,14 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (GEOM::GEOM_List_ptr theShapes
 //  MakeGlueFaces:
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
-                                                   CORBA::Double   theTolerance)
+                                                   CORBA::Double   theTolerance,
+                                                   CORBA::Boolean doKeepNonSolids)
 {
   beginService( " GEOM_Superv_i::MakeGlueFaces" );
   MESSAGE("GEOM_Superv_i::MakeGlueFaces");
   getShapesOp();
-  GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeGlueFaces(theShape, theTolerance);
+  GEOM::GEOM_Object_ptr anObj =
+    myShapesOp->MakeGlueFaces(theShape, theTolerance, doKeepNonSolids);
   endService( " GEOM_Superv_i::MakeGlueFaces" );
   return anObj;
 }
@@ -1712,12 +1714,14 @@ GEOM::GEOM_List_ptr GEOM_Superv_i::GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
                                                          CORBA::Double theTolerance,
-                                                         const GEOM::ListOfGO& theFaces)
+                                                         const GEOM::ListOfGO& theFaces,
+                                                         CORBA::Boolean doKeepNonSolids)
 {
   beginService( " GEOM_Superv_i::MakeGlueFacesByList" );
   MESSAGE("GEOM_Superv_i::MakeGlueFacesByList");
   getShapesOp();
-  GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces);
+  GEOM::GEOM_Object_ptr anObj =
+    myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids);
   endService( " GEOM_Superv_i::MakeGlueFacesByList" );
   return anObj;
 }
index db4bd41d65461acd3bf17d66fc37ee0382a761aa..84773c8c4ca0b71ce7a8b8d5e7f101dda9b4b0f2 100644 (file)
@@ -379,12 +379,14 @@ public:
   GEOM::GEOM_Object_ptr MakeSolidShells (GEOM::GEOM_List_ptr theShells);
   GEOM::GEOM_Object_ptr MakeCompound (GEOM::GEOM_List_ptr theShapes);
   GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
-                                      CORBA::Double theTolerance);
+                                      CORBA::Double theTolerance,
+                                      CORBA::Boolean doKeepNonSolids);
   GEOM::GEOM_List_ptr GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
                                    CORBA::Double theTolerance);
   GEOM::GEOM_Object_ptr MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
                                             CORBA::Double theTolerance,
-                                            const GEOM::ListOfGO& theFaces);
+                                            const GEOM::ListOfGO& theFaces,
+                                            CORBA::Boolean doKeepNonSolids);
   GEOM::GEOM_List_ptr MakeExplode (GEOM::GEOM_Object_ptr theShape,
                                       CORBA::Long theShapeType,
                                       CORBA::Boolean isSorted);
index d752a1ee36fa20f75773c6bfe109eb323e829e00..7527c88e81fab430189c6d994b2a6c35263a1f07 100644 (file)
@@ -1385,8 +1385,8 @@ def MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter):
 #  @return New GEOM_Object, containing a copy of theShape without coincident faces.
 #
 #  Example: see GEOM_Spanner.py
-def MakeGlueFaces(theShape, theTolerance):
-    anObj = ShapesOp.MakeGlueFaces(theShape, theTolerance)
+def MakeGlueFaces(theShape, theTolerance, doKeepNonSolids=True):
+    anObj = ShapesOp.MakeGlueFaces(theShape, theTolerance, doKeepNonSolids)
     if ShapesOp.IsDone() == 0:
       print "MakeGlueFaces : ", ShapesOp.GetErrorCode()
     return anObj
@@ -1416,8 +1416,8 @@ def GetGlueFaces(theShape, theTolerance):
 #          without some faces.
 #
 #  Example: see GEOM_Spanner.py
-def MakeGlueFacesByList(theShape, theTolerance, theFaces):
-    anObj = ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces)
+def MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids=True):
+    anObj = ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids)
     if ShapesOp.IsDone() == 0:
       print "MakeGlueFacesByList : ", ShapesOp.GetErrorCode()
     return anObj
index c01a6a00b9848759635a31b55b411cf1628c2cce..c81a200dd222afa71625e531e71f69cadea2e5db 100644 (file)
@@ -411,67 +411,69 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects )
   bool aResult = false;
   objects.clear();
 
-  switch ( getConstructorId() ) 
+  switch ( getConstructorId() )
+  {
+  case 0:
+    {
+      GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
+        ( getOperation() )->MakeGlueFaces( myObject, myTolEdt2->value(), true );
+      aResult = !anObj->_is_nil();
+      if ( aResult )
+        objects.push_back( anObj._retn() );
+      break;
+    }
+  case 1:
     {
-    case 0 :
+      if ( IsPreview() )
       {
-        GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
-        ( getOperation() )->MakeGlueFaces( myObject, myTolEdt2->value() );
-        aResult = !anObj->_is_nil();
-        if ( aResult )
-          objects.push_back( anObj._retn() );
-        break;
-      }
-    case 1 :
-        if ( IsPreview() )
-        {
-          // if this method is used for displaying preview then we must detect glue faces only
-          ObjectList::iterator anIter;
-          for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter)
-            objects.push_back( GEOM::GEOM_Object::_duplicate( *anIter ) );
-          return myTmpObjs.size() ? true : false;
-        } // IsPreview
-        
-        // Make glue face by list.
-        // Iterate through myTmpObjs and verifies where each object is currently selected or not.
-        QMap<QString, char> selected;
-        
-        // Get names of selected objects
-        SALOME_ListIteratorOfListIO it ( selectedIO() );
-        for (; it.More(); it.Next()) 
-          selected.insert( it.Value()->getName(), 0 );
-        
-        // Iterate through result and select objects with names from selection
-        // ObjectList toRemoveFromEnggine;
-        ObjectList toGlue;
+        // if this method is used for displaying preview then we must detect glue faces only
         ObjectList::iterator anIter;
-        for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) 
-        {
-          if ( selected.contains( myGeomGUI->getApp()->orb()->object_to_string(*anIter) ) )
-            toGlue.push_back(*anIter);
-        }
-          
-        // make glue faces
-        GEOM::ListOfGO_var aListForGlue = new GEOM::ListOfGO();
-        aListForGlue->length( toGlue.size() );
-        ObjectList::iterator anIter3 = toGlue.begin();
-        for ( int i = 0; anIter3 != toGlue.end(); ++anIter3, ++i )
-          aListForGlue[ i ] = *anIter3;
-        GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
-          ( getOperation() )->MakeGlueFacesByList( myObject, myTolEdt2->value(), aListForGlue );
-        
-        aResult = !anObj->_is_nil();
-        
-        if ( aResult )
-          objects.push_back( anObj._retn() );
-      
-        // Remove from engine useless objects        
-        clearTemporary();
-        
-        updateButtonState();
-        
+        for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter)
+          objects.push_back( GEOM::GEOM_Object::_duplicate( *anIter ) );
+        return myTmpObjs.size() ? true : false;
+      } // IsPreview
+
+      // Make glue face by list.
+      // Iterate through myTmpObjs and verifies where each object is currently selected or not.
+      QMap<QString, char> selected;
+
+      // Get names of selected objects
+      SALOME_ListIteratorOfListIO it ( selectedIO() );
+      for (; it.More(); it.Next()) 
+        selected.insert( it.Value()->getName(), 0 );
+
+      // Iterate through result and select objects with names from selection
+      // ObjectList toRemoveFromEnggine;
+      ObjectList toGlue;
+      ObjectList::iterator anIter;
+      for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) 
+      {
+        if ( selected.contains( myGeomGUI->getApp()->orb()->object_to_string(*anIter) ) )
+          toGlue.push_back(*anIter);
+      }
+
+      // make glue faces
+      GEOM::ListOfGO_var aListForGlue = new GEOM::ListOfGO();
+      aListForGlue->length( toGlue.size() );
+      ObjectList::iterator anIter3 = toGlue.begin();
+      for ( int i = 0; anIter3 != toGlue.end(); ++anIter3, ++i )
+        aListForGlue[ i ] = *anIter3;
+      GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
+        ( getOperation() )->MakeGlueFacesByList( myObject, myTolEdt2->value(), aListForGlue, true );
+
+      aResult = !anObj->_is_nil();
+
+      if ( aResult )
+        objects.push_back( anObj._retn() );
+
+      // Remove from engine useless objects
+      clearTemporary();
+
+      updateButtonState();
+
       break;
-    } // case
+    } // case 1
+  } // switch
 
   return aResult;
 }