Open CASCADE Technology
6.9.1

This class implements an algorithm to determine the intersection between 2 parametrized surfaces, marching from a starting point. The intersection line starts and ends on the natural surface's boundaries . More...
#include <IntWalk_PWalking.hxx>
Public Member Functions  
IntWalk_PWalking (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_HSurface > &Caro2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)  
Constructor used to set the data to compute intersection lines between Caro1 and Caro2. Deflection is the maximum deflection admitted between two consecutive points on the resulting polyline. TolTangency is the tolerance to find a tangent point. Func is the criterion which has to be evaluated at each solution point (each point of the line). It is necessary to call the Perform method to compute the intersection lines. The line found starts at a point on or in 2 natural domains of surfaces. It can be closed in the standard case if it is open it stops and begins at the border of one of the domains. If an open line stops at the middle of a domain, one stops at the tangent point. Epsilon is SquareTolerance of points confusion. More...  
IntWalk_PWalking (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_HSurface > &Caro2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2)  
Returns the intersection line containing the exact point Poin. This line is a polygonal line. Deflection is the maximum deflection admitted between two consecutive points on the resulting polyline. TolTangency is the tolerance to find a tangent point. Func is the criterion which has to be evaluated at each solution point (each point of the line). The line found starts at a point on or in 2 natural domains of surfaces. It can be closed in the standard case if it is open it stops and begins at the border of one of the domains. If an open line stops at the middle of a domain, one stops at the tangent point. Epsilon is SquareTolerance of points confusion. More...  
void  Perform (const TColStd_Array1OfReal &ParDep) 
calculate the line of intersection More...  
void  Perform (const TColStd_Array1OfReal &ParDep, const Standard_Real u1min, const Standard_Real v1min, const Standard_Real u2min, const Standard_Real v2min, const Standard_Real u1max, const Standard_Real v1max, const Standard_Real u2max, const Standard_Real v2max) 
calculate the line of intersection. The regulation of steps is done using min and max values on u and v. (if this data is not presented as in the previous method, the initial steps are calculated starting from min and max uv of faces). More...  
Standard_Boolean  PerformFirstPoint (const TColStd_Array1OfReal &ParDep, IntSurf_PntOn2S &FirstPoint) 
calculate the first point of a line of intersection More...  
Standard_Boolean  IsDone () const 
Returns true if the calculus was successful. More...  
Standard_Integer  NbPoints () const 
Returns the number of points of the resulting polyline. An exception is raised if IsDone returns False. More...  
const IntSurf_PntOn2S &  Value (const Standard_Integer Index) const 
Returns the point of range Index on the polyline. An exception is raised if IsDone returns False. An exception is raised if Index<=0 or Index>NbPoints. More...  
const Handle< IntSurf_LineOn2S > &  Line () const 
Standard_Boolean  TangentAtFirst () const 
Returns True if the surface are tangent at the first point of the line. An exception is raised if IsDone returns False. More...  
Standard_Boolean  TangentAtLast () const 
Returns true if the surface are tangent at the last point of the line. An exception is raised if IsDone returns False. More...  
Standard_Boolean  IsClosed () const 
Returns True if the line is closed. An exception is raised if IsDone returns False. More...  
const gp_Dir &  TangentAtLine (Standard_Integer &Index) const 
IntWalk_StatusDeflection  TestDeflection () 
Standard_Boolean  TestArret (const Standard_Boolean DejaReparti, TColStd_Array1OfReal &Param, IntImp_ConstIsoparametric &ChoixIso) 
void  RepartirOuDiviser (Standard_Boolean &DejaReparti, IntImp_ConstIsoparametric &ChoixIso, Standard_Boolean &Arrive) 
void  AddAPoint (Handle< IntSurf_LineOn2S > &line, const IntSurf_PntOn2S &POn2S) 
Standard_Boolean  PutToBoundary (const Handle< Adaptor3d_HSurface > &theASurf1, const Handle< Adaptor3d_HSurface > &theASurf2) 
Standard_Boolean  SeekAdditionalPoints (const Handle< Adaptor3d_HSurface > &theASurf1, const Handle< Adaptor3d_HSurface > &theASurf2, const Standard_Integer theMinNbPoints) 
This class implements an algorithm to determine the intersection between 2 parametrized surfaces, marching from a starting point. The intersection line starts and ends on the natural surface's boundaries .
IntWalk_PWalking::IntWalk_PWalking  (  const Handle< Adaptor3d_HSurface > &  Caro1, 
const Handle< Adaptor3d_HSurface > &  Caro2,  
const Standard_Real  TolTangency,  
const Standard_Real  Epsilon,  
const Standard_Real  Deflection,  
const Standard_Real  Increment  
) 
Constructor used to set the data to compute intersection lines between Caro1 and Caro2. Deflection is the maximum deflection admitted between two consecutive points on the resulting polyline. TolTangency is the tolerance to find a tangent point. Func is the criterion which has to be evaluated at each solution point (each point of the line). It is necessary to call the Perform method to compute the intersection lines. The line found starts at a point on or in 2 natural domains of surfaces. It can be closed in the standard case if it is open it stops and begins at the border of one of the domains. If an open line stops at the middle of a domain, one stops at the tangent point. Epsilon is SquareTolerance of points confusion.
IntWalk_PWalking::IntWalk_PWalking  (  const Handle< Adaptor3d_HSurface > &  Caro1, 
const Handle< Adaptor3d_HSurface > &  Caro2,  
const Standard_Real  TolTangency,  
const Standard_Real  Epsilon,  
const Standard_Real  Deflection,  
const Standard_Real  Increment,  
const Standard_Real  U1,  
const Standard_Real  V1,  
const Standard_Real  U2,  
const Standard_Real  V2  
) 
Returns the intersection line containing the exact point Poin. This line is a polygonal line. Deflection is the maximum deflection admitted between two consecutive points on the resulting polyline. TolTangency is the tolerance to find a tangent point. Func is the criterion which has to be evaluated at each solution point (each point of the line). The line found starts at a point on or in 2 natural domains of surfaces. It can be closed in the standard case if it is open it stops and begins at the border of one of the domains. If an open line stops at the middle of a domain, one stops at the tangent point. Epsilon is SquareTolerance of points confusion.
void IntWalk_PWalking::AddAPoint  (  Handle< IntSurf_LineOn2S > &  line, 
const IntSurf_PntOn2S &  POn2S  
) 
Standard_Boolean IntWalk_PWalking::IsClosed  (  )  const 
Returns True if the line is closed. An exception is raised if IsDone returns False.
Standard_Boolean IntWalk_PWalking::IsDone  (  )  const 
Returns true if the calculus was successful.
const Handle< IntSurf_LineOn2S >& IntWalk_PWalking::Line  (  )  const 
Standard_Integer IntWalk_PWalking::NbPoints  (  )  const 
Returns the number of points of the resulting polyline. An exception is raised if IsDone returns False.
void IntWalk_PWalking::Perform  (  const TColStd_Array1OfReal &  ParDep  ) 
calculate the line of intersection
void IntWalk_PWalking::Perform  (  const TColStd_Array1OfReal &  ParDep, 
const Standard_Real  u1min,  
const Standard_Real  v1min,  
const Standard_Real  u2min,  
const Standard_Real  v2min,  
const Standard_Real  u1max,  
const Standard_Real  v1max,  
const Standard_Real  u2max,  
const Standard_Real  v2max  
) 
calculate the line of intersection. The regulation of steps is done using min and max values on u and v. (if this data is not presented as in the previous method, the initial steps are calculated starting from min and max uv of faces).
Standard_Boolean IntWalk_PWalking::PerformFirstPoint  (  const TColStd_Array1OfReal &  ParDep, 
IntSurf_PntOn2S &  FirstPoint  
) 
calculate the first point of a line of intersection
Standard_Boolean IntWalk_PWalking::PutToBoundary  (  const Handle< Adaptor3d_HSurface > &  theASurf1, 
const Handle< Adaptor3d_HSurface > &  theASurf2  
) 
void IntWalk_PWalking::RepartirOuDiviser  (  Standard_Boolean &  DejaReparti, 
IntImp_ConstIsoparametric &  ChoixIso,  
Standard_Boolean &  Arrive  
) 
Standard_Boolean IntWalk_PWalking::SeekAdditionalPoints  (  const Handle< Adaptor3d_HSurface > &  theASurf1, 
const Handle< Adaptor3d_HSurface > &  theASurf2,  
const Standard_Integer  theMinNbPoints  
) 
Standard_Boolean IntWalk_PWalking::TangentAtFirst  (  )  const 
Returns True if the surface are tangent at the first point of the line. An exception is raised if IsDone returns False.
Standard_Boolean IntWalk_PWalking::TangentAtLast  (  )  const 
Returns true if the surface are tangent at the last point of the line. An exception is raised if IsDone returns False.
const gp_Dir& IntWalk_PWalking::TangentAtLine  (  Standard_Integer &  Index  )  const 
Standard_Boolean IntWalk_PWalking::TestArret  (  const Standard_Boolean  DejaReparti, 
TColStd_Array1OfReal &  Param,  
IntImp_ConstIsoparametric &  ChoixIso  
) 
IntWalk_StatusDeflection IntWalk_PWalking::TestDeflection  (  ) 
const IntSurf_PntOn2S& IntWalk_PWalking::Value  (  const Standard_Integer  Index  )  const 
Returns the point of range Index on the polyline. An exception is raised if IsDone returns False. An exception is raised if Index<=0 or Index>NbPoints.