IntPatch
OCCT package IntPatch: IntPatch_ALine, IntPatch_ALineToWLine, IntPatch_ArcFunction, IntPatch_BVHTraversal, and 34 more bound classes.
IntPatch_ALine
Implementation of an intersection line described by a parametrized curve.
Constructors(3)
- constructor(C: IntAna_Curve, Tang: boolean): IntPatch_ALine
Creates an analytic intersection line when the transitions are Undecided.
Parameters (2)CTang
- constructor(C: IntAna_Curve, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_ALine
Creates an analytic intersection line when the transitions are In or Out.
Parameters (4)CTangTrans1Trans2
- constructor(C: IntAna_Curve, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_ALine
Creates an analytic intersection line when the transitions are Touch.
Parameters (4)CTangSitu1Situ2
Static methods(2)
- get_type_name(): string
Instance methods(19)
- AddVertex(Pnt: IntPatch_Point): void
To add a vertex in the list.
Parameters (1)Pnt
- Replace(Index: number, Pnt: IntPatch_Point): void
Replaces the element of range Index in the list of points.
Parameters (2)IndexPnt
- SetFirstPoint(IndFirst: number): voidParameters (1)
IndFirst
- SetLastPoint(IndLast: number): voidParameters (1)
IndLast
- FirstParameter(IsIncluded: boolean): { returnValue: number; IsIncluded: boolean }
Returns the first parameter on the intersection line. If IsIncluded returns True, Value and D1 methods can be call with a parameter equal to FirstParameter. Otherwise, the parameter must be greater than FirstParameter.
Parameters (1)IsIncluded
ReturnsA result object with fields:
returnValue: the C++ return valueIsIncluded: updated value from the call.
- LastParameter(IsIncluded: boolean): { returnValue: number; IsIncluded: boolean }
Returns the last parameter on the intersection line. If IsIncluded returns True, Value and D1 methods can be call with a parameter equal to LastParameter. Otherwise, the parameter must be less than LastParameter.
Parameters (1)IsIncluded
ReturnsA result object with fields:
returnValue: the C++ return valueIsIncluded: updated value from the call.
Returns the point of parameter U on the analytic intersection line.
Parameters (1)U
Returns true when the derivative at parameter U is defined on the analytic intersection line. In that case, Du is the derivative. Returns false when it is not possible to evaluate the derivative. In both cases, P is the point at parameter U on the intersection.
Parameters (3)UP—Mutated in place; read the updated value from this argument after the call.Du—Mutated in place; read the updated value from this argument after the call.
- FindParameter(P: gp_Pnt, theParams: NCollection_List_double): void
Tries to find the parameters of the point P on the curve. If the method returns False, the "projection" is impossible. If the method returns True at least one parameter has been found. theParams is always sorted in ascending order.
Parameters (2)PtheParams—Mutated in place; read the updated value from this argument after the call.
- HasFirstPoint(): boolean
Returns True if the line has a known First point. This point is given by the method
FirstPoint(). - HasLastPoint(): boolean
Returns True if the line has a known Last point. This point is given by the method
LastPoint(). Returns the IntPoint corresponding to the FirstPoint. An exception is raised when HasFirstPoint returns False.
Returns the IntPoint corresponding to the LastPoint. An exception is raised when HasLastPoint returns False.
- NbVertex(): number
- Vertex(Index: number): IntPatch_Point
Returns the vertex of range Index on the line.
Parameters (1)Index
- ChangeVertex(theIndex: number): IntPatch_Point
Allows modifying the vertex with index theIndex on the line.
Parameters (1)theIndex
- ComputeVertexParameters(Tol: number): void
Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.
Parameters (1)Tol
IntPatch_ALineToWLine
Constructors(1)
- constructor(theS1: Adaptor3d_Surface, theS2: Adaptor3d_Surface, theNbPoints?: number): IntPatch_ALineToWLine
Constructor.
Parameters (3)theS1theS2theNbPoints
Instance methods(8)
- SetTolOpenDomain(aT: number): voidParameters (1)
aT
- TolOpenDomain(): number
- SetTolTransition(aT: number): voidParameters (1)
aT
- TolTransition(): number
- SetTol3D(aT: number): voidParameters (1)
aT
- Tol3D(): number
- MakeWLine(aline: IntPatch_ALine, theLines: NCollection_Sequence_handle_IntPatch_Line): void
Converts aline to the set of Walking-lines and adds them in theLines.
Parameters (2)alinetheLines—Mutated in place; read the updated value from this argument after the call.
- MakeWLine(aline: IntPatch_ALine, paraminf: number, paramsup: number, theLines: NCollection_Sequence_handle_IntPatch_Line): void
Converts aline (limited by paraminf and paramsup) to the set of Walking-lines and adds them in theLines.
Parameters (4)alineparaminfparamsuptheLines—Mutated in place; read the updated value from this argument after the call.
IntPatch_ArcFunction
Constructors(1)
Instance methods(13)
- SetQuadric(Q: IntSurf_Quadric): voidParameters (1)
Q
- Set(A: Adaptor2d_Curve2d): voidParameters (1)
A
- Set(S: Adaptor3d_Surface): voidParameters (1)
S
- Value(X: number, F: number): { returnValue: boolean; F: number }
Computes the value <F>of the function for the variable <X>. Returns True if the calculation were successfully done, False otherwise.
Parameters (2)XF
ReturnsA result object with fields:
returnValue: the C++ return valueF: updated value from the call.
- Derivative(X: number, D: number): { returnValue: boolean; D: number }
Computes the derivative <D> of the function for the variable <X>. Returns True if the calculation were successfully done, False otherwise.
Parameters (2)XD
ReturnsA result object with fields:
returnValue: the C++ return valueD: updated value from the call.
- Values(X: number, F: number, D: number): { returnValue: boolean; F: number; D: number }
Computes the value <F> and the derivative <D> of the function for the variable <X>. Returns True if the calculation were successfully done, False otherwise.
Parameters (3)XFD
ReturnsA result object with fields:
returnValue: the C++ return valueF: updated value from the call.D: updated value from the call.
- NbSamples(): number
- GetStateNumber(): number
returns the state of the function corresponding to the latest call of any methods associated with the function.
This function is called by each of the algorithms described later which defined the function Integer Algorithm::StateNumber().
The algorithm has the responsibility to call this function when it has found a solution (i.e. a root or a minimum) and has to maintain the association between the solution found and this StateNumber. Byu default, this method returns 0 (which means for the algorithm: no state has been saved).
It is the responsibility of the programmer to decide if he needs to save the current state of the function and to return an Integer that allows retrieval of the state. - Parameters (1)
Index
Returns the point, which has been computed while the last calling
Value()method.
IntPatch_BVHTraversal
Performs BVH tree traversal of two polyhedra to find candidate triangle pairs for intersection testing. This class implements the BVH_PairTraverse interface to efficiently find potentially intersecting triangles using bounding box tests.
The traversal collects pairs of original (1-based) triangle indices that have overlapping bounding boxes, which should then be tested for actual geometric intersection using IntPatch_InterferencePolyhedron::Intersect().
Constructors(1)
Creates an empty traversal object.
Instance methods(4)
- Perform(theSet1: IntPatch_PolyhedronBVH, theSet2: IntPatch_PolyhedronBVH, theSelfInterference: boolean): number
Performs
BVHtraversal and collects candidate triangle pairs.Parameters (3)theSet1—BVHset for the first polyhedron Mutated in place; read the updated value from this argument after the call.theSet2—BVHset for the second polyhedron Mutated in place; read the updated value from this argument after the call.theSelfInterference—if true, skip pairs where first index >= second index (used for self-intersection where we don't want to test same pair twice)
Returnsnumber of collected pairs
- Pairs(): any
Returns the collected triangle pairs.
- Clear(): void
Clears the collected pairs.
- Accept(theIndex1: number, theIndex2: number): booleanParameters (2)
theIndex1theIndex2
Properties(1)
IntPatch_BVHTraversal_TrianglePair
Constructors(1)
- constructor(theFirst?: number, theSecond?: number): IntPatch_BVHTraversal_TrianglePairParameters (2)
theFirsttheSecond
Properties(2)
IntPatch_CSFunction
this function is associated to the intersection between a curve on surface and a surface.
Constructors(1)
- constructor(S1: Adaptor3d_Surface, C: Adaptor2d_Curve2d, S2: Adaptor3d_Surface): IntPatch_CSFunction
S1 is the surface on which the intersection is searched. C is a curve on the surface S2.
Parameters (3)S1CS2
Instance methods(9)
- NbVariables(): number
Returns the number of variables of the function.
- NbEquations(): number
Returns the number of equations of the function.
- Value(X: math_Vector, F: math_Vector): boolean
Computes the values <F> of the Functions for the variable <X>. Returns True if the computation was done successfully, False otherwise.
Parameters (2)XF
- Derivatives(X: math_Vector, D: math_Matrix): boolean
Returns the values <D> of the derivatives for the variable <X>. Returns True if the computation was done successfully, False otherwise.
Parameters (2)XD
- Values(X: math_Vector, F: math_Vector, D: math_Matrix): boolean
returns the values <F> of the functions and the derivatives <D> for the variable <X>. Returns True if the computation was done successfully, False otherwise.
Parameters (3)XFD
- Root(): number
IntPatch_CurvIntSurf
Constructors(2)
- constructor(F: IntPatch_CSFunction, TolTangency: number): IntPatch_CurvIntSurf
initialize the parameters to compute the solution
Parameters (2)FTolTangency
- constructor(U: number, V: number, W: number, F: IntPatch_CSFunction, TolTangency: number, MarginCoef?: number): IntPatch_CurvIntSurf
compute the solution point with the close point MarginCoef is the coefficient for extension of UV bounds. Ex., UFirst -= MarginCoef*(ULast-UFirst)
Parameters (6)UVWFTolTangencyMarginCoef
Instance methods(7)
- Perform(U: number, V: number, W: number, Rsnld: math_FunctionSetRoot, u0: number, v0: number, u1: number, v1: number, w0: number, w1: number): void
compute the solution it's possible to write to optimize: IntImp_IntCS inter(S1,C1,Toltangency)
math_FunctionSetRootrsnld(Inter.function()) while ...{ u=... v=... w=... inter.Perform(u,v,w,rsnld) } or IntImp_IntCS inter(Toltangency) inter.SetSurface(S);math_FunctionSetRootrsnld(Inter.function()) while ...{ C=... inter.SetCurve(C); u=... v=... w=... inter.Perform(u,v,w,rsnld) }Parameters (10)UVWRsnldu0v0u1v1w0w1
- IsDone(): boolean
Returns TRUE if the creation completed without failure.
- IsEmpty(): boolean
returns the intersection point The exception NotDone is raised if IsDone is false. The exception DomainError is raised if IsEmpty is true.
- ParameterOnCurve(): number
- ParameterOnSurface(U: number, V: number): { U: number; V: number }Parameters (2)
UV
return the math function which is used to compute the intersection
IntPatch_GLine
Implementation of an intersection line represented by a conic.
Constructors(15)
- constructor(L: gp_Lin, Tang: boolean): IntPatch_GLine
Creates a Line as intersection line when the transitions are Undecided.
Parameters (2)LTang
- constructor(C: gp_Circ, Tang: boolean): IntPatch_GLine
Creates a circle as intersection line when the transitions are Undecided.
Parameters (2)CTang
- constructor(E: gp_Elips, Tang: boolean): IntPatch_GLine
Creates an ellipse as intersection line when the transitions are Undecided.
Parameters (2)ETang
- constructor(P: gp_Parab, Tang: boolean): IntPatch_GLine
Creates a parabola as intersection line when the transitions are Undecided.
Parameters (2)PTang
- constructor(H: gp_Hypr, Tang: boolean): IntPatch_GLine
Creates an hyperbola as intersection line when the transitions are Undecided.
Parameters (2)HTang
- constructor(L: gp_Lin, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_GLine
Creates a Line as intersection line when the transitions are In or Out.
Parameters (4)LTangTrans1Trans2
- constructor(L: gp_Lin, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_GLine
Creates a Line as intersection line when the transitions are Touch.
Parameters (4)LTangSitu1Situ2
- constructor(C: gp_Circ, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_GLine
Creates a circle as intersection line when the transitions are In or Out.
Parameters (4)CTangTrans1Trans2
- constructor(C: gp_Circ, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_GLine
Creates a circle as intersection line when the transitions are Touch.
Parameters (4)CTangSitu1Situ2
- constructor(E: gp_Elips, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_GLine
Creates an ellipse as intersection line when the transitions are In or Out.
Parameters (4)ETangTrans1Trans2
- constructor(E: gp_Elips, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_GLine
Creates an ellispe as intersection line when the transitions are Touch.
Parameters (4)ETangSitu1Situ2
- constructor(P: gp_Parab, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_GLine
Creates a parabola as intersection line when the transitions are In or Out.
Parameters (4)PTangTrans1Trans2
- constructor(P: gp_Parab, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_GLine
Creates a parabola as intersection line when the transitions are Touch.
Parameters (4)PTangSitu1Situ2
- constructor(H: gp_Hypr, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_GLine
Creates an hyperbola as intersection line when the transitions are In or Out.
Parameters (4)HTangTrans1Trans2
- constructor(H: gp_Hypr, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_GLine
Creates an hyperbola as intersection line when the transitions are Touch.
Parameters (4)HTangSitu1Situ2
Static methods(2)
- get_type_name(): string
Instance methods(17)
- AddVertex(Pnt: IntPatch_Point): void
To add a vertex in the list.
Parameters (1)Pnt
- Replace(Index: number, Pnt: IntPatch_Point): void
To replace the element of range Index in the list of points.
Parameters (2)IndexPnt
- SetFirstPoint(IndFirst: number): voidParameters (1)
IndFirst
- SetLastPoint(IndLast: number): voidParameters (1)
IndLast
Returns the Lin from gp corresponding to the intersection when ArcType returns
IntPatch_Line.Returns the Circ from gp corresponding to the intersection when ArcType returns IntPatch_Circle.
Returns the Elips from gp corresponding to the intersection when ArcType returns IntPatch_Ellipse.
Returns the Parab from gp corresponding to the intersection when ArcType returns IntPatch_Parabola.
Returns the Hypr from gp corresponding to the intersection when ArcType returns IntPatch_Hyperbola.
- HasFirstPoint(): boolean
Returns True if the line has a known First point. This point is given by the method
FirstPoint(). - HasLastPoint(): boolean
Returns True if the line has a known Last point. This point is given by the method
LastPoint(). Returns the IntPoint corresponding to the FirstPoint. An exception is raised when HasFirstPoint returns False.
Returns the IntPoint corresponding to the LastPoint. An exception is raised when HasLastPoint returns False.
- NbVertex(): number
- Vertex(Index: number): IntPatch_Point
Returns the vertex of range Index on the line.
Parameters (1)Index
- ComputeVertexParameters(Tol: number): void
Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.
Parameters (1)Tol
IntPatch_HCurve2dTool
Constructors(1)
Static methods(24)
- FirstParameter(C: Adaptor2d_Curve2d): numberParameters (1)
C
- LastParameter(C: Adaptor2d_Curve2d): numberParameters (1)
C
- Parameters (1)
C
- NbIntervals(C: Adaptor2d_Curve2d, S: GeomAbs_Shape): number
Returns the number of intervals for continuity . May be one if Continuity(myclass) >= .
Parameters (2)CS
- Intervals(C: Adaptor2d_Curve2d, T: NCollection_Array1_double, S: GeomAbs_Shape): void
Stores in <T> the parameters bounding the intervals of continuity .
The array must provide enough room to accommodate for the parameters. i.e. T.Length() >NbIntervals()Parameters (3)CT—Mutated in place; read the updated value from this argument after the call.S
- IsClosed(C: Adaptor2d_Curve2d): booleanParameters (1)
C
- IsPeriodic(C: Adaptor2d_Curve2d): booleanParameters (1)
C
- Period(C: Adaptor2d_Curve2d): numberParameters (1)
C
- Value(C: Adaptor2d_Curve2d, U: number): gp_Pnt2d
Computes the point of parameter U on the curve.
Parameters (2)CU
- D0(C: Adaptor2d_Curve2d, U: number, P: gp_Pnt2d): void
Computes the point of parameter U on the curve.
Parameters (3)CUP—Mutated in place; read the updated value from this argument after the call.
- D1(C: Adaptor2d_Curve2d, U: number, P: gp_Pnt2d, V: gp_Vec2d): void
Computes the point of parameter U on the curve with its first derivative. Raised if the continuity of the current interval is not C1.
Parameters (4)CUP—Mutated in place; read the updated value from this argument after the call.V—Mutated in place; read the updated value from this argument after the call.
- D2(C: Adaptor2d_Curve2d, U: number, P: gp_Pnt2d, V1: gp_Vec2d, V2: gp_Vec2d): void
Returns the point P of parameter U, the first and second derivatives V1 and V2. Raised if the continuity of the current interval is not C2.
Parameters (5)CUP—Mutated in place; read the updated value from this argument after the call.V1—Mutated in place; read the updated value from this argument after the call.V2—Mutated in place; read the updated value from this argument after the call.
Returns the point P of parameter U, the first, the second and the third derivative. Raised if the continuity of the current interval is not C3.
Parameters (6)CUP—Mutated in place; read the updated value from this argument after the call.V1—Mutated in place; read the updated value from this argument after the call.V2—Mutated in place; read the updated value from this argument after the call.V3—Mutated in place; read the updated value from this argument after the call.
- DN(C: Adaptor2d_Curve2d, U: number, N: number): gp_Vec2d
The returned vector gives the value of the derivative for the order of derivation N. Raised if the continuity of the current interval is not CN. Raised if N < 1.
Parameters (3)CUN
- Resolution(C: Adaptor2d_Curve2d, R3d: number): number
Returns the parametric resolution corresponding to the real space resolution <R3d>.
Parameters (2)CR3d
Returns the type of the curve in the current interval: Line, Circle, Ellipse, Hyperbola, Parabola, BezierCurve, BSplineCurve, OtherCurve.
Parameters (1)C
- Parameters (1)
C
- Parameters (1)
C
- Parameters (1)
C
- Parameters (1)
C
- Parameters (1)
C
- Parameters (1)
C
- Parameters (1)
C
- NbSamples(C: Adaptor2d_Curve2d, U0: number, U1: number): numberParameters (3)
CU0U1
IntPatch_HInterTool
Tool for the intersection between 2 surfaces. Regroupe pour l instant les methodes hors Adaptor3d...
Constructors(1)
Static methods(20)
- SingularOnUMin(S: Adaptor3d_Surface): booleanParameters (1)
S
- SingularOnUMax(S: Adaptor3d_Surface): booleanParameters (1)
S
- SingularOnVMin(S: Adaptor3d_Surface): booleanParameters (1)
S
- SingularOnVMax(S: Adaptor3d_Surface): booleanParameters (1)
S
- NbSamplesU(S: Adaptor3d_Surface, u1: number, u2: number): numberParameters (3)
Su1u2
- NbSamplesV(S: Adaptor3d_Surface, v1: number, v2: number): numberParameters (3)
Sv1v2
- HasBeenSeen(C: Adaptor2d_Curve2d): boolean
Returns True if all the intersection point and edges are known on the Arc. The intersection point are given as vertices. The intersection edges are given as intervals between two vertices.
Parameters (1)C
- NbSamplesOnArc(A: Adaptor2d_Curve2d): number
returns the number of points which is used to make a sample on the arc. this number is a function of the Surface and the CurveOnSurface complexity.
Parameters (1)A
- Bounds(C: Adaptor2d_Curve2d, Ufirst: number, Ulast: number): { Ufirst: number; Ulast: number }
Returns the parametric limits on the arc C. These limits must be finite : they are either the real limits of the arc, for a finite arc, or a bounding box for an infinite arc.
Parameters (3)CUfirstUlast
ReturnsA result object with fields:
Ufirst: updated value from the call.Ulast: updated value from the call.
- Project(C: Adaptor2d_Curve2d, P: gp_Pnt2d, Paramproj: number, Ptproj: gp_Pnt2d): { returnValue: boolean; Paramproj: number }
Projects the point P on the arc C. If the methods returns true, the projection is successful, and Paramproj is the parameter on the arc of the projected point, Ptproj is the projected Point. If the method returns false, Param proj and Ptproj are not significant.
Parameters (4)CPParamprojPtproj—Mutated in place; read the updated value from this argument after the call.
ReturnsA result object with fields:
returnValue: the C++ return valueParamproj: updated value from the call.
- Tolerance(V: Adaptor3d_HVertex, C: Adaptor2d_Curve2d): number
Returns the parametric tolerance used to consider that the vertex and another point meet, i-e if std::abs(parameter(Vertex) - parameter(OtherPnt))<= Tolerance, the points are "merged".
Parameters (2)VC
- Parameter(V: Adaptor3d_HVertex, C: Adaptor2d_Curve2d): number
Returns the parameter of the vertex V on the arc A.
Parameters (2)VC
- NbPoints(C: Adaptor2d_Curve2d): number
Returns the number of intersection points on the arc A.
Parameters (1)C
- Value(C: Adaptor2d_Curve2d, Index: number, Pt: gp_Pnt, Tol: number, U: number): { Tol: number; U: number }
Returns the value (Pt), the tolerance (Tol), and the parameter (U) on the arc A , of the intersection point of range Index.
Parameters (5)CIndexPt—Mutated in place; read the updated value from this argument after the call.TolU
ReturnsA result object with fields:
Tol: updated value from the call.U: updated value from the call.
- IsVertex(C: Adaptor2d_Curve2d, Index: number): boolean
Returns True if the intersection point of range Index corresponds with a vertex on the arc A.
Parameters (2)CIndex
- Vertex(C: Adaptor2d_Curve2d, Index: number): { V: Adaptor3d_HVertex; [Symbol.dispose](): void }
When IsVertex returns True, this method returns the vertex on the arc A.
Parameters (2)CIndex
ReturnsA result object with fields:
V: owned by the returned envelope.
Dispose the returned envelope to release owned Handle fields.
- NbSegments(C: Adaptor2d_Curve2d): number
returns the number of part of A solution of the of intersection problem.
Parameters (1)C
- HasFirstPoint(C: Adaptor2d_Curve2d, Index: number, IndFirst: number): { returnValue: boolean; IndFirst: number }
Returns True when the segment of range Index is not open at the left side. In that case, IndFirst is the range in the list intersection points (see NbPoints) of the one which defines the left bound of the segment. Otherwise, the method has to return False, and IndFirst has no meaning.
Parameters (3)CIndexIndFirst
ReturnsA result object with fields:
returnValue: the C++ return valueIndFirst: updated value from the call.
- HasLastPoint(C: Adaptor2d_Curve2d, Index: number, IndLast: number): { returnValue: boolean; IndLast: number }
Returns True when the segment of range Index is not open at the right side. In that case, IndLast is the range in the list intersection points (see NbPoints) of the one which defines the right bound of the segment. Otherwise, the method has to return False, and IndLast has no meaning.
Parameters (3)CIndexIndLast
ReturnsA result object with fields:
returnValue: the C++ return valueIndLast: updated value from the call.
- IsAllSolution(C: Adaptor2d_Curve2d): boolean
Returns True when the whole restriction is solution of the intersection problem.
Parameters (1)C
Instance methods(2)
- NbSamplePoints(S: Adaptor3d_Surface): numberParameters (1)
S
- SamplePoint(S: Adaptor3d_Surface, Index: number, U: number, V: number): { U: number; V: number }Parameters (4)
SIndexUV
IntPatch_ImpImpIntersection
Implementation of the intersection between two quadric patches : Plane, Cone, Cylinder or Sphere.
Constructors(2)
- constructor(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, theIsReqToKeepRLine?: boolean): IntPatch_ImpImpIntersection
Flag theIsReqToKeepRLine has been entered only for compatibility with
TopOpeBReppackage. It shall be deleted after deletingTopOpeBRep. When intersection result returnsIntPatch_RLineand anotherIntPatch_Line(not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided.Parameters (7)S1D1S2D2TolArcTolTangtheIsReqToKeepRLine
Instance methods(10)
- Perform(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, theIsReqToKeepRLine?: boolean): void
Flag theIsReqToKeepRLine has been entered only for compatibility with
TopOpeBReppackage. It shall be deleted after deletingTopOpeBRep. When intersection result returnsIntPatch_RLineand anotherIntPatch_Line(not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided.Parameters (7)S1D1S2D2TolArcTolTangtheIsReqToKeepRLine
- IsDone(): boolean
Returns True if the calculus was successful.
- GetStatus(): IntPatch_ImpImpIntersection_IntStatus
Returns status.
- IsEmpty(): boolean
Returns true if the is no intersection.
- TangentFaces(): boolean
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.
- OppositeFaces(): boolean
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.
- NbPnts(): number
Returns the number of "single" points.
- Point(Index: number): IntPatch_Point
Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.
Parameters (1)Index
- NbLines(): number
Returns the number of intersection lines.
- Line(Index: number): IntPatch_Line
Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.
Parameters (1)Index
IntPatch_ImpPrmIntersection
Implementation of the intersection between a natural quadric patch : Plane, Cone, Cylinder or Sphere and a bi-parametrised surface.
Constructors(2)
- constructor(Surf1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, Surf2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, Fleche: number, Pas: number): IntPatch_ImpPrmIntersectionParameters (8)
Surf1D1Surf2D2TolArcTolTangFlechePas
Instance methods(8)
- SetStartPoint(U: number, V: number): void
to search for solution from the given point
Parameters (2)UV
- Perform(Surf1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, Surf2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, Fleche: number, Pas: number): voidParameters (8)
Surf1D1Surf2D2TolArcTolTangFlechePas
- IsDone(): boolean
Returns true if the calculus was successful.
- IsEmpty(): boolean
Returns true if the is no intersection.
- NbPnts(): number
Returns the number of "single" points.
- Point(Index: number): IntPatch_Point
Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.
Parameters (1)Index
- NbLines(): number
Returns the number of intersection lines.
- Line(Index: number): IntPatch_Line
Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.
Parameters (1)Index
IntPatch_InterferencePolyhedron
Computes the interference between two polyhedra or the self interference of a polyhedron. Points of intersection, polylines of intersection and zones of tangence.
Constructors(1)
Constructs an empty interference of Polyhedron.
IntPatch_Intersection
This class provides a generic algorithm to intersect 2 surfaces.
Constructors(3)
- constructor(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, TolArc: number, TolTang: number): IntPatch_IntersectionParameters (4)
S1D1TolArcTolTang
- constructor(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number): IntPatch_IntersectionParameters (6)
S1D1S2D2TolArcTolTang
Static methods(3)
- CheckSingularPoints(theS1: Adaptor3d_Surface, theD1: Adaptor3d_TopolTool, theS2: Adaptor3d_Surface, theDist: number): { returnValue: boolean; theDist: number }
Checks if surface theS1 has degenerated boundary (dS/du or dS/dv = 0) and calculates minimal distance between corresponding singular points and surface theS2 If singular point exists the method returns "true" and stores minimal distance in theDist.
Parameters (4)theS1theD1theS2theDist
ReturnsA result object with fields:
returnValue: the C++ return valuetheDist: updated value from the call.
- DefineUVMaxStep(theS1: Adaptor3d_Surface, theD1: Adaptor3d_TopolTool, theS2: Adaptor3d_Surface, theD2: Adaptor3d_TopolTool): number
Calculates recommended value for myUVMaxStep depending on surfaces and their domains.
Parameters (4)theS1theD1theS2theD2
- PrepareSurfaces(theS1: Adaptor3d_Surface, theD1: Adaptor3d_TopolTool, theS2: Adaptor3d_Surface, theD2: Adaptor3d_TopolTool, Tol: number, theSeqHS1: NCollection_DynamicArray_handle_Adaptor3d_Surface, theSeqHS2: NCollection_DynamicArray_handle_Adaptor3d_Surface): void
Prepares surfaces for intersection.
Parameters (7)theS1theD1theS2theD2ToltheSeqHS1—Mutated in place; read the updated value from this argument after the call.theSeqHS2—Mutated in place; read the updated value from this argument after the call.
Instance methods(15)
- SetTolerances(TolArc: number, TolTang: number, UVMaxStep: number, Fleche: number): void
Set the tolerances used by the algorithms: -- Implicit - Parametric -- Parametric - Parametric -- Implicit - Implicit.
TolArc is used to compute the intersections between the restrictions of a surface and a walking line.
TolTang is used to compute the points on a walking line, and in geometric algorithms.
Fleche is a parameter used in the walking algorithms to provide small curvatures on a line.
UVMaxStep is a parameter used in the walking algorithms to compute the distance between to points in their respective parametric spaces.Parameters (4)TolArcTolTangUVMaxStepFleche
- Perform(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, TolArc: number, TolTang: number): void
Uses for finding self-intersected surfaces.
Parameters (4)S1D1TolArcTolTang
- Perform(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, isGeomInt: boolean, theIsReqToKeepRLine: boolean, theIsReqToPostWLProc: boolean): void
Flag theIsReqToKeepRLine has been entered only for compatibility with
TopOpeBReppackage. It shall be deleted after deletingTopOpeBRep.
When intersection result returnsIntPatch_RLineand anotherIntPatch_Line(not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility withTopOpeBReppackage. It shall be deleted after deletingTopOpeBRep.
If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).Parameters (9)S1D1S2D2TolArcTolTangisGeomInttheIsReqToKeepRLinetheIsReqToPostWLProc
- Perform(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, LOfPnts: NCollection_List_IntSurf_PntOn2S, isGeomInt: boolean, theIsReqToKeepRLine: boolean, theIsReqToPostWLProc: boolean): void
If isGeomInt == false, then method Param-Param intersection will be used. Flag theIsReqToKeepRLine has been entered only for compatibility with
TopOpeBReppackage. It shall be deleted after deletingTopOpeBRep.
When intersection result returnsIntPatch_RLineand anotherIntPatch_Line(not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility withTopOpeBReppackage. It shall be deleted after deletingTopOpeBRep. If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).Parameters (10)S1D1S2D2TolArcTolTangLOfPnts—Mutated in place; read the updated value from this argument after the call.isGeomInttheIsReqToKeepRLinetheIsReqToPostWLProc
- Perform(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, U1: number, V1: number, U2: number, V2: number, TolArc: number, TolTang: number): void
Perform with start point.
Parameters (10)S1D1S2D2U1V1U2V2TolArcTolTang
- IsDone(): boolean
Returns True if the calculus was successful.
- IsEmpty(): boolean
Returns true if the is no intersection.
- TangentFaces(): boolean
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.
- OppositeFaces(): boolean
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.
- NbPnts(): number
Returns the number of "single" points.
- Point(Index: number): IntPatch_Point
Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.
Parameters (1)Index
- NbLines(): number
Returns the number of intersection lines.
- Line(Index: number): IntPatch_Line
Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.
Parameters (1)Index
- Dump(Mode: number, S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool): void
Dump of each result line. Mode for more accurate dumps.
Parameters (5)ModeS1D1S2D2
IntPatch_IType
Properties(8)
IntPatch_Line
Definition of an intersection line between two surfaces. A line may be either geometric : line, circle, ellipse, parabola, hyperbola, as defined in the class GLine, or analytic, as defined in the class ALine, or defined by a set of points (coming from a walking algorithm) as defined in the class WLine.
Static methods(2)
- get_type_name(): string
Instance methods(12)
- SetValue(Uiso1: boolean, Viso1: boolean, Uiso2: boolean, Viso2: boolean): void
To set the values returned by IsUIsoS1,.... The default values are False.
Parameters (4)Uiso1Viso1Uiso2Viso2
Returns the type of geometry 3d (Line, Circle, Parabola, Hyperbola, Ellipse, Analytic, Walking, Restriction).
- IsTangent(): boolean
Returns TRUE if the intersection is a line of tangency between the 2 patches.
Returns the type of the transition of the line for the first surface. The transition is "constant" along the line. The transition is IN if the line is oriented in such a way that the system of vector (N1,N2,T) is right-handed, where N1 is the normal to the first surface at a point P, N2 is the normal to the second surface at a point P, T is the tangent to the intersection line at P. If the system of vector is left-handed, the transition is OUT. When N1 and N2 are colinear all along the intersection line, the transition will be.
- TOUCH, if it is possible to use the 2nd derivatives to determine the position of one surafce compared to the other (see Situation)
- UNDECIDED otherwise.
If one of the transition is TOUCH or UNDECIDED, the other one has got the same value.
Returns the type of the transition of the line for the second surface. The transition is "constant" along the line.
Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of the first patch compared to the second one, when TransitionOnS1 or TransitionOnS2 returns TOUCH. Otherwise, an exception is raised.
Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of the second patch compared to the first one, when TransitionOnS1 or TransitionOnS2 returns TOUCH. Otherwise, an exception is raised.
- IsUIsoOnS1(): boolean
Returns TRUE if the intersection is a U isoparametric curve on the first patch.
- IsVIsoOnS1(): boolean
Returns TRUE if the intersection is a V isoparametric curve on the first patch.
- IsUIsoOnS2(): boolean
Returns TRUE if the intersection is a U isoparametric curve on the second patch.
- IsVIsoOnS2(): boolean
Returns TRUE if the intersection is a V isoparametric curve on the second patch.
IntPatch_LineConstructor
The intersections algorithms compute the intersection on two surfaces and return the intersections lines as IntPatch_Line.
Constructors(1)
- constructor(mode: number): IntPatch_LineConstructorParameters (1)
mode
Instance methods(3)
- Perform(SL: NCollection_Sequence_handle_IntPatch_Line, L: IntPatch_Line, S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, S2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, Tol: number): voidParameters (7)
SLLS1D1S2D2Tol
- NbLines(): number
- Line(index: number): IntPatch_LineParameters (1)
index
IntPatch_Point
Definition of an intersection point between two surfaces. Such a point is contains geometrical information (see the Value method) and logical information.
Constructors(1)
Empty constructor.
Instance methods(34)
- Parameters (1)
Pt
- SetValue(thePOn2S: IntSurf_PntOn2S): void
Sets the value of <pt> member.
Parameters (1)thePOn2S
Sets the values of a point which is on no domain, when both surfaces are implicit ones. If Tangent is True, the point is a point of tangency between the surfaces.
Parameters (3)PtTolTangent
- SetTolerance(Tol: number): voidParameters (1)
Tol
- SetParameters(U1: number, V1: number, U2: number, V2: number): void
Sets the values of the parameters of the point on each surface.
Parameters (4)U1V1U2V2
- SetParameter(Para: number): void
Set the value of the parameter on the intersection line.
Parameters (1)Para
- SetVertex(OnFirst: boolean, V: Adaptor3d_HVertex): void
Sets the values of a point which is a vertex on the initial facet of restriction of one of the surface. If OnFirst is True, the point is on the domain of the first patch, otherwise the point is on the domain of the second surface.
Parameters (2)OnFirstV
- SetArc(OnFirst: boolean, A: Adaptor2d_Curve2d, Param: number, TLine: IntSurf_Transition, TArc: IntSurf_Transition): void
Sets the values of a point which is on one of the domain, when both surfaces are implicit ones. If OnFirst is True, the point is on the domain of the first patch, otherwise the point is on the domain of the second surface.
Parameters (5)OnFirstAParamTLineTArc
- SetMultiple(IsMult: boolean): void
Sets (or unsets) the point as a point on several intersection line.
Parameters (1)IsMult
Returns the intersection point (geometric information).
- ParameterOnLine(): number
This method returns the parameter of the point on the intersection line. If the points does not belong to an intersection line, the value returned does not have any sens.
- Tolerance(): number
This method returns the fuzziness on the point.
- IsTangencyPoint(): boolean
Returns True if the Point is a tangency point between the surfaces. If the Point is on one of the domain (IsOnDomS1 returns True or IsOnDomS2 returns True), an exception is raised.
- ParametersOnS1(U1: number, V1: number): { U1: number; V1: number }
Returns the parameters on the first surface of the point.
Parameters (2)U1V1
ReturnsA result object with fields:
U1: updated value from the call.V1: updated value from the call.
- ParametersOnS2(U2: number, V2: number): { U2: number; V2: number }
Returns the parameters on the second surface of the point.
Parameters (2)U2V2
ReturnsA result object with fields:
U2: updated value from the call.V2: updated value from the call.
- IsMultiple(): boolean
Returns True if the point belongs to several intersection lines.
- IsOnDomS1(): boolean
Returns TRUE if the point is on a boundary of the domain of the first patch.
- IsVertexOnS1(): boolean
Returns TRUE if the point is a vertex on the initial restriction facet of the first surface.
Returns the information about the point when it is on the domain of the first patch, i-e when the function IsVertexOnS1 returns True. Otherwise, an exception is raised.
Returns the arc of restriction containing the vertex. The exception DomainError is raised if IsOnDomS1 returns False.
Returns the transition of the point on the intersection line with the arc on S1. The exception DomainError is raised if IsOnDomS1 returns False.
Returns the transition between the intersection line returned by the method Line and the arc on S1 returned by
ArcOnS1(). The exception DomainError is raised if IsOnDomS1 returns False.- ParameterOnArc1(): number
Returns the parameter of the point on the arc returned by the method ArcOnS2. The exception DomainError is raised if IsOnDomS1 returns False.
- IsOnDomS2(): boolean
Returns TRUE if the point is on a boundary of the domain of the second patch.
- IsVertexOnS2(): boolean
Returns TRUE if the point is a vertex on the initial restriction facet of the first surface.
Returns the information about the point when it is on the domain of the second patch, i-e when the function IsVertexOnS2 returns True. Otherwise, an exception is raised.
Returns the arc of restriction containing the vertex. The exception DomainError is raised if IsOnDomS2 returns False.
Returns the transition of the point on the intersection line with the arc on S2. The exception DomainError is raised if IsOnDomS2 returns False.
Returns the transition between the intersection line returned by the method Line and the arc on S2 returned by ArcOnS2. The exception DomainError is raised if IsOnDomS2 returns False.
- ParameterOnArc2(): number
Returns the parameter of the point on the arc returned by the method ArcOnS2. The exception DomainError is raised if IsOnDomS2 returns False.
Returns the PntOn2S (geometric Point and the parameters).
- Parameters(U1: number, V1: number, U2: number, V2: number): { U1: number; V1: number; U2: number; V2: number }
Returns the parameters on the first and on the second surface of the point.
Parameters (4)U1V1U2V2
ReturnsA result object with fields:
U1: updated value from the call.V1: updated value from the call.U2: updated value from the call.V2: updated value from the call.
- ReverseTransition(): void
- Dump(): void
IntPatch_PointLine
Definition of an intersection line between two surfaces. A line defined by a set of points (e.g. coming from a walking algorithm) as defined in the class WLine or RLine (Restriction line).
Static methods(3)
- CurvatureRadiusOfIntersLine(theS1: Adaptor3d_Surface, theS2: Adaptor3d_Surface, theUVPoint: IntSurf_PntOn2S): number
Returns the radius of curvature of the intersection line in given point. Returns negative value if computation is not possible.
Parameters (3)theS1theS2theUVPoint
- get_type_name(): string
Instance methods(13)
- AddVertex(Pnt: IntPatch_Point, theIsPrepend?: boolean): void
Adds a vertex in the list. If theIsPrepend == TRUE the new vertex will be added before the first element of vertices sequence. Otherwise, to the end of the sequence.
Parameters (2)PnttheIsPrepend
- NbPnts(): number
Returns the number of intersection points.
- NbVertex(): number
Returns number of vertices (
IntPatch_Point) of the line. - Point(Index: number): IntSurf_PntOn2S
Returns the intersection point of range Index.
Parameters (1)Index
- Vertex(Index: number): IntPatch_Point
Returns the vertex of range Index on the line.
Parameters (1)Index
- ChangeVertex(Index: number): IntPatch_Point
Returns the vertex of range Index on the line.
Parameters (1)Index
- ClearVertexes(): void
Removes vertices from the line.
- RemoveVertex(theIndex: number): void
Removes single vertex from the line.
Parameters (1)theIndex
Returns set of intersection points.
- IsOutSurf1Box(P1: gp_Pnt2d): boolean
Returns TRUE if P1 is out of the box built from the points on 1st surface.
Parameters (1)P1
- IsOutSurf2Box(P2: gp_Pnt2d): boolean
Returns TRUE if P2 is out of the box built from the points on 2nd surface.
Parameters (1)P2
Returns TRUE if P is out of the box built from 3D-points.
Parameters (1)P
IntPatch_PolyArc
Constructors(1)
- constructor(A: Adaptor2d_Curve2d, NbSample: number, Pfirst: number, Plast: number, BoxOtherPolygon: Bnd_Box2d): IntPatch_PolyArc
Creates the polygon of the arc A on the surface S. The arc is limited by the parameters Pfirst and Plast. None of these parameters can be infinite.
Parameters (5)ANbSamplePfirstPlastBoxOtherPolygon
Instance methods(5)
IntPatch_Polygo
Instance methods(7)
- Error(): number
- NbPoints(): number
- Parameters (1)
Index
- DeflectionOverEstimation(): number
Returns the tolerance of the polygon.
- NbSegments(): number
Returns the number of Segments in the polyline.
Returns the points of the segment <Index> in the Polygon.
Parameters (3)theIndextheBegin—Mutated in place; read the updated value from this argument after the call.theEnd—Mutated in place; read the updated value from this argument after the call.
- Dump(): void
IntPatch_PolyhedronBVH
Wraps IntPatch_Polyhedron as a BVH_PrimitiveSet for efficient spatial queries. This class provides a BVH (Bounding Volume Hierarchy) representation of a polyhedron's triangles, enabling O(log n) spatial queries instead of linear search.
The class stores a reference to the polyhedron (no data copy) and maintains an index mapping to track triangle reordering during BVH construction.
Constructors(1)
Creates an empty
BVHset.
Instance methods(6)
- Size(): number
- Box(theIndex: number): anyParameters (1)
theIndex
- Center(theIndex: number, theAxis: number): numberParameters (2)
theIndextheAxis
- Swap(theIndex1: number, theIndex2: number): voidParameters (2)
theIndex1theIndex2
- OriginalIndex(theIndex: number): numberParameters (1)
theIndex
- IsInitialized(): boolean
IntPatch_PolyhedronTool
Describe the signature of a polyhedral surface with only triangular facets and the necessary information to compute the interferences.
Constructors(1)
IntPatch_PolyLine
Constructors(2)
- constructor(InitDefle: number): IntPatch_PolyLineParameters (1)
InitDefle
Instance methods(3)
- ResetError(): void
- NbPoints(): number
- Parameters (1)
Index
IntPatch_PrmPrmIntersection
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.
Constructors(1)
Empty Constructor.
Instance methods(17)
- Perform(Caro1: Adaptor3d_Surface, Domain1: Adaptor3d_TopolTool, Caro2: Adaptor3d_Surface, Domain2: Adaptor3d_TopolTool, TolTangency: number, Epsilon: number, Deflection: number, Increment: number, ClearFlag: boolean): void
Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.
Parameters (9)Caro1Domain1Caro2Domain2TolTangencyEpsilonDeflectionIncrementClearFlag
- Perform(Caro1: Adaptor3d_Surface, Domain1: Adaptor3d_TopolTool, Caro2: Adaptor3d_Surface, Domain2: Adaptor3d_TopolTool, TolTangency: number, Epsilon: number, Deflection: number, Increment: number, ListOfPnts: NCollection_List_IntSurf_PntOn2S): void
Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.
Parameters (9)Caro1Domain1Caro2Domain2TolTangencyEpsilonDeflectionIncrementListOfPnts—Mutated in place; read the updated value from this argument after the call.
- Perform(Caro1: Adaptor3d_Surface, Domain1: Adaptor3d_TopolTool, Caro2: Adaptor3d_Surface, Domain2: Adaptor3d_TopolTool, U1: number, V1: number, U2: number, V2: number, TolTangency: number, Epsilon: number, Deflection: number, Increment: number): void
Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.
Parameters (12)Caro1Domain1Caro2Domain2U1V1U2V2TolTangencyEpsilonDeflectionIncrement
- IsDone(): boolean
Returns true if the calculus was successful.
- IsEmpty(): boolean
Returns true if the is no intersection.
- NbLines(): number
Returns the number of intersection lines.
- Line(Index: number): IntPatch_Line
Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.
Parameters (1)Index
- NewLine(Caro1: Adaptor3d_Surface, Caro2: Adaptor3d_Surface, IndexLine: number, LowPoint: number, HighPoint: number, NbPoints: number): IntPatch_Line
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 FalseParameters (6)Caro1Caro2IndexLineLowPointHighPointNbPoints
- GrilleInteger(ix: number, iy: number, iz: number): numberParameters (3)
ixiyiz
- IntegerGrille(t: number, ix: number, iy: number, iz: number): { ix: number; iy: number; iz: number }Parameters (4)
tixiyiz
- DansGrille(t: number): numberParameters (1)
t
- NbPointsGrille(): number
- RemplitLin(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, Map: IntPatch_PrmPrmIntersection_T3Bits): voidParameters (7)
x1y1z1x2y2z2Map
- RemplitTri(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, x3: number, y3: number, z3: number, Map: IntPatch_PrmPrmIntersection_T3Bits): voidParameters (10)
x1y1z1x2y2z2x3y3z3Map
- Remplit(a: number, b: number, c: number, Map: IntPatch_PrmPrmIntersection_T3Bits): voidParameters (4)
abcMap
- CodeReject(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, x3: number, y3: number, z3: number): numberParameters (9)
x1y1z1x2y2z2x3y3z3
- PointDepart(S1: Adaptor3d_Surface, SU1: number, SV1: number, S2: Adaptor3d_Surface, SU2: number, SV2: number): { LineOn2S: IntSurf_LineOn2S; [Symbol.dispose](): void }Parameters (6)
S1SU1SV1S2SU2SV2
IntPatch_PrmPrmIntersection_T3Bits
Constructors(1)
- constructor(size: number): IntPatch_PrmPrmIntersection_T3BitsParameters (1)
size
Instance methods(5)
IntPatch_RstInt
trouver les points d intersection entre la ligne de cheminement et les arcs de restriction
Constructors(1)
Static methods(1)
- PutVertexOnLine(L: IntPatch_Line, Surf: Adaptor3d_Surface, Domain: Adaptor3d_TopolTool, OtherSurf: Adaptor3d_Surface, OnFirst: boolean, Tol: number): voidParameters (6)
LSurfDomainOtherSurfOnFirstTol
IntPatch_SpecialPoints
Constructors(1)
Static methods(5)
- AddCrossUVIsoPoint(theQSurf: Adaptor3d_Surface, thePSurf: Adaptor3d_Surface, theRefPt: IntSurf_PntOn2S, theTol3d: number, theAddedPoint: IntSurf_PntOn2S, theIsReversed: boolean): boolean
Adds the point defined as intersection of two isolines (U = 0 and V = 0) on theQSurf in theLine. theRefPt is used to correct adjusting parameters. If theIsReversed is TRUE then theQSurf correspond to the second (otherwise, the first) surface while forming intersection point
IntSurf_PntOn2S.Parameters (6)theQSurfthePSurftheRefPttheTol3dtheAddedPoint—Mutated in place; read the updated value from this argument after the call.theIsReversed
- AddPointOnUorVIso(theQSurf: Adaptor3d_Surface, thePSurf: Adaptor3d_Surface, theRefPt: IntSurf_PntOn2S, theIsU: boolean, theIsoParameter: number, theToler: math_Vector, theInitPoint: math_Vector, theInfBound: math_Vector, theSupBound: math_Vector, theAddedPoint: IntSurf_PntOn2S, theIsReversed: boolean): boolean
Adds the point lain strictly in the isoline U = 0 or V = 0 of theQSurf, in theLine. theRefPt is used to correct adjusting parameters. If theIsReversed is TRUE then theQSurf corresponds to the second (otherwise, the first) surface while forming intersection point
IntSurf_PntOn2S. All math_Vector-objects must be filled as follows: [1] - U-parameter of thePSurf; [2] - V-parameter of thePSurf; [3] - U- (if V-isoline is considered) or V-parameter (if U-isoline is considered) of theQSurf.Parameters (11)theQSurfthePSurftheRefPttheIsUtheIsoParametertheTolertheInitPointtheInfBoundtheSupBoundtheAddedPoint—Mutated in place; read the updated value from this argument after the call.theIsReversed
- AddSingularPole(theQSurf: Adaptor3d_Surface, thePSurf: Adaptor3d_Surface, thePtIso: IntSurf_PntOn2S, theVertex: IntPatch_Point, theAddedPoint: IntSurf_PntOn2S, theIsReversed: boolean, theIsReqRefCheck: boolean): boolean
Computes the pole of sphere to add it in the intersection line. Stores the result in theAddedPoint variable (does not add in the line). At that, cone and sphere (with singularity) must be set in theQSurf parameter. By default (if theIsReversed == FALSE), theQSurf is the first surface of the Walking line. If it is not, theIsReversed parameter must be set to TRUE. theIsReqRefCheck is TRUE if and only if 3D-point of theRefPt must be pole or apex for check (e.g. if it is vertex). thePtIso is the reference point for obtaining isoline where must be placed the Apex/Pole.
ATTENTION!!! theVertex must be initialized before calling the method .Parameters (7)theQSurfthePSurfthePtIsotheVertex—Mutated in place; read the updated value from this argument after the call.theAddedPoint—Mutated in place; read the updated value from this argument after the call.theIsReversedtheIsReqRefCheck
- ContinueAfterSpecialPoint(theQSurf: Adaptor3d_Surface, thePSurf: Adaptor3d_Surface, theRefPt: IntSurf_PntOn2S, theSPType: IntPatch_SpecPntType, theTol2D: number, theNewPoint: IntSurf_PntOn2S, theIsReversed: boolean): boolean
Special point has already been added in the line. Now, we need in correct prolongation of the line or in start new line. This function returns new point.
ATTENTION!!! theNewPoint is not only Output parameter. It is Input/Output one. I.e. theNewPoint is reference point together with theRefPt.Parameters (7)theQSurfthePSurftheRefPttheSPTypetheTol2DtheNewPoint—Mutated in place; read the updated value from this argument after the call.theIsReversed
- AdjustPointAndVertex(theRefPoint: IntSurf_PntOn2S, theArrPeriods: [number, number, number, number], theNewPoint: IntSurf_PntOn2S, theVertex: IntPatch_Point): void
Sets theNewPoint parameters in 2D-space the closest to theRefPoint with help of adding/subtracting corresponding periods. theArrPeriods must be filled as follows: {<U-period of 1st surface>, <V-period of 1st surface>, <U-period of 2nd surface>, <V-period of 2nd surface>}. If theVertex != 0 then its parameters will be filled as corresponding parameters of theNewPoint.
ATTENTION!!! theNewPoint is not only Output parameter. It is Input/Output one. I.e. theNewPoint is reference point together with theRefPt.Parameters (4)theRefPointtheArrPeriodstheNewPoint—Mutated in place; read the updated value from this argument after the call.theVertex
IntPatch_SpecPntType
Properties(6)
IntPatch_TheIWalking
Constructors(1)
- constructor(Epsilon: number, Deflection: number, Step: number, theToFillHoles?: boolean): IntPatch_TheIWalking
Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused. theToFillHoles is the flag defining whether possible holes between resulting curves are filled or not in case of IntPatch walking theToFillHoles is False.
Parameters (4)EpsilonDeflectionSteptheToFillHoles
Instance methods(8)
- SetTolerance(Epsilon: number, Deflection: number, Step: number): void
Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused.
Parameters (3)EpsilonDeflectionStep
- Perform(Pnts1: NCollection_Sequence_IntSurf_PathPoint, Pnts2: NCollection_Sequence_IntSurf_InteriorPoint, Func: IntPatch_TheSurfFunction, S: Adaptor3d_Surface, Reversed: boolean): void
Searches a set of polylines starting on a point of Pnts1 or Pnts2. Each point on a resulting polyline verifies F(u,v)=0.
Parameters (5)Pnts1Pnts2Func—Mutated in place; read the updated value from this argument after the call.SReversed
- Perform(Pnts1: NCollection_Sequence_IntSurf_PathPoint, Func: IntPatch_TheSurfFunction, S: Adaptor3d_Surface, Reversed: boolean): void
Searches a set of polylines starting on a point of Pnts1. Each point on a resulting polyline verifies F(u,v)=0.
Parameters (4)Pnts1Func—Mutated in place; read the updated value from this argument after the call.SReversed
- IsDone(): boolean
Returns true if the calculus was successful.
- NbLines(): number
Returns the number of resulting polylines. An exception is raised if IsDone returns False.
- Value(Index: number): IntPatch_TheIWLineOfTheIWalking
Returns the polyline of range Index. An exception is raised if IsDone is False. An exception is raised if Index<=0 or Index>NbLines.
Parameters (1)Index
- NbSinglePnts(): number
Returns the number of points belonging to Pnts on which no line starts or ends. An exception is raised if IsDone returns False.
- SinglePnt(Index: number): IntSurf_PathPoint
Returns the point of range Index . An exception is raised if IsDone returns False. An exception is raised if Index<=0 or Index > NbSinglePnts.
Parameters (1)Index
IntPatch_TheIWLineOfTheIWalking
Constructors(1)
- constructor(theAllocator?: TDF_HAllocator): IntPatch_TheIWLineOfTheIWalkingParameters (1)
theAllocator
Static methods(2)
- get_type_name(): string
Instance methods(28)
- Reverse(): void
reverse the points in the line. Hasfirst, HasLast are kept.
- Cut(Index: number): void
Cut the line at the point of rank Index.
Parameters (1)Index
- AddPoint(P: IntSurf_PntOn2S): void
Add a point in the line.
Parameters (1)P
- AddStatusFirst(Closed: boolean, HasFirst: boolean): voidParameters (2)
ClosedHasFirst
- AddStatusFirst(Closed: boolean, HasLast: boolean, Index: number, P: IntSurf_PathPoint): voidParameters (4)
ClosedHasLastIndexP
- AddStatusFirstLast(Closed: boolean, HasFirst: boolean, HasLast: boolean): voidParameters (3)
ClosedHasFirstHasLast
- AddStatusLast(HasLast: boolean): voidParameters (1)
HasLast
- AddStatusLast(HasLast: boolean, Index: number, P: IntSurf_PathPoint): voidParameters (3)
HasLastIndexP
- AddIndexPassing(Index: number): void
associate the index of the point on the line with the index of the point passing through the starting iterator
Parameters (1)Index
- SetTangentVector(V: gp_Vec, Index: number): voidParameters (2)
VIndex
- SetTangencyAtBegining(IsTangent: boolean): voidParameters (1)
IsTangent
- SetTangencyAtEnd(IsTangent: boolean): voidParameters (1)
IsTangent
- NbPoints(): number
Returns the number of points of the line (including first point and end point : see HasLastPoint and HasFirstPoint).
- Value(Index: number): IntSurf_PntOn2S
Returns the point of range Index. If index <= 0 or Index > NbPoints, an exception is raised.
Parameters (1)Index
Returns the LineOn2S contained in the walking line.
- IsClosed(): boolean
Returns True if the line is closed.
- HasFirstPoint(): boolean
Returns True if the first point of the line is a marching point. when HasFirstPoint==False the line begins on the natural bound of the surface. The line can be too long.
- HasLastPoint(): boolean
Returns True if the end point of the line is a marching point (Point from IntWS). when HasFirstPoint==False the line ends on the natural bound of the surface. The line can be too long.
Returns the first point of the line when it is a marching point. An exception is raised if HasFirstPoint returns False.
- FirstPointIndex(): number
Returns the Index of first point of the line when it is a marching point. This index is the index in the PointStartIterator. An exception is raised if HasFirstPoint returns False.
Returns the last point of the line when it is a marching point. An exception is raised if HasLastPoint returns False.
- LastPointIndex(): number
Returns the index of last point of the line when it is a marching point. This index is the index in the PointStartIterator. An exception is raised if HasLastPoint returns False.
- NbPassingPoint(): number
returns the number of points belonging to Pnts1 which are passing point.
- PassingPoint(Index: number, IndexLine: number, IndexPnts: number): { IndexLine: number; IndexPnts: number }
returns the index of the point belonging to the line which is associated to the passing point belonging to Pnts1 an exception is raised if Index >
NbPassingPoint()Parameters (3)IndexIndexLineIndexPnts
ReturnsA result object with fields:
IndexLine: updated value from the call.IndexPnts: updated value from the call.
- TangentVector(Index: number): { returnValue: gp_Vec; Index: number; [Symbol.dispose](): void }Parameters (1)
Index
- IsTangentAtBegining(): boolean
- IsTangentAtEnd(): boolean
IntPatch_ThePathPointOfTheSOnBounds
Constructors(3)
- constructor(P: gp_Pnt, Tol: number, A: Adaptor2d_Curve2d, Parameter: number): IntPatch_ThePathPointOfTheSOnBoundsParameters (4)
PTolAParameter
- constructor(P: gp_Pnt, Tol: number, V: Adaptor3d_HVertex, A: Adaptor2d_Curve2d, Parameter: number): IntPatch_ThePathPointOfTheSOnBoundsParameters (5)
PTolVAParameter
Instance methods(8)
- SetValue(P: gp_Pnt, Tol: number, V: Adaptor3d_HVertex, A: Adaptor2d_Curve2d, Parameter: number): voidParameters (5)
PTolVAParameter
- SetValue(P: gp_Pnt, Tol: number, A: Adaptor2d_Curve2d, Parameter: number): voidParameters (4)
PTolAParameter
- Tolerance(): number
- IsNew(): boolean
- Parameter(): number
IntPatch_TheSearchInside
Constructors(2)
- constructor(F: IntPatch_TheSurfFunction, Surf: Adaptor3d_Surface, T: Adaptor3d_TopolTool, Epsilon: number): IntPatch_TheSearchInsideParameters (4)
FSurfTEpsilon
Instance methods(5)
- Perform(F: IntPatch_TheSurfFunction, Surf: Adaptor3d_Surface, T: Adaptor3d_TopolTool, Epsilon: number): voidParameters (4)
FSurfTEpsilon
- Perform(F: IntPatch_TheSurfFunction, Surf: Adaptor3d_Surface, UStart: number, VStart: number): voidParameters (4)
FSurfUStartVStart
- IsDone(): boolean
- NbPoints(): number
Returns the number of points. The exception NotDone if raised if IsDone returns False.
- Value(Index: number): IntSurf_InteriorPoint
Returns the point of range Index. The exception NotDone if raised if IsDone returns False. The exception OutOfRange if raised if Index <= 0 or Index > NbPoints.
Parameters (1)Index
IntPatch_TheSegmentOfTheSOnBounds
Constructors(1)
Empty constructor.
Instance methods(7)
- SetValue(A: Adaptor2d_Curve2d): void
Defines the concerned arc.
Parameters (1)A
- SetLimitPoint(V: IntPatch_ThePathPointOfTheSOnBounds, First: boolean): void
Defines the first point or the last point, depending on the value of the boolean First.
Parameters (2)VFirst
Returns the geometric curve on the surface 's domain which is solution.
- HasFirstPoint(): boolean
Returns True if there is a vertex (ThePathPoint) defining the lowest valid parameter on the arc.
Returns the first point.
- HasLastPoint(): boolean
Returns True if there is a vertex (ThePathPoint) defining the greatest valid parameter on the arc.
Returns the last point.
IntPatch_TheSOnBounds
Constructors(1)
Empty constructor.
Instance methods(7)
- Perform(F: IntPatch_ArcFunction, Domain: Adaptor3d_TopolTool, TolBoundary: number, TolTangency: number, RecheckOnRegularity: boolean): void
Algorithm to find the points and parts of curves of Domain (domain of of restriction of a surface) which verify F = 0. TolBoundary defines if a curve is on Q. TolTangency defines if a point is on Q.
Parameters (5)F—Mutated in place; read the updated value from this argument after the call.DomainTolBoundaryTolTangencyRecheckOnRegularity
- IsDone(): boolean
Returns True if the calculus was successful.
- AllArcSolution(): boolean
Returns true if all arc of the Arcs are solution (inside the surface). An exception is raised if IsDone returns False.
- NbPoints(): number
Returns the number of resulting points. An exception is raised if IsDone returns False (NotDone).
- Point(Index: number): IntPatch_ThePathPointOfTheSOnBounds
Returns the resulting point of range Index. The exception NotDone is raised if
IsDone()returns False. The exception OutOfRange is raised if Index <= 0 or Index > NbPoints.Parameters (1)Index
- NbSegments(): number
Returns the number of the resulting segments. An exception is raised if IsDone returns False (NotDone).
- Segment(Index: number): IntPatch_TheSegmentOfTheSOnBounds
Returns the resulting segment of range Index. The exception NotDone is raised if
IsDone()returns False. The exception OutOfRange is raised if Index <= 0 or Index > NbPoints.Parameters (1)Index
IntPatch_TheSurfFunction
Constructors(3)
- Parameters (1)
IS
- Parameters (2)
PSIS
Instance methods(16)
- Set(PS: Adaptor3d_Surface): voidParameters (1)
PS
- Set(Tolerance: number): voidParameters (1)
Tolerance
- SetImplicitSurface(IS: IntSurf_Quadric): voidParameters (1)
IS
- NbVariables(): number
Returns the number of variables of the function.
- NbEquations(): number
Returns the number of equations of the function.
- Value(X: math_Vector, F: math_Vector): boolean
Computes the values <F> of the Functions for the variable <X>. Returns True if the computation was done successfully, False otherwise.
Parameters (2)XF
- Derivatives(X: math_Vector, D: math_Matrix): boolean
Returns the values <D> of the derivatives for the variable <X>. Returns True if the computation was done successfully, False otherwise.
Parameters (2)XD
- Values(X: math_Vector, F: math_Vector, D: math_Matrix): boolean
returns the values <F> of the functions and the derivatives <D> for the variable <X>. Returns True if the computation was done successfully, False otherwise.
Parameters (3)XFD
- Root(): number
- Tolerance(): number
Returns the value Tol so that if std::abs(Func.Root())<Tol the function is considered null.
- IsTangent(): boolean
IntPatch_WLine
Definition of set of points as a result of the intersection between 2 parametrised patches.
Constructors(3)
- constructor(Line: IntSurf_LineOn2S, Tang: boolean): IntPatch_WLine
Creates a WLine as an intersection when the transitions are Undecided.
Parameters (2)LineTang
- constructor(Line: IntSurf_LineOn2S, Tang: boolean, Trans1: IntSurf_TypeTrans, Trans2: IntSurf_TypeTrans): IntPatch_WLine
Creates a WLine as an intersection when the transitions are In or Out.
Parameters (4)LineTangTrans1Trans2
- constructor(Line: IntSurf_LineOn2S, Tang: boolean, Situ1: IntSurf_Situation, Situ2: IntSurf_Situation): IntPatch_WLine
Creates a WLine as an intersection when the transitions are Touch.
Parameters (4)LineTangSitu1Situ2
Static methods(2)
- get_type_name(): string
Instance methods(41)
- AddVertex(Pnt: IntPatch_Point, theIsPrepend?: boolean): void
Adds a vertex in the list. If theIsPrepend == TRUE the new vertex will be added before the first element of vertices sequence. Otherwise, to the end of the sequence.
Parameters (2)PnttheIsPrepend
- SetPoint(Index: number, Pnt: IntPatch_Point): void
Set the Point of index <Index> in the LineOn2S.
Parameters (2)IndexPnt
- Replace(Index: number, Pnt: IntPatch_Point): void
Replaces the element of range Index in the list of points. The exception OutOfRange is raised when Index <= 0 or Index > NbVertex.
Parameters (2)IndexPnt
- SetFirstPoint(IndFirst: number): voidParameters (1)
IndFirst
- SetLastPoint(IndLast: number): voidParameters (1)
IndLast
- NbPnts(): number
Returns the number of intersection points.
- Point(Index: number): IntSurf_PntOn2S
Returns the intersection point of range Index.
Parameters (1)Index
- HasFirstPoint(): boolean
Returns True if the line has a known First point. This point is given by the method
FirstPoint(). - HasLastPoint(): boolean
Returns True if the line has a known Last point. This point is given by the method
LastPoint(). Returns the Point corresponding to the FirstPoint.
- FirstPoint(Indfirst: number): { returnValue: IntPatch_Point; Indfirst: number; [Symbol.dispose](): void }
Returns the Point corresponding to the FirstPoint. Indfirst is the index of the first in the list of vertices.
Parameters (1)Indfirst
ReturnsA result object with fields:
returnValue: the C++ return valueIndfirst: updated value from the call.
Dispose the returned envelope to release owned Handle fields.
Returns the Point corresponding to the LastPoint.
- LastPoint(Indlast: number): { returnValue: IntPatch_Point; Indlast: number; [Symbol.dispose](): void }
Returns the Point corresponding to the LastPoint. Indlast is the index of the last in the list of vertices.
Parameters (1)Indlast
ReturnsA result object with fields:
returnValue: the C++ return valueIndlast: updated value from the call.
Dispose the returned envelope to release owned Handle fields.
- NbVertex(): number
Returns number of vertices (
IntPatch_Point) of the line. - Vertex(Index: number): IntPatch_Point
Returns the vertex of range Index on the line.
Parameters (1)Index
- ChangeVertex(Index: number): IntPatch_Point
Returns the vertex of range Index on the line.
Parameters (1)Index
- ComputeVertexParameters(Tol: number): void
Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.
Parameters (1)Tol
Returns set of intersection points.
- IsOutSurf1Box(P1: gp_Pnt2d): boolean
Returns TRUE if theP is out of the box built from the points on 1st surface.
Parameters (1)P1
- IsOutSurf2Box(P2: gp_Pnt2d): boolean
Returns TRUE if theP is out of the box built from the points on 2nd surface.
Parameters (1)P2
Returns TRUE if theP is out of the box built from 3D-points.
Parameters (1)P
- SetPeriod(pu1: number, pv1: number, pu2: number, pv2: number): voidParameters (4)
pu1pv1pu2pv2
- U1Period(): number
- V1Period(): number
- U2Period(): number
- V2Period(): number
- SetArcOnS1(A: Adaptor2d_Curve2d): voidParameters (1)
A
- HasArcOnS1(): boolean
- SetArcOnS2(A: Adaptor2d_Curve2d): voidParameters (1)
A
- HasArcOnS2(): boolean
- ClearVertexes(): void
Removes vertices from the line (i.e. cleans svtx member).
- RemoveVertex(theIndex: number): void
Removes single vertex from the line.
Parameters (1)theIndex
- InsertVertexBefore(theIndex: number, thePnt: IntPatch_Point): voidParameters (2)
theIndexthePnt
- Dump(theMode: number): void
if (theMode == 0) then prints the information about WLine if (theMode == 1) then prints the list of 3d-points if (theMode == 2) then prints the list of 2d-points on the 1st surface Otherwise, prints list of 2d-points on the 2nd surface
Parameters (1)theMode
- EnablePurging(theIsEnabled: boolean): void
Allows or forbids purging of existing WLine.
Parameters (1)theIsEnabled
- IsPurgingAllowed(): boolean
Returns TRUE if purging is allowed or forbidden for existing WLine.
- GetCreatingWay(): IntPatch_WLine_IntPatch_WLType
Returns the way of <*this> creation.
- SetCreatingWayInfo(theAlgo: IntPatch_WLine_IntPatch_WLType): void
Sets the info about the way of <*this> creation.
Parameters (1)theAlgo
IntPatch_WLineTool
IntPatch_WLineTool provides set of static methods related to walking lines.
Constructors(1)
Static methods(3)
- ComputePurgedWLine(theWLine: IntPatch_WLine, theS1: Adaptor3d_Surface, theS2: Adaptor3d_Surface, theDom1: Adaptor3d_TopolTool, theDom2: Adaptor3d_TopolTool): IntPatch_WLine
I Removes equal points (leave one of equal points) from theWLine and recompute vertex parameters.
II Removes point out of borders in case of non periodic surfaces.
III Removes exceed points using tube criteria: delete 7D point if it lies near to expected lines in 2d and 3d. Each task (2d, 2d, 3d) have its own tolerance and checked separately.
Returns new WLine or null WLine if the number of the points is less than 2.Parameters (5)theWLinetheS1theS2theDom1theDom2
- JoinWLines(theSlin: NCollection_Sequence_handle_IntPatch_Line, theSPnt: NCollection_Sequence_IntPatch_Point, theS1: Adaptor3d_Surface, theS2: Adaptor3d_Surface, theTol3D: number): void
Joins all WLines from theSlin to one if it is possible and records the result into theSlin again. Lines will be kept to be split if: a) they are separated (has no common points); b) resulted line (after joining) go through seam-edges or surface boundaries.
In addition, if points in theSPnt lies at least in one of the line in theSlin, this point will be deleted.Parameters (5)theSlin—Mutated in place; read the updated value from this argument after the call.theSPnt—Mutated in place; read the updated value from this argument after the call.theS1theS2theTol3D
- ExtendTwoWLines(theSlin: NCollection_Sequence_handle_IntPatch_Line, theS1: Adaptor3d_Surface, theS2: Adaptor3d_Surface, theToler3D: number, theArrPeriods: number, theBoxS1: Bnd_Box2d, theBoxS2: Bnd_Box2d, theListOfCriticalPoints: NCollection_List_gp_Pnt): void
Extends every line from theSlin (if it is possible) to be started/finished in strictly determined point (in the place of joint of two lines). As result, some gaps between two lines will vanish. The Walking lines are supposed (algorithm will do nothing for not-Walking line) to be computed as a result of intersection. Both theS1 and theS2 must be quadrics.
Other cases are not supported. theArrPeriods must be filled as follows (every value must not be negative; if the surface is not periodic the period must be equal to 0.0 strictly): {<U-period of 1st surface>, <V-period of 1st surface>, <U-period of 2nd surface>, <V-period of 2nd surface>}. theListOfCriticalPoints must contain 3D-points where joining is disabled.Parameters (8)theSlin—Mutated in place; read the updated value from this argument after the call.theS1theS2theToler3DtheArrPeriodstheBoxS1theBoxS2theListOfCriticalPoints