Open CASCADE Technology  7.1.0.beta
Public Types | Public Member Functions

IntPatch_ImpImpIntersection Class Reference

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

Detailed Description

Implementation of the intersection between two quadric patches : Plane, Cone, Cylinder or Sphere.

Member Enumeration Documentation

Enumerator
IntStatus_OK 

OK. Good intersection result.

IntStatus_InfiniteSectionCurve 

Intersection curve is too long (e.g. as in the bug #26894). We cannot provide precise computation of value and derivatives of this curve having used floating-point model determined by IEEE 754 standard. As result, OCCT algorithms cannot work with that curve correctly.

IntStatus_Fail 

Algorithm cannot finish correctly.

Constructor & Destructor Documentation

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.

Member Function Documentation

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.


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