Open CASCADE Technology 7.8.2.dev
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.
 
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.
 
void Perform (const IntSurf_SequenceOfPathPoint &Pnts1, const IntSurf_SequenceOfInteriorPoint &Pnts2, IntPatch_TheSurfFunction &Func, const Handle< Adaptor3d_Surface > &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.
 
void Perform (const IntSurf_SequenceOfPathPoint &Pnts1, IntPatch_TheSurfFunction &Func, const Handle< Adaptor3d_Surface > &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.
 
Standard_Boolean IsDone () const
 Returns true if the calculus was successful.
 
Standard_Integer NbLines () const
 Returns the number of resulting polylines. An exception is raised if IsDone returns False.
 
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.
 
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.
 
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.
 

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.
 
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.
 

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_Surface > & 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_Surface > & 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,
const math_Vector & UV,
const Standard_Integer Index,
Standard_Integer & Irang )
protected

◆ TestArretPassage() [2/2]

Standard_Boolean IntPatch_TheIWalking::TestArretPassage ( const TColStd_SequenceOfReal & Umult,
const TColStd_SequenceOfReal & Vmult,
IntPatch_TheSurfFunction & Section,
math_Vector & UV,
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: