Open CASCADE Technology 7.8.2.dev
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.
 
void Perform (const Handle< Adaptor3d_Surface > &Caro1, const IntPatch_Polyhedron &Polyhedron1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_Surface > &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.
 
void Perform (const Handle< Adaptor3d_Surface > &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_Surface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_Surface > &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.
 
void Perform (const Handle< Adaptor3d_Surface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_Surface > &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)
 Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.
 
void Perform (const Handle< Adaptor3d_Surface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_Surface > &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.
 
void Perform (const Handle< Adaptor3d_Surface > &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.
 
void Perform (const Handle< Adaptor3d_Surface > &Caro1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_Surface > &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>.
 
void Perform (const Handle< Adaptor3d_Surface > &Caro1, const IntPatch_Polyhedron &Polyhedron1, const Handle< Adaptor3d_TopolTool > &Domain1, const Handle< Adaptor3d_Surface > &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>.
 
Standard_Boolean IsDone () const
 Returns true if the calculus was successful.
 
Standard_Boolean IsEmpty () const
 Returns true if the is no intersection.
 
Standard_Integer NbLines () const
 Returns the number of intersection lines.
 
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.
 
Handle< IntPatch_LineNewLine (const Handle< Adaptor3d_Surface > &Caro1, const Handle< Adaptor3d_Surface > &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>.
 
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_Surface > &S1, const Standard_Integer SU1, const Standard_Integer SV1, const Handle< Adaptor3d_Surface > &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 with 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 successful.

◆ 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_Surface > & Caro1,
const Handle< Adaptor3d_Surface > & 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_Surface > & Caro1,
const Handle< Adaptor3d_TopolTool > & Domain1,
const Handle< Adaptor3d_Surface > & 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() [2/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & Caro1,
const Handle< Adaptor3d_TopolTool > & Domain1,
const Handle< Adaptor3d_Surface > & 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 )

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

◆ Perform() [3/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & Caro1,
const Handle< Adaptor3d_TopolTool > & Domain1,
const Handle< Adaptor3d_Surface > & 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() [4/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & Caro1,
const Handle< Adaptor3d_TopolTool > & Domain1,
const Handle< Adaptor3d_Surface > & 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() [5/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & 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() [6/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & Caro1,
const IntPatch_Polyhedron & Polyhedron1,
const Handle< Adaptor3d_TopolTool > & Domain1,
const Handle< Adaptor3d_Surface > & 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.

◆ Perform() [7/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & Caro1,
const IntPatch_Polyhedron & Polyhedron1,
const Handle< Adaptor3d_TopolTool > & Domain1,
const Handle< Adaptor3d_Surface > & 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() [8/8]

void IntPatch_PrmPrmIntersection::Perform ( const Handle< Adaptor3d_Surface > & 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 )

◆ PointDepart()

void IntPatch_PrmPrmIntersection::PointDepart ( Handle< IntSurf_LineOn2S > & LineOn2S,
const Handle< Adaptor3d_Surface > & S1,
const Standard_Integer SU1,
const Standard_Integer SV1,
const Handle< Adaptor3d_Surface > & 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: