Open CASCADE Technology  7.5.0
Public Member Functions
IntPatch_Intersection Class Reference

This class provides a generic algorithm to intersect 2 surfaces. More...

#include <IntPatch_Intersection.hxx>

Public Member Functions

 IntPatch_Intersection ()
 
 IntPatch_Intersection (const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Handle< Adaptor3d_HSurface > &S2, const Handle< Adaptor3d_TopolTool > &D2, const Standard_Real TolArc, const Standard_Real TolTang)
 
 IntPatch_Intersection (const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Standard_Real TolArc, const Standard_Real TolTang)
 
void SetTolerances (const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Real UVMaxStep, const Standard_Real Fleche)
 Set the tolerances used by the algorithms: — Implicit - Parametric — Parametric - Parametric — Implicit - Implicit. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Handle< Adaptor3d_HSurface > &S2, const Handle< Adaptor3d_TopolTool > &D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Boolean isGeomInt=Standard_True, const Standard_Boolean theIsReqToKeepRLine=Standard_False, const Standard_Boolean theIsReqToPostWLProc=Standard_True)
 Flag theIsReqToKeepRLine has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (wothout any post-processing). More...
 
void Perform (const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Handle< Adaptor3d_HSurface > &S2, const Handle< Adaptor3d_TopolTool > &D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S &LOfPnts, const Standard_Boolean isGeomInt=Standard_True, const Standard_Boolean theIsReqToKeepRLine=Standard_False, const Standard_Boolean theIsReqToPostWLProc=Standard_True)
 If isGeomInt == Standard_False, then method Param-Param intersection will be used. Flag theIsReqToKeepRLine has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing). More...
 
void Perform (const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Handle< Adaptor3d_HSurface > &S2, const Handle< Adaptor3d_TopolTool > &D2, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real TolArc, const Standard_Real TolTang)
 Perform with start point. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Standard_Real TolArc, const Standard_Real TolTang)
 Uses for finding self-intersected surfaces. More...
 
Standard_Boolean IsDone () const
 Returns True if the calculus was successful. More...
 
Standard_Boolean IsEmpty () const
 Returns true if the is no intersection. More...
 
Standard_Boolean TangentFaces () const
 Returns True if the two patches are considered as entirely tangent, i-e every restriction arc of one patch is inside the geometric base of the other patch. More...
 
Standard_Boolean OppositeFaces () const
 Returns True when the TangentFaces returns True and the normal vectors evaluated at a point on the first and the second surface are opposite. The exception DomainError is raised if TangentFaces returns False. More...
 
Standard_Integer NbPnts () const
 Returns the number of "single" points. More...
 
const IntPatch_PointPoint (const Standard_Integer Index) const
 Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt. More...
 
Standard_Integer NbLines () const
 Returns the number of intersection lines. More...
 
const Handle< IntPatch_Line > & Line (const Standard_Integer Index) const
 Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine. More...
 
const IntPatch_SequenceOfLineSequenceOfLine () const
 
void Dump (const Standard_Integer Mode, const Handle< Adaptor3d_HSurface > &S1, const Handle< Adaptor3d_TopolTool > &D1, const Handle< Adaptor3d_HSurface > &S2, const Handle< Adaptor3d_TopolTool > &D2) const
 Dump of each result line. Mode for more accurate dumps. More...
 

Detailed Description

This class provides a generic algorithm to intersect 2 surfaces.

Constructor & Destructor Documentation

◆ IntPatch_Intersection() [1/3]

IntPatch_Intersection::IntPatch_Intersection ( )

◆ IntPatch_Intersection() [2/3]

IntPatch_Intersection::IntPatch_Intersection ( const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Handle< Adaptor3d_HSurface > &  S2,
const Handle< Adaptor3d_TopolTool > &  D2,
const Standard_Real  TolArc,
const Standard_Real  TolTang 
)

◆ IntPatch_Intersection() [3/3]

IntPatch_Intersection::IntPatch_Intersection ( const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Standard_Real  TolArc,
const Standard_Real  TolTang 
)

Member Function Documentation

◆ Dump()

void IntPatch_Intersection::Dump ( const Standard_Integer  Mode,
const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Handle< Adaptor3d_HSurface > &  S2,
const Handle< Adaptor3d_TopolTool > &  D2 
) const

Dump of each result line. Mode for more accurate dumps.

◆ IsDone()

Standard_Boolean IntPatch_Intersection::IsDone ( ) const

Returns True if the calculus was successful.

◆ IsEmpty()

Standard_Boolean IntPatch_Intersection::IsEmpty ( ) const

Returns true if the is no intersection.

◆ Line()

const Handle< IntPatch_Line >& IntPatch_Intersection::Line ( const Standard_Integer  Index) const

Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.

◆ NbLines()

Standard_Integer IntPatch_Intersection::NbLines ( ) const

Returns the number of intersection lines.

◆ NbPnts()

Standard_Integer IntPatch_Intersection::NbPnts ( ) const

Returns the number of "single" points.

◆ OppositeFaces()

Standard_Boolean IntPatch_Intersection::OppositeFaces ( ) const

Returns True when the TangentFaces returns True and the normal vectors evaluated at a point on the first and the second surface are opposite. The exception DomainError is raised if TangentFaces returns False.

◆ Perform() [1/4]

void IntPatch_Intersection::Perform ( const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Handle< Adaptor3d_HSurface > &  S2,
const Handle< Adaptor3d_TopolTool > &  D2,
const Standard_Real  TolArc,
const Standard_Real  TolTang,
const Standard_Boolean  isGeomInt = Standard_True,
const Standard_Boolean  theIsReqToKeepRLine = Standard_False,
const Standard_Boolean  theIsReqToPostWLProc = Standard_True 
)

Flag theIsReqToKeepRLine has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (wothout any post-processing).

◆ Perform() [2/4]

void IntPatch_Intersection::Perform ( const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Handle< Adaptor3d_HSurface > &  S2,
const Handle< Adaptor3d_TopolTool > &  D2,
const Standard_Real  TolArc,
const Standard_Real  TolTang,
IntSurf_ListOfPntOn2S LOfPnts,
const Standard_Boolean  isGeomInt = Standard_True,
const Standard_Boolean  theIsReqToKeepRLine = Standard_False,
const Standard_Boolean  theIsReqToPostWLProc = Standard_True 
)

If isGeomInt == Standard_False, then method Param-Param intersection will be used. Flag theIsReqToKeepRLine has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).

◆ Perform() [3/4]

void IntPatch_Intersection::Perform ( const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Handle< Adaptor3d_HSurface > &  S2,
const Handle< Adaptor3d_TopolTool > &  D2,
const Standard_Real  U1,
const Standard_Real  V1,
const Standard_Real  U2,
const Standard_Real  V2,
const Standard_Real  TolArc,
const Standard_Real  TolTang 
)

Perform with start point.

◆ Perform() [4/4]

void IntPatch_Intersection::Perform ( const Handle< Adaptor3d_HSurface > &  S1,
const Handle< Adaptor3d_TopolTool > &  D1,
const Standard_Real  TolArc,
const Standard_Real  TolTang 
)

Uses for finding self-intersected surfaces.

◆ Point()

const IntPatch_Point& IntPatch_Intersection::Point ( const Standard_Integer  Index) const

Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.

◆ SequenceOfLine()

const IntPatch_SequenceOfLine& IntPatch_Intersection::SequenceOfLine ( ) const

◆ SetTolerances()

void IntPatch_Intersection::SetTolerances ( const Standard_Real  TolArc,
const Standard_Real  TolTang,
const Standard_Real  UVMaxStep,
const Standard_Real  Fleche 
)

Set the tolerances used by the algorithms: — Implicit - Parametric — Parametric - Parametric — Implicit - Implicit.

TolArc is used to compute the intersections between the restrictions of a surface and a walking line.

TolTang is used to compute the points on a walking line, and in geometric algorithms.

Fleche is a parameter used in the walking algorithms to provide small curvatures on a line.

UVMaxStep is a parameter used in the walking algorithms to compute the distance between to points in their respective parametric spaces.

◆ TangentFaces()

Standard_Boolean IntPatch_Intersection::TangentFaces ( ) const

Returns True if the two patches are considered as entirely tangent, i-e every restriction arc of one patch is inside the geometric base of the other patch.


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