Open CASCADE Technology  7.4.0
Public Member Functions | Protected Member Functions

IntPatch_TheIWalking Class Reference

#include <IntPatch_TheIWalking.hxx>

Public Member Functions

 IntPatch_TheIWalking (const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Step, const Standard_Boolean theToFillHoles=Standard_False)
 Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused. theToFillHoles is the flag defining whether possible holes between resulting curves are filled or not in case of IntPatch walking theToFillHoles is False. More...
 
void SetTolerance (const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Step)
 Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused. More...
 
void Perform (const IntSurf_SequenceOfPathPoint &Pnts1, const IntSurf_SequenceOfInteriorPoint &Pnts2, IntPatch_TheSurfFunction &Func, const Handle< Adaptor3d_HSurface > &S, const Standard_Boolean Reversed=Standard_False)
 Searches a set of polylines starting on a point of Pnts1 or Pnts2. Each point on a resulting polyline verifies F(u,v)=0. More...
 
void Perform (const IntSurf_SequenceOfPathPoint &Pnts1, IntPatch_TheSurfFunction &Func, const Handle< Adaptor3d_HSurface > &S, const Standard_Boolean Reversed=Standard_False)
 Searches a set of polylines starting on a point of Pnts1. Each point on a resulting polyline verifies F(u,v)=0. More...
 
Standard_Boolean IsDone () const
 Returns true if the calculus was successful. More...
 
Standard_Integer NbLines () const
 Returns the number of resulting polylines. An exception is raised if IsDone returns False. More...
 
const Handle< IntPatch_TheIWLineOfTheIWalking > & Value (const Standard_Integer Index) const
 Returns the polyline of range Index. An exception is raised if IsDone is False. An exception is raised if Index<=0 or Index>NbLines. More...
 
Standard_Integer NbSinglePnts () const
 Returns the number of points belonging to Pnts on which no line starts or ends. An exception is raised if IsDone returns False. More...
 
const IntSurf_PathPointSinglePnt (const Standard_Integer Index) const
 Returns the point of range Index . An exception is raised if IsDone returns False. An exception is raised if Index<=0 or Index > NbSinglePnts. More...
 

Protected Member Functions

Standard_Boolean Cadrage (math_Vector &BornInf, math_Vector &BornSup, math_Vector &UVap, Standard_Real &Step, const Standard_Integer StepSign) const
 
Standard_Boolean TestArretPassage (const TColStd_SequenceOfReal &Umult, const TColStd_SequenceOfReal &Vmult, IntPatch_TheSurfFunction &Section, math_Vector &UV, Standard_Integer &Irang)
 
Standard_Boolean TestArretPassage (const TColStd_SequenceOfReal &Umult, const TColStd_SequenceOfReal &Vmult, const math_Vector &UV, const Standard_Integer Index, Standard_Integer &Irang)
 
Standard_Boolean TestArretAjout (IntPatch_TheSurfFunction &Section, math_Vector &UV, Standard_Integer &Irang, IntSurf_PntOn2S &PSol)
 
void FillPntsInHoles (IntPatch_TheSurfFunction &Section, TColStd_SequenceOfInteger &CopySeqAlone, IntSurf_SequenceOfInteriorPoint &PntsInHoles)
 
void TestArretCadre (const TColStd_SequenceOfReal &Umult, const TColStd_SequenceOfReal &Vmult, const Handle< IntPatch_TheIWLineOfTheIWalking > &Line, IntPatch_TheSurfFunction &Section, math_Vector &UV, Standard_Integer &Irang)
 
IntWalk_StatusDeflection TestDeflection (IntPatch_TheSurfFunction &Section, const Standard_Boolean Finished, const math_Vector &UV, const IntWalk_StatusDeflection StatusPrecedent, Standard_Integer &NbDivision, Standard_Real &Step, const Standard_Integer StepSign)
 
void ComputeOpenLine (const TColStd_SequenceOfReal &Umult, const TColStd_SequenceOfReal &Vmult, const IntSurf_SequenceOfPathPoint &Pnts1, IntPatch_TheSurfFunction &Section, Standard_Boolean &Rajout)
 
void OpenLine (const Standard_Integer N, const IntSurf_PntOn2S &Psol, const IntSurf_SequenceOfPathPoint &Pnts1, IntPatch_TheSurfFunction &Section, const Handle< IntPatch_TheIWLineOfTheIWalking > &Line)
 
Standard_Boolean IsValidEndPoint (const Standard_Integer IndOfPoint, const Standard_Integer IndOfLine)
 
void RemoveTwoEndPoints (const Standard_Integer IndOfPoint)
 
Standard_Boolean IsPointOnLine (const gp_Pnt2d &theP2d, const Standard_Integer Irang)
 
void ComputeCloseLine (const TColStd_SequenceOfReal &Umult, const TColStd_SequenceOfReal &Vmult, const IntSurf_SequenceOfPathPoint &Pnts1, const IntSurf_SequenceOfInteriorPoint &Pnts2, IntPatch_TheSurfFunction &Section, Standard_Boolean &Rajout)
 
void AddPointInCurrentLine (const Standard_Integer N, const IntSurf_PathPoint &PathPnt, const Handle< IntPatch_TheIWLineOfTheIWalking > &CurrentLine) const
 
void MakeWalkingPoint (const Standard_Integer Case, const Standard_Real U, const Standard_Real V, IntPatch_TheSurfFunction &Section, IntSurf_PntOn2S &Psol)
 
void Clear ()
 Clears up internal containers. More...
 
Standard_Boolean IsPointOnLine (const IntSurf_PntOn2S &thePOn2S, const math_Vector &theInfBounds, const math_Vector &theSupBounds, math_FunctionSetRoot &theSolver, IntPatch_TheSurfFunction &theFunc)
 Returns TRUE if thePOn2S is in one of existing lines. More...
 

Constructor & Destructor Documentation

◆ IntPatch_TheIWalking()

IntPatch_TheIWalking::IntPatch_TheIWalking ( const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Step,
const Standard_Boolean  theToFillHoles = Standard_False 
)

Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused. theToFillHoles is the flag defining whether possible holes between resulting curves are filled or not in case of IntPatch walking theToFillHoles is False.

Member Function Documentation

◆ AddPointInCurrentLine()

void IntPatch_TheIWalking::AddPointInCurrentLine ( const Standard_Integer  N,
const IntSurf_PathPoint PathPnt,
const Handle< IntPatch_TheIWLineOfTheIWalking > &  CurrentLine 
) const
protected

◆ Cadrage()

Standard_Boolean IntPatch_TheIWalking::Cadrage ( math_Vector BornInf,
math_Vector BornSup,
math_Vector UVap,
Standard_Real Step,
const Standard_Integer  StepSign 
) const
protected

◆ Clear()

void IntPatch_TheIWalking::Clear ( )
protected

Clears up internal containers.

◆ ComputeCloseLine()

void IntPatch_TheIWalking::ComputeCloseLine ( const TColStd_SequenceOfReal Umult,
const TColStd_SequenceOfReal Vmult,
const IntSurf_SequenceOfPathPoint Pnts1,
const IntSurf_SequenceOfInteriorPoint Pnts2,
IntPatch_TheSurfFunction Section,
Standard_Boolean Rajout 
)
protected

◆ ComputeOpenLine()

void IntPatch_TheIWalking::ComputeOpenLine ( const TColStd_SequenceOfReal Umult,
const TColStd_SequenceOfReal Vmult,
const IntSurf_SequenceOfPathPoint Pnts1,
IntPatch_TheSurfFunction Section,
Standard_Boolean Rajout 
)
protected

◆ FillPntsInHoles()

void IntPatch_TheIWalking::FillPntsInHoles ( IntPatch_TheSurfFunction Section,
TColStd_SequenceOfInteger CopySeqAlone,
IntSurf_SequenceOfInteriorPoint PntsInHoles 
)
protected

◆ IsDone()

Standard_Boolean IntPatch_TheIWalking::IsDone ( ) const

Returns true if the calculus was successful.

◆ IsPointOnLine() [1/2]

Standard_Boolean IntPatch_TheIWalking::IsPointOnLine ( const gp_Pnt2d theP2d,
const Standard_Integer  Irang 
)
protected

◆ IsPointOnLine() [2/2]

Standard_Boolean IntPatch_TheIWalking::IsPointOnLine ( const IntSurf_PntOn2S thePOn2S,
const math_Vector theInfBounds,
const math_Vector theSupBounds,
math_FunctionSetRoot theSolver,
IntPatch_TheSurfFunction theFunc 
)
protected

Returns TRUE if thePOn2S is in one of existing lines.

◆ IsValidEndPoint()

Standard_Boolean IntPatch_TheIWalking::IsValidEndPoint ( const Standard_Integer  IndOfPoint,
const Standard_Integer  IndOfLine 
)
protected

◆ MakeWalkingPoint()

void IntPatch_TheIWalking::MakeWalkingPoint ( const Standard_Integer  Case,
const Standard_Real  U,
const Standard_Real  V,
IntPatch_TheSurfFunction Section,
IntSurf_PntOn2S Psol 
)
protected

◆ NbLines()

Standard_Integer IntPatch_TheIWalking::NbLines ( ) const

Returns the number of resulting polylines. An exception is raised if IsDone returns False.

◆ NbSinglePnts()

Standard_Integer IntPatch_TheIWalking::NbSinglePnts ( ) const

Returns the number of points belonging to Pnts on which no line starts or ends. An exception is raised if IsDone returns False.

◆ OpenLine()

void IntPatch_TheIWalking::OpenLine ( const Standard_Integer  N,
const IntSurf_PntOn2S Psol,
const IntSurf_SequenceOfPathPoint Pnts1,
IntPatch_TheSurfFunction Section,
const Handle< IntPatch_TheIWLineOfTheIWalking > &  Line 
)
protected

◆ Perform() [1/2]

void IntPatch_TheIWalking::Perform ( const IntSurf_SequenceOfPathPoint Pnts1,
const IntSurf_SequenceOfInteriorPoint Pnts2,
IntPatch_TheSurfFunction Func,
const Handle< Adaptor3d_HSurface > &  S,
const Standard_Boolean  Reversed = Standard_False 
)

Searches a set of polylines starting on a point of Pnts1 or Pnts2. Each point on a resulting polyline verifies F(u,v)=0.

◆ Perform() [2/2]

void IntPatch_TheIWalking::Perform ( const IntSurf_SequenceOfPathPoint Pnts1,
IntPatch_TheSurfFunction Func,
const Handle< Adaptor3d_HSurface > &  S,
const Standard_Boolean  Reversed = Standard_False 
)

Searches a set of polylines starting on a point of Pnts1. Each point on a resulting polyline verifies F(u,v)=0.

◆ RemoveTwoEndPoints()

void IntPatch_TheIWalking::RemoveTwoEndPoints ( const Standard_Integer  IndOfPoint)
protected

◆ SetTolerance()

void IntPatch_TheIWalking::SetTolerance ( const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Step 
)

Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused.

◆ SinglePnt()

const IntSurf_PathPoint& IntPatch_TheIWalking::SinglePnt ( const Standard_Integer  Index) const

Returns the point of range Index . An exception is raised if IsDone returns False. An exception is raised if Index<=0 or Index > NbSinglePnts.

◆ TestArretAjout()

Standard_Boolean IntPatch_TheIWalking::TestArretAjout ( IntPatch_TheSurfFunction Section,
math_Vector UV,
Standard_Integer Irang,
IntSurf_PntOn2S PSol 
)
protected

◆ TestArretCadre()

void IntPatch_TheIWalking::TestArretCadre ( const TColStd_SequenceOfReal Umult,
const TColStd_SequenceOfReal Vmult,
const Handle< IntPatch_TheIWLineOfTheIWalking > &  Line,
IntPatch_TheSurfFunction Section,
math_Vector UV,
Standard_Integer Irang 
)
protected

◆ TestArretPassage() [1/2]

Standard_Boolean IntPatch_TheIWalking::TestArretPassage ( const TColStd_SequenceOfReal Umult,
const TColStd_SequenceOfReal Vmult,
IntPatch_TheSurfFunction Section,
math_Vector UV,
Standard_Integer Irang 
)
protected

◆ TestArretPassage() [2/2]

Standard_Boolean IntPatch_TheIWalking::TestArretPassage ( const TColStd_SequenceOfReal Umult,
const TColStd_SequenceOfReal Vmult,
const math_Vector UV,
const Standard_Integer  Index,
Standard_Integer Irang 
)
protected

◆ TestDeflection()

IntWalk_StatusDeflection IntPatch_TheIWalking::TestDeflection ( IntPatch_TheSurfFunction Section,
const Standard_Boolean  Finished,
const math_Vector UV,
const IntWalk_StatusDeflection  StatusPrecedent,
Standard_Integer NbDivision,
Standard_Real Step,
const Standard_Integer  StepSign 
)
protected

◆ Value()

const Handle< IntPatch_TheIWLineOfTheIWalking >& IntPatch_TheIWalking::Value ( const Standard_Integer  Index) const

Returns the polyline of range Index. An exception is raised if IsDone is False. An exception is raised if Index<=0 or Index>NbLines.


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