Open CASCADE Technology  7.4.0
Static Public Member Functions | Static Public Attributes

IntPatch_WLineTool Class Reference

IntPatch_WLineTool provides set of static methods related to walking lines. More...

#include <IntPatch_WLineTool.hxx>

Static Public Member Functions

static Handle< IntPatch_WLineComputePurgedWLine (const Handle< IntPatch_WLine > &theWLine, const Handle< Adaptor3d_HSurface > &theS1, const Handle< Adaptor3d_HSurface > &theS2, const Handle< Adaptor3d_TopolTool > &theDom1, const Handle< Adaptor3d_TopolTool > &theDom2)
 I Removes equal points (leave one of equal points) from theWLine and recompute vertex parameters. More...
 
static void JoinWLines (IntPatch_SequenceOfLine &theSlin, IntPatch_SequenceOfPoint &theSPnt, Handle< Adaptor3d_HSurface > theS1, Handle< Adaptor3d_HSurface > theS2, const Standard_Real theTol3D)
 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. More...
 
static void ExtendTwoWLines (IntPatch_SequenceOfLine &theSlin, const Handle< Adaptor3d_HSurface > &theS1, const Handle< Adaptor3d_HSurface > &theS2, const Standard_Real theToler3D, const Standard_Real *const theArrPeriods, const Bnd_Box2d &theBoxS1, const Bnd_Box2d &theBoxS2, const NCollection_List< gp_Pnt > &theListOfCriticalPoints)
 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. More...
 

Static Public Attributes

static const Standard_Real myMaxConcatAngle
 Max angle to concatenate two WLines to avoid result with C0-continuity. More...
 

Detailed Description

IntPatch_WLineTool provides set of static methods related to walking lines.

Member Function Documentation

◆ ComputePurgedWLine()

static Handle< IntPatch_WLine > IntPatch_WLineTool::ComputePurgedWLine ( const Handle< IntPatch_WLine > &  theWLine,
const Handle< Adaptor3d_HSurface > &  theS1,
const Handle< Adaptor3d_HSurface > &  theS2,
const Handle< Adaptor3d_TopolTool > &  theDom1,
const Handle< Adaptor3d_TopolTool > &  theDom2 
)
static

I Removes equal points (leave one of equal points) from theWLine and recompute vertex parameters.

II Removes point out of borders in case of non periodic surfaces.

III Removes exceed points using tube criteria: delete 7D point if it lies near to expected lines in 2d and 3d. Each task (2d, 2d, 3d) have its own tolerance and checked separately.

Returns new WLine or null WLine if the number of the points is less than 2.

◆ ExtendTwoWLines()

static void IntPatch_WLineTool::ExtendTwoWLines ( IntPatch_SequenceOfLine theSlin,
const Handle< Adaptor3d_HSurface > &  theS1,
const Handle< Adaptor3d_HSurface > &  theS2,
const Standard_Real  theToler3D,
const Standard_Real *const  theArrPeriods,
const Bnd_Box2d theBoxS1,
const Bnd_Box2d theBoxS2,
const NCollection_List< gp_Pnt > &  theListOfCriticalPoints 
)
static

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.

◆ JoinWLines()

static void IntPatch_WLineTool::JoinWLines ( IntPatch_SequenceOfLine theSlin,
IntPatch_SequenceOfPoint theSPnt,
Handle< Adaptor3d_HSurface theS1,
Handle< Adaptor3d_HSurface theS2,
const Standard_Real  theTol3D 
)
static

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.

Field Documentation

◆ myMaxConcatAngle

const Standard_Real IntPatch_WLineTool::myMaxConcatAngle
static

Max angle to concatenate two WLines to avoid result with C0-continuity.


The documentation for this class was generated from the following file: