Open CASCADE Technology  7.2.0
Public Member Functions
IntPatch_PrmPrmIntersection Class Reference

Implementation of the Intersection between two bi-parametrised surfaces. More...

#include <IntPatch_PrmPrmIntersection.hxx>

Public Member Functions

 IntPatch_PrmPrmIntersection ()
 Empty Constructor. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const IntPatch_Polyhedron &Polyhedron1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_HSurface > &Caro2, const IntPatch_Polyhedron &Polyhedron2, const Handle< Adaptor3d_TopolTool > &Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)
 Performs the intersection between <Caro1> and <Caro2>. Associated Polyhedrons <Polyhedron1> and <Polyhedron2> are given. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const IntPatch_Polyhedron &Polyhedron1, const Handle< Adaptor3d_TopolTool > &Domain1, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_HSurface > &Caro2, const Handle< Adaptor3d_TopolTool > &Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment, const Standard_Boolean ClearFlag=Standard_True)
 Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_HSurface > &Caro2, const Handle< Adaptor3d_TopolTool > &Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment, IntSurf_ListOfPntOn2S &ListOfPnts, const Standard_Boolean RestrictLine)
 Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_HSurface > &Caro2, const Handle< Adaptor3d_TopolTool > &Domain2, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)
 Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)
 Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_HSurface > &Caro2, const IntPatch_Polyhedron &Polyhedron2, const Handle< Adaptor3d_TopolTool > &Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)
 Performs the intersection between <Caro1> and <Caro2>. More...
 
void Perform (const Handle< Adaptor3d_HSurface > &Caro1, const IntPatch_Polyhedron &Polyhedron1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_HSurface > &Caro2, const Handle< Adaptor3d_TopolTool > &Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment)
 Performs the intersection between <Caro1> and <Caro2>. More...
 
Standard_Boolean IsDone () const
 Returns true if the calculus was succesfull. More...
 
Standard_Boolean IsEmpty () const
 Returns true if the is no intersection. 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...
 
Handle< IntPatch_LineNewLine (const Handle< Adaptor3d_HSurface > &Caro1, const Handle< Adaptor3d_HSurface > &Caro2, const Standard_Integer IndexLine, const Standard_Integer LowPoint, const Standard_Integer HighPoint, const Standard_Integer NbPoints) const
 Computes about <NbPoints> Intersection Points on the Line <IndexLine> between the Points of Index <LowPoint> and <HighPoint>. More...
 
Standard_Integer GrilleInteger (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz) const
 
void IntegerGrille (const Standard_Integer t, Standard_Integer &ix, Standard_Integer &iy, Standard_Integer &iz) const
 
Standard_Integer DansGrille (const Standard_Integer t) const
 
Standard_Integer NbPointsGrille () const
 
void RemplitLin (const Standard_Integer x1, const Standard_Integer y1, const Standard_Integer z1, const Standard_Integer x2, const Standard_Integer y2, const Standard_Integer z2, IntPatch_PrmPrmIntersection_T3Bits &Map) const
 
void RemplitTri (const Standard_Integer x1, const Standard_Integer y1, const Standard_Integer z1, const Standard_Integer x2, const Standard_Integer y2, const Standard_Integer z2, const Standard_Integer x3, const Standard_Integer y3, const Standard_Integer z3, IntPatch_PrmPrmIntersection_T3Bits &Map) const
 
void Remplit (const Standard_Integer a, const Standard_Integer b, const Standard_Integer c, IntPatch_PrmPrmIntersection_T3Bits &Map) const
 
Standard_Integer CodeReject (const Standard_Real x1, const Standard_Real y1, const Standard_Real z1, const Standard_Real x2, const Standard_Real y2, const Standard_Real z2, const Standard_Real x3, const Standard_Real y3, const Standard_Real z3) const
 
void PointDepart (Handle< IntSurf_LineOn2S > &LineOn2S, const Handle< Adaptor3d_HSurface > &S1, const Standard_Integer SU1, const Standard_Integer SV1, const Handle< Adaptor3d_HSurface > &S2, const Standard_Integer SU2, const Standard_Integer SV2) const
 

Detailed Description

Implementation of the Intersection between two bi-parametrised surfaces.

To avoid multiple constructions of the approximated polyhedron of the surfaces, the algorithm can be called whith the two surfaces and their associated polyhedron.

Constructor & Destructor Documentation

◆ IntPatch_PrmPrmIntersection()

IntPatch_PrmPrmIntersection::IntPatch_PrmPrmIntersection ( )

Empty Constructor.

Member Function Documentation

◆ CodeReject()

Standard_Integer IntPatch_PrmPrmIntersection::CodeReject ( const Standard_Real  x1,
const Standard_Real  y1,
const Standard_Real  z1,
const Standard_Real  x2,
const Standard_Real  y2,
const Standard_Real  z2,
const Standard_Real  x3,
const Standard_Real  y3,
const Standard_Real  z3 
) const

◆ DansGrille()

Standard_Integer IntPatch_PrmPrmIntersection::DansGrille ( const Standard_Integer  t) const

◆ GrilleInteger()

Standard_Integer IntPatch_PrmPrmIntersection::GrilleInteger ( const Standard_Integer  ix,
const Standard_Integer  iy,
const Standard_Integer  iz 
) const

◆ IntegerGrille()

void IntPatch_PrmPrmIntersection::IntegerGrille ( const Standard_Integer  t,
Standard_Integer ix,
Standard_Integer iy,
Standard_Integer iz 
) const

◆ IsDone()

Standard_Boolean IntPatch_PrmPrmIntersection::IsDone ( ) const

Returns true if the calculus was succesfull.

◆ IsEmpty()

Standard_Boolean IntPatch_PrmPrmIntersection::IsEmpty ( ) const

Returns true if the is no intersection.

◆ Line()

const Handle< IntPatch_Line >& IntPatch_PrmPrmIntersection::Line ( const Standard_Integer  Index) const

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

◆ NbLines()

Standard_Integer IntPatch_PrmPrmIntersection::NbLines ( ) const

Returns the number of intersection lines.

◆ NbPointsGrille()

Standard_Integer IntPatch_PrmPrmIntersection::NbPointsGrille ( ) const

◆ NewLine()

Handle< IntPatch_Line > IntPatch_PrmPrmIntersection::NewLine ( const Handle< Adaptor3d_HSurface > &  Caro1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const Standard_Integer  IndexLine,
const Standard_Integer  LowPoint,
const Standard_Integer  HighPoint,
const Standard_Integer  NbPoints 
) const

Computes about <NbPoints> Intersection Points on the Line <IndexLine> between the Points of Index <LowPoint> and <HighPoint>.

All the points of the line of index <IndexLine> with an index between <LowPoint> and <HighPoint> are in the returned line. New Points are inserted between existing points if those points are not too closed.

An exception is raised if Index<=0 or Index>NbLine. or if IsDone returns False

◆ Perform() [1/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const IntPatch_Polyhedron Polyhedron1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const IntPatch_Polyhedron Polyhedron2,
const Handle< Adaptor3d_TopolTool > &  Domain2,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment 
)

Performs the intersection between <Caro1> and <Caro2>. Associated Polyhedrons <Polyhedron1> and <Polyhedron2> are given.

◆ Perform() [2/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const IntPatch_Polyhedron Polyhedron1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment 
)

◆ Perform() [3/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const Handle< Adaptor3d_TopolTool > &  Domain2,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment,
const Standard_Boolean  ClearFlag = Standard_True 
)

Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

◆ Perform() [4/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const Handle< Adaptor3d_TopolTool > &  Domain2,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment,
IntSurf_ListOfPntOn2S ListOfPnts,
const Standard_Boolean  RestrictLine 
)

Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

◆ Perform() [5/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const Handle< Adaptor3d_TopolTool > &  Domain2,
const Standard_Real  U1,
const Standard_Real  V1,
const Standard_Real  U2,
const Standard_Real  V2,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment 
)

Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

◆ Perform() [6/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment 
)

Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

◆ Perform() [7/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const IntPatch_Polyhedron Polyhedron2,
const Handle< Adaptor3d_TopolTool > &  Domain2,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment 
)

Performs the intersection between <Caro1> and <Caro2>.

The polyhedron which approximates <Caro2>, <Polyhedron2> is given. The other one is computed.

◆ Perform() [8/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_HSurface > &  Caro1,
const IntPatch_Polyhedron Polyhedron1,
const Handle< Adaptor3d_TopolTool > &  Domain1,
const Handle< Adaptor3d_HSurface > &  Caro2,
const Handle< Adaptor3d_TopolTool > &  Domain2,
const Standard_Real  TolTangency,
const Standard_Real  Epsilon,
const Standard_Real  Deflection,
const Standard_Real  Increment 
)

Performs the intersection between <Caro1> and <Caro2>.

The polyhedron which approximates <Caro1>, <Polyhedron1> is given. The other one is computed.

◆ PointDepart()

void IntPatch_PrmPrmIntersection::PointDepart ( Handle< IntSurf_LineOn2S > &  LineOn2S,
const Handle< Adaptor3d_HSurface > &  S1,
const Standard_Integer  SU1,
const Standard_Integer  SV1,
const Handle< Adaptor3d_HSurface > &  S2,
const Standard_Integer  SU2,
const Standard_Integer  SV2 
) const

◆ Remplit()

void IntPatch_PrmPrmIntersection::Remplit ( const Standard_Integer  a,
const Standard_Integer  b,
const Standard_Integer  c,
IntPatch_PrmPrmIntersection_T3Bits Map 
) const

◆ RemplitLin()

void IntPatch_PrmPrmIntersection::RemplitLin ( const Standard_Integer  x1,
const Standard_Integer  y1,
const Standard_Integer  z1,
const Standard_Integer  x2,
const Standard_Integer  y2,
const Standard_Integer  z2,
IntPatch_PrmPrmIntersection_T3Bits Map 
) const

◆ RemplitTri()

void IntPatch_PrmPrmIntersection::RemplitTri ( const Standard_Integer  x1,
const Standard_Integer  y1,
const Standard_Integer  z1,
const Standard_Integer  x2,
const Standard_Integer  y2,
const Standard_Integer  z2,
const Standard_Integer  x3,
const Standard_Integer  y3,
const Standard_Integer  z3,
IntPatch_PrmPrmIntersection_T3Bits Map 
) const

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