OpenCascade.js
API ReferenceModelingAlgorithmsTKGeomAlgo

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)

Static methods(2)

Instance methods(19)

  • 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)
    • Index
    • Pnt
  • SetFirstPoint(IndFirst: number): void
    Parameters (1)
    • IndFirst
  • SetLastPoint(IndLast: number): void
    Parameters (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
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • IsIncluded: 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
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • IsIncluded: updated value from the call.
  • Value(U: number): gp_Pnt

    Returns the point of parameter U on the analytic intersection line.

    Parameters (1)
    • U
  • D1(U: number, P: gp_Pnt, Du: gp_Vec): boolean

    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)
    • U
    • P
      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.
  • 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)
    • P
    • theParams
      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)

Instance methods(8)

IntPatch_ArcFunction

Constructors(1)

Instance methods(13)

  • Parameters (1)
    • Q
  • Parameters (1)
    • A
  • Parameters (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)
    • X
    • F
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • F: 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)
    • X
    • D
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • D: 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)
    • X
    • F
    • D
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • F: 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.

  • Valpoint(Index: number): gp_Pnt
    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)

Instance methods(4)

  • Perform(theSet1: IntPatch_PolyhedronBVH, theSet2: IntPatch_PolyhedronBVH, theSelfInterference: boolean): number

    Performs BVH traversal and collects candidate triangle pairs.

    Parameters (3)
    • theSet1
      BVH set for the first polyhedron Mutated in place; read the updated value from this argument after the call.
    • theSet2
      BVH set 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)
    Returns

    number of collected pairs

  • Pairs(): any

    Returns the collected triangle pairs.

  • Clear(): void

    Clears the collected pairs.

  • Accept(theIndex1: number, theIndex2: number): boolean
    Parameters (2)
    • theIndex1
    • theIndex2

Properties(1)

IntPatch_CSFunction

this function is associated to the intersection between a curve on surface and a surface.

Constructors(1)

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)
    • X
    • F
  • 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)
    • X
    • D
  • 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)
    • X
    • F
    • D
  • Root(): number

IntPatch_CurvIntSurf

Constructors(2)

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_FunctionSetRoot rsnld(Inter.function()) while ...{ u=... v=... w=... inter.Perform(u,v,w,rsnld) } or IntImp_IntCS inter(Toltangency) inter.SetSurface(S); math_FunctionSetRoot rsnld(Inter.function()) while ...{ C=... inter.SetCurve(C); u=... v=... w=... inter.Perform(u,v,w,rsnld) }

    Parameters (10)
    • U
    • V
    • W
    • Rsnld
    • u0
    • v0
    • u1
    • v1
    • w0
    • w1
  • 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.

  • ParameterOnSurface(U: number, V: number): { U: number; V: number }
    Parameters (2)
    • U
    • V
  • return the math function which is used to compute the intersection

IntPatch_GLine

Implementation of an intersection line represented by a conic.

Constructors(15)

Static methods(2)

Instance methods(17)

  • 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)
    • Index
    • Pnt
  • SetFirstPoint(IndFirst: number): void
    Parameters (1)
    • IndFirst
  • SetLastPoint(IndLast: number): void
    Parameters (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)

IntPatch_HInterTool

Tool for the intersection between 2 surfaces. Regroupe pour l instant les methodes hors Adaptor3d...

Constructors(1)

Static methods(20)

  • Parameters (1)
    • S
  • Parameters (1)
    • S
  • Parameters (1)
    • S
  • Parameters (1)
    • S
  • NbSamplesU(S: Adaptor3d_Surface, u1: number, u2: number): number
    Parameters (3)
    • S
    • u1
    • u2
  • NbSamplesV(S: Adaptor3d_Surface, v1: number, v2: number): number
    Parameters (3)
    • S
    • v1
    • v2
  • 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
  • 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)
    • C
    • Ufirst
    • Ulast
    Returns

    A 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)
    • C
    • P
    • Paramproj
    • Ptproj
      Mutated in place; read the updated value from this argument after the call.
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • Paramproj: updated value from the call.
  • 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)
    • V
    • C
  • Returns the parameter of the vertex V on the arc A.

    Parameters (2)
    • V
    • C
  • 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)
    • C
    • Index
    • Pt
      Mutated in place; read the updated value from this argument after the call.
    • Tol
    • U
    Returns

    A 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)
    • C
    • Index
  • 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)
    • C
    • Index
    Returns

    A result object with fields:

    • V: owned by the returned envelope.
      Dispose the returned envelope to release owned Handle fields.
  • 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)
    • C
    • Index
    • IndFirst
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • IndFirst: 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)
    • C
    • Index
    • IndLast
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • IndLast: updated value from the call.
  • Returns True when the whole restriction is solution of the intersection problem.

    Parameters (1)
    • C

Instance methods(2)

IntPatch_ImpImpIntersection

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

Constructors(2)

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 TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided.

    Parameters (7)
    • S1
    • D1
    • S2
    • D2
    • TolArc
    • TolTang
    • theIsReqToKeepRLine
  • 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)

Instance methods(8)

  • SetStartPoint(U: number, V: number): void

    to search for solution from the given point

    Parameters (2)
    • U
    • V
  • Perform(Surf1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, Surf2: Adaptor3d_Surface, D2: Adaptor3d_TopolTool, TolArc: number, TolTang: number, Fleche: number, Pas: number): void
    Parameters (8)
    • Surf1
    • D1
    • Surf2
    • D2
    • TolArc
    • TolTang
    • Fleche
    • Pas
  • 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_Intersection

This class provides a generic algorithm to intersect 2 surfaces.

Constructors(3)

Static methods(3)

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)
    • TolArc
    • TolTang
    • UVMaxStep
    • Fleche
  • Perform(S1: Adaptor3d_Surface, D1: Adaptor3d_TopolTool, TolArc: number, TolTang: number): void

    Uses for finding self-intersected surfaces.

    Parameters (4)
    • S1
    • D1
    • TolArc
    • TolTang
  • 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 TopOpeBRep package. It shall be deleted after deleting TopOpeBRep.
    When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep.
    If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).

    Parameters (9)
    • S1
    • D1
    • S2
    • D2
    • TolArc
    • TolTang
    • isGeomInt
    • theIsReqToKeepRLine
    • theIsReqToPostWLProc
  • 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 TopOpeBRep package. It shall be deleted after deleting TopOpeBRep.
    When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE) will always keep both lines even if they are coincided. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == FALSE, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).

    Parameters (10)
    • S1
    • D1
    • S2
    • D2
    • TolArc
    • TolTang
    • LOfPnts
      Mutated in place; read the updated value from this argument after the call.
    • isGeomInt
    • theIsReqToKeepRLine
    • theIsReqToPostWLProc
  • 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)
    • S1
    • D1
    • S2
    • D2
    • U1
    • V1
    • U2
    • V2
    • TolArc
    • TolTang
  • 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 of each result line. Mode for more accurate dumps.

    Parameters (5)
    • Mode
    • S1
    • D1
    • S2
    • D2

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)

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)
    • Uiso1
    • Viso1
    • Uiso2
    • Viso2
  • 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)

Instance methods(3)

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)

Instance methods(34)

  • SetValue(Pt: gp_Pnt): void
    Parameters (1)
    • Pt
  • SetValue(thePOn2S: IntSurf_PntOn2S): void

    Sets the value of <pt> member.

    Parameters (1)
    • thePOn2S
  • SetValue(Pt: gp_Pnt, Tol: number, Tangent: boolean): void

    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)
    • Pt
    • Tol
    • Tangent
  • SetTolerance(Tol: number): void
    Parameters (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)
    • U1
    • V1
    • U2
    • V2
  • 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)
    • OnFirst
    • V
  • 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)
    • OnFirst
    • A
    • Param
    • TLine
    • TArc
  • 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)
    • U1
    • V1
    Returns

    A 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)
    • U2
    • V2
    Returns

    A 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)
    • U1
    • V1
    • U2
    • V2
    Returns

    A 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.
  • 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)

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)
    • Pnt
    • theIsPrepend
  • 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
  • Returns the vertex of range Index on the line.

    Parameters (1)
    • Index
  • 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
  • IsOutBox(P: gp_Pnt): boolean

    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)
    • A
    • NbSample
    • Pfirst
    • Plast
    • BoxOtherPolygon

Instance methods(5)

  • Closed(): boolean

    Returns True if the polyline is closed.

  • NbPoints(): number
  • Point(Index: number): gp_Pnt2d
    Parameters (1)
    • Index
  • Parameter(Index: number): number
    Parameters (1)
    • Index
  • SetOffset(OffsetX: number, OffsetY: number): void
    Parameters (2)
    • OffsetX
    • OffsetY

IntPatch_Polygo

Instance methods(7)

  • Error(): number
  • NbPoints(): number
  • Point(Index: number): gp_Pnt2d
    Parameters (1)
    • Index
  • Returns the tolerance of the polygon.

  • NbSegments(): number

    Returns the number of Segments in the polyline.

  • Segment(theIndex: number, theBegin: gp_Pnt2d, theEnd: gp_Pnt2d): void

    Returns the points of the segment <Index> in the Polygon.

    Parameters (3)
    • theIndex
    • theBegin
      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)

Instance methods(6)

  • Size(): number
  • Box(theIndex: number): any
    Parameters (1)
    • theIndex
  • Center(theIndex: number, theAxis: number): number
    Parameters (2)
    • theIndex
    • theAxis
  • Swap(theIndex1: number, theIndex2: number): void
    Parameters (2)
    • theIndex1
    • theIndex2
  • OriginalIndex(theIndex: number): number
    Parameters (1)
    • theIndex
  • IsInitialized(): boolean

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)

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)
    • Caro1
    • Domain1
    • Caro2
    • Domain2
    • TolTangency
    • Epsilon
    • Deflection
    • Increment
    • ClearFlag
  • 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)
    • Caro1
    • Domain1
    • Caro2
    • Domain2
    • TolTangency
    • Epsilon
    • Deflection
    • Increment
    • ListOfPnts
      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)
    • Caro1
    • Domain1
    • Caro2
    • Domain2
    • U1
    • V1
    • U2
    • V2
    • TolTangency
    • Epsilon
    • Deflection
    • Increment
  • 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 False

    Parameters (6)
    • Caro1
    • Caro2
    • IndexLine
    • LowPoint
    • HighPoint
    • NbPoints
  • GrilleInteger(ix: number, iy: number, iz: number): number
    Parameters (3)
    • ix
    • iy
    • iz
  • IntegerGrille(t: number, ix: number, iy: number, iz: number): { ix: number; iy: number; iz: number }
    Parameters (4)
    • t
    • ix
    • iy
    • iz
  • DansGrille(t: number): number
    Parameters (1)
    • t
  • NbPointsGrille(): number
  • RemplitLin(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, Map: IntPatch_PrmPrmIntersection_T3Bits): void
    Parameters (7)
    • x1
    • y1
    • z1
    • x2
    • y2
    • z2
    • Map
  • RemplitTri(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, x3: number, y3: number, z3: number, Map: IntPatch_PrmPrmIntersection_T3Bits): void
    Parameters (10)
    • x1
    • y1
    • z1
    • x2
    • y2
    • z2
    • x3
    • y3
    • z3
    • Map
  • Remplit(a: number, b: number, c: number, Map: IntPatch_PrmPrmIntersection_T3Bits): void
    Parameters (4)
    • a
    • b
    • c
    • Map
  • CodeReject(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, x3: number, y3: number, z3: number): number
    Parameters (9)
    • x1
    • y1
    • z1
    • x2
    • y2
    • z2
    • x3
    • y3
    • z3
  • PointDepart(S1: Adaptor3d_Surface, SU1: number, SV1: number, S2: Adaptor3d_Surface, SU2: number, SV2: number): { LineOn2S: IntSurf_LineOn2S; [Symbol.dispose](): void }
    Parameters (6)
    • S1
    • SU1
    • SV1
    • S2
    • SU2
    • SV2

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)
    • theQSurf
    • thePSurf
    • theRefPt
    • theTol3d
    • theAddedPoint
      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)
    • theQSurf
    • thePSurf
    • theRefPt
    • theIsU
    • theIsoParameter
    • theToler
    • theInitPoint
    • theInfBound
    • theSupBound
    • theAddedPoint
      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)
    • theQSurf
    • thePSurf
    • thePtIso
    • theVertex
      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.
    • theIsReversed
    • theIsReqRefCheck
  • 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)
    • theQSurf
    • thePSurf
    • theRefPt
    • theSPType
    • theTol2D
    • theNewPoint
      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)
    • theRefPoint
    • theArrPeriods
    • theNewPoint
      Mutated in place; read the updated value from this argument after the call.
    • theVertex

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)
    • Epsilon
    • Deflection
    • Step
    • theToFillHoles

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)
    • Epsilon
    • Deflection
    • Step
  • 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)
    • Pnts1
    • Pnts2
    • Func
      Mutated in place; read the updated value from this argument after the call.
    • S
    • Reversed
  • Searches a set of polylines starting on a point of Pnts1. Each point on a resulting polyline verifies F(u,v)=0.

    Parameters (4)
    • Pnts1
    • Func
      Mutated in place; read the updated value from this argument after the call.
    • S
    • Reversed
  • 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.

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

  • 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)

Static methods(2)

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
  • Add a point in the line.

    Parameters (1)
    • P
  • AddStatusFirst(Closed: boolean, HasFirst: boolean): void
    Parameters (2)
    • Closed
    • HasFirst
  • AddStatusFirst(Closed: boolean, HasLast: boolean, Index: number, P: IntSurf_PathPoint): void
    Parameters (4)
    • Closed
    • HasLast
    • Index
    • P
  • AddStatusFirstLast(Closed: boolean, HasFirst: boolean, HasLast: boolean): void
    Parameters (3)
    • Closed
    • HasFirst
    • HasLast
  • AddStatusLast(HasLast: boolean): void
    Parameters (1)
    • HasLast
  • AddStatusLast(HasLast: boolean, Index: number, P: IntSurf_PathPoint): void
    Parameters (3)
    • HasLast
    • Index
    • P
  • 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): void
    Parameters (2)
    • V
    • Index
  • SetTangencyAtBegining(IsTangent: boolean): void
    Parameters (1)
    • IsTangent
  • SetTangencyAtEnd(IsTangent: boolean): void
    Parameters (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)
    • Index
    • IndexLine
    • IndexPnts
    Returns

    A 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
  • IsTangentAtEnd(): boolean

IntPatch_ThePathPointOfTheSOnBounds

Constructors(3)

Instance methods(8)

IntPatch_TheSearchInside

Constructors(2)

Instance methods(5)

IntPatch_TheSegmentOfTheSOnBounds

Constructors(1)

Instance methods(7)

IntPatch_TheSOnBounds

Constructors(1)

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.
    • Domain
    • TolBoundary
    • TolTangency
    • RecheckOnRegularity
  • 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).

  • 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).

  • 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)

Instance methods(16)

IntPatch_WLine

Definition of set of points as a result of the intersection between 2 parametrised patches.

Constructors(3)

Static methods(2)

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)
    • Pnt
    • theIsPrepend
  • SetPoint(Index: number, Pnt: IntPatch_Point): void

    Set the Point of index <Index> in the LineOn2S.

    Parameters (2)
    • Index
    • Pnt
  • 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)
    • Index
    • Pnt
  • SetFirstPoint(IndFirst: number): void
    Parameters (1)
    • IndFirst
  • SetLastPoint(IndLast: number): void
    Parameters (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
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • Indfirst: 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
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • Indlast: 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
  • 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
  • IsOutBox(P: gp_Pnt): boolean

    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): void
    Parameters (4)
    • pu1
    • pv1
    • pu2
    • pv2
  • U1Period(): number
  • V1Period(): number
  • U2Period(): number
  • V2Period(): number
  • Parameters (1)
    • A
  • HasArcOnS1(): boolean
  • Parameters (1)
    • A
  • HasArcOnS2(): boolean
  • 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): void
    Parameters (2)
    • theIndex
    • thePnt
  • 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)

  • 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)
    • theWLine
    • theS1
    • theS2
    • theDom1
    • theDom2
  • 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.
    • theS1
    • theS2
    • theTol3D
  • 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.
    • theS1
    • theS2
    • theToler3D
    • theArrPeriods
    • theBoxS1
    • theBoxS2
    • theListOfCriticalPoints