Open CASCADE Technology 7.8.2.dev
|
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_Line > | 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>. | |
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 |
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.
IntPatch_PrmPrmIntersection::IntPatch_PrmPrmIntersection | ( | ) |
Empty Constructor.
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 |
Standard_Integer IntPatch_PrmPrmIntersection::DansGrille | ( | const Standard_Integer | t | ) | const |
Standard_Integer IntPatch_PrmPrmIntersection::GrilleInteger | ( | const Standard_Integer | ix, |
const Standard_Integer | iy, | ||
const Standard_Integer | iz ) const |
void IntPatch_PrmPrmIntersection::IntegerGrille | ( | const Standard_Integer | t, |
Standard_Integer & | ix, | ||
Standard_Integer & | iy, | ||
Standard_Integer & | iz ) const |
Standard_Boolean IntPatch_PrmPrmIntersection::IsDone | ( | ) | const |
Returns true if the calculus was successful.
Standard_Boolean IntPatch_PrmPrmIntersection::IsEmpty | ( | ) | const |
Returns true if the is no intersection.
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.
Standard_Integer IntPatch_PrmPrmIntersection::NbLines | ( | ) | const |
Returns the number of intersection lines.
Standard_Integer IntPatch_PrmPrmIntersection::NbPointsGrille | ( | ) | const |
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
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.
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.
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.
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.
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.
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.
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.
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 ) |
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 |
void IntPatch_PrmPrmIntersection::Remplit | ( | const Standard_Integer | a, |
const Standard_Integer | b, | ||
const Standard_Integer | c, | ||
IntPatch_PrmPrmIntersection_T3Bits & | Map ) const |
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 |
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 |