Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 occ::handle< Adaptor3d_Surface > &S1, const occ::handle< Adaptor3d_TopolTool > &D1, const occ::handle< Adaptor3d_Surface > &S2, const occ::handle< Adaptor3d_TopolTool > &D2, const double TolArc, const double TolTang, const bool theIsReqToKeepRLine=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.
 
void Perform (const occ::handle< Adaptor3d_Surface > &S1, const occ::handle< Adaptor3d_TopolTool > &D1, const occ::handle< Adaptor3d_Surface > &S2, const occ::handle< Adaptor3d_TopolTool > &D2, const double TolArc, const double TolTang, const bool theIsReqToKeepRLine=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.
 
bool IsDone () const
 Returns True if the calculus was successful.
 
IntStatus GetStatus () const
 Returns status.
 
bool IsEmpty () const
 Returns true if the is no intersection.
 
bool 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.
 
bool 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.
 
int NbPnts () const
 Returns the number of "single" points.
 
const IntPatch_PointPoint (const int Index) const
 Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.
 
int NbLines () const
 Returns the number of intersection lines.
 
const occ::handle< IntPatch_Line > & Line (const int Index) const
 Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.
 

Detailed Description

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

Member Enumeration Documentation

◆ IntStatus

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() [1/2]

IntPatch_ImpImpIntersection::IntPatch_ImpImpIntersection ( )

◆ IntPatch_ImpImpIntersection() [2/2]

IntPatch_ImpImpIntersection::IntPatch_ImpImpIntersection ( const occ::handle< Adaptor3d_Surface > & S1,
const occ::handle< Adaptor3d_TopolTool > & D1,
const occ::handle< Adaptor3d_Surface > & S2,
const occ::handle< Adaptor3d_TopolTool > & D2,
const double TolArc,
const double TolTang,
const bool theIsReqToKeepRLine = 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

◆ GetStatus()

IntStatus IntPatch_ImpImpIntersection::GetStatus ( ) const

Returns status.

◆ IsDone()

bool IntPatch_ImpImpIntersection::IsDone ( ) const

Returns True if the calculus was successful.

◆ IsEmpty()

bool IntPatch_ImpImpIntersection::IsEmpty ( ) const

Returns true if the is no intersection.

◆ Line()

const occ::handle< IntPatch_Line > & IntPatch_ImpImpIntersection::Line ( const int Index) const

Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.

◆ NbLines()

int IntPatch_ImpImpIntersection::NbLines ( ) const

Returns the number of intersection lines.

◆ NbPnts()

int IntPatch_ImpImpIntersection::NbPnts ( ) const

Returns the number of "single" points.

◆ OppositeFaces()

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

◆ Perform()

void IntPatch_ImpImpIntersection::Perform ( const occ::handle< Adaptor3d_Surface > & S1,
const occ::handle< Adaptor3d_TopolTool > & D1,
const occ::handle< Adaptor3d_Surface > & S2,
const occ::handle< Adaptor3d_TopolTool > & D2,
const double TolArc,
const double TolTang,
const bool theIsReqToKeepRLine = 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.

◆ Point()

const IntPatch_Point & IntPatch_ImpImpIntersection::Point ( const int Index) const

Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.

◆ TangentFaces()

bool 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: