0029807: [Regression to 7.0.0] Impossible to cut cone from prism
[occt.git] / src / IntPatch / IntPatch_WLineTool.hxx
index 0049f4a..c45bcf6 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <IntPatch_SequenceOfLine.hxx>
 #include <IntPatch_WLine.hxx>
+#include <NCollection_List.hxx>
 
 class Adaptor3d_TopolTool;
 
@@ -49,29 +50,30 @@ public:
                                               const Handle(Adaptor3d_TopolTool)  &theDom1,
                                               const Handle(Adaptor3d_TopolTool)  &theDom2);
 
-//! Joins all WLines from theSlin to one if it is possible and records 
-//! the result into theSlin again. Lines will be kept to be splitted if:
-//! a) they are separated (has no common points);
-//! b) resulted line (after joining) go through seam-edges or surface boundaries.
-//!
-//! In addition, if points in theSPnt lies at least in one of the line in theSlin,
-//! this point will be deleted.
+  //! Joins all WLines from theSlin to one if it is possible and records 
+  //! the result into theSlin again. Lines will be kept to be split if:
+  //! a) they are separated (has no common points);
+  //! b) resulted line (after joining) go through seam-edges or surface boundaries.
+  //!
+  //! In addition, if points in theSPnt lies at least in one of the line in theSlin,
+  //! this point will be deleted.
   Standard_EXPORT static void JoinWLines(IntPatch_SequenceOfLine& theSlin,
                                          IntPatch_SequenceOfPoint& theSPnt,
                                          Handle(Adaptor3d_HSurface) theS1,
                                          Handle(Adaptor3d_HSurface) theS2,
                                          const Standard_Real theTol3D);
 
-//! Extends every line from theSlin (if it is possible) to be started/finished
-//! in strictly determined point (in the place of joint of two lines).
-//! As result, some gaps between two lines will vanish.
-//! The Walking lines are supposed (algorithm will do nothing for not-Walking line)
-//! to be computed as a result of intersection. Both theS1 and theS2 
-//! must be quadrics. Other cases are not supported.
-//! theArrPeriods must be filled as follows (every value must not be negative;
-//! if the surface is not periodic the period must be equal to 0.0 strictly):
-//! {<U-period of 1st surface>, <V-period of 1st surface>,
-//!               <U-period of 2nd surface>, <V-period of 2nd surface>}.
+  //! Extends every line from theSlin (if it is possible) to be started/finished
+  //! in strictly determined point (in the place of joint of two lines).
+  //! As result, some gaps between two lines will vanish.
+  //! The Walking lines are supposed (algorithm will do nothing for not-Walking line)
+  //! to be computed as a result of intersection. Both theS1 and theS2 
+  //! must be quadrics. Other cases are not supported.
+  //! theArrPeriods must be filled as follows (every value must not be negative;
+  //! if the surface is not periodic the period must be equal to 0.0 strictly):
+  //! {<U-period of 1st surface>, <V-period of 1st surface>,
+  //!               <U-period of 2nd surface>, <V-period of 2nd surface>}.
+  //! theListOfCriticalPoints must contain 3D-points where joining is disabled.
   Standard_EXPORT static void
             ExtendTwoWLines(IntPatch_SequenceOfLine& theSlin,
                             const Handle(Adaptor3d_HSurface)& theS1,
@@ -79,7 +81,8 @@ public:
                             const Standard_Real theToler3D,
                             const Standard_Real* const theArrPeriods,
                             const Bnd_Box2d& theBoxS1,
-                            const Bnd_Box2d& theBoxS2);
+                            const Bnd_Box2d& theBoxS2,
+                            const NCollection_List<gp_Pnt>& theListOfCriticalPoints);
 
   //! Max angle to concatenate two WLines to avoid result with C0-continuity
   static const Standard_Real myMaxConcatAngle;