Open CASCADE Technology
7.5.0

Implementation of the intersection between two quadric patches : Plane, Cone, Cylinder or Sphere. More...
#include <IntPatch_ImpImpIntersection.hxx>
Public Types  
enum  IntStatus { IntStatus_OK, IntStatus_InfiniteSectionCurve, IntStatus_Fail } 
Public Member Functions  
IntPatch_ImpImpIntersection ()  
IntPatch_ImpImpIntersection (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 theIsReqToKeepRLine=Standard_False)  
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. 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 theIsReqToKeepRLine=Standard_False) 
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. More...  
Standard_Boolean  IsDone () const 
Returns True if the calculus was successful. More...  
IntStatus  GetStatus () const 
Returns status. 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_Point &  Point (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...  
Implementation of the intersection between two quadric patches : Plane, Cone, Cylinder or Sphere.
IntPatch_ImpImpIntersection::IntPatch_ImpImpIntersection  (  ) 
IntPatch_ImpImpIntersection::IntPatch_ImpImpIntersection  (  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  theIsReqToKeepRLine = Standard_False 

) 
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.
IntStatus IntPatch_ImpImpIntersection::GetStatus  (  )  const 
Returns status.
Standard_Boolean IntPatch_ImpImpIntersection::IsDone  (  )  const 
Returns True if the calculus was successful.
Standard_Boolean IntPatch_ImpImpIntersection::IsEmpty  (  )  const 
Returns true if the is no intersection.
const Handle< IntPatch_Line >& IntPatch_ImpImpIntersection::Line  (  const Standard_Integer  Index  )  const 
Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.
Standard_Integer IntPatch_ImpImpIntersection::NbLines  (  )  const 
Returns the number of intersection lines.
Standard_Integer IntPatch_ImpImpIntersection::NbPnts  (  )  const 
Returns the number of "single" points.
Standard_Boolean IntPatch_ImpImpIntersection::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.
void IntPatch_ImpImpIntersection::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  theIsReqToKeepRLine = Standard_False 

) 
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.
const IntPatch_Point& IntPatch_ImpImpIntersection::Point  (  const Standard_Integer  Index  )  const 
Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.
Standard_Boolean IntPatch_ImpImpIntersection::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.