OpenCascade.js
API ReferenceFoundationClassesTKMath

CSLib

OCCT package CSLib: CSLib, CSLib_Class2d, CSLib_DerivativeStatus, CSLib_NormalPolyDef, and 1 more bound classes.

CSLib

Provides functions for basic geometric computation on curves and surfaces.
This package implements functions for computing surface normals and their derivatives at parametric points. The tolerance criteria used are Resolution from gp and RealEpsilon from double.
Key functionality:

  • Normal computation from surface first derivatives (D1U, D1V)
  • Approximate normal in singular cases using second derivatives
  • Derivatives of the non-normalized and normalized normal vectors

Constructors(1)

Static methods(2)

  • DNNUV(theNu: number, theNv: number, theDerSurf: NCollection_Array2_gp_Vec): gp_Vec

    Computes the derivative of order (theNu, theNv) of the non-normalized normal vector.
    The non-normalized normal is N = dS/du ^ dS/dv. This function computes d^(Nu+Nv)N / (du^Nu * dv^Nv).

    Parameters (3)
    • theNu
      Derivative order in U direction
    • theNv
      Derivative order in V direction
    • theDerSurf
      Surface derivatives array where theDerSurf(i,j) = d^(i+j)S/(du^i * dv^j) for i = 0..theNu+1, j = 0..theNv+1
    Returns

    The derivative vector d^(Nu+Nv)N / (du^Nu * dv^Nv)

  • DNNUV(theNu: number, theNv: number, theDerSurf1: NCollection_Array2_gp_Vec, theDerSurf2: NCollection_Array2_gp_Vec): gp_Vec

    Computes the derivative of the non-normalized vector N = dS1/du ^ dS2/dv.
    This variant is used for osculating surfaces where the normal is computed from derivatives of two different surfaces.

    Parameters (4)
    • theNu
      Derivative order in U direction
    • theNv
      Derivative order in V direction
    • theDerSurf1
      Derivatives of the first surface S1
    • theDerSurf2
      Derivatives of the second surface S2
    Returns

    The derivative vector

CSLib_Class2d

Low-level algorithm for 2D point-in-polygon classification.
This class determines whether a 2D point lies inside, outside, or on the boundary of a closed polygon. It uses a ray-casting algorithm where a horizontal ray from the test point is extended to infinity, and the number of polygon edge crossings determines the classification.
The polygon is internally normalized to [0,1] x [0,1] domain for numerical stability.

Constructors(4)

  • Default constructor. Creates an empty classifier.

  • constructor(thePnts2d: NCollection_Array1_gp_Pnt2d, theTolU: number, theTolV: number, theUMin: number, theVMin: number, theUMax: number, theVMax: number): CSLib_Class2d

    Constructs a 2D classifier from an array of polygon vertices.
    The polygon is automatically closed (no need to repeat the first point at the end). Points are normalized internally to the UV bounds for numerical stability.

    Parameters (7)
    • thePnts2d
      Array of polygon vertices (minimum 3 points required)
    • theTolU
      Tolerance in U direction for boundary detection
    • theTolV
      Tolerance in V direction for boundary detection
    • theUMin
      Minimum U bound of the polygon domain
    • theVMin
      Minimum V bound of the polygon domain
    • theUMax
      Maximum U bound of the polygon domain
    • theVMax
      Maximum V bound of the polygon domain
  • constructor(thePnts2d: NCollection_Sequence_gp_Pnt2d, theTolU: number, theTolV: number, theUMin: number, theVMin: number, theUMax: number, theVMax: number): CSLib_Class2d

    Constructs a 2D classifier from a sequence of polygon vertices.
    Same as the array constructor but accepts a sequence for convenience.

    Parameters (7)
    • thePnts2d
      Sequence of polygon vertices (minimum 3 points required)
    • theTolU
      Tolerance in U direction for boundary detection
    • theTolV
      Tolerance in V direction for boundary detection
    • theUMin
      Minimum U bound of the polygon domain
    • theVMin
      Minimum V bound of the polygon domain
    • theUMax
      Maximum U bound of the polygon domain
    • theVMax
      Maximum V bound of the polygon domain
  • constructor(thePnts2d: NCollection_DynamicArray_gp_Pnt2d, theTolU: number, theTolV: number, theUMin: number, theVMin: number, theUMax: number, theVMax: number): CSLib_Class2d

    Constructs a 2D classifier from a vector of polygon vertices.
    Same as the array constructor but accepts a vector for convenience.

    Parameters (7)
    • thePnts2d
      Vector of polygon vertices (minimum 3 points required)
    • theTolU
      Tolerance in U direction for boundary detection
    • theTolV
      Tolerance in V direction for boundary detection
    • theUMin
      Minimum U bound of the polygon domain
    • theVMin
      Minimum V bound of the polygon domain
    • theUMax
      Maximum U bound of the polygon domain
    • theVMax
      Maximum V bound of the polygon domain

Instance methods(2)

  • SiDans(thePoint: gp_Pnt2d): CSLib_Class2d_Result

    Classifies a point relative to the polygon.

    Parameters (1)
    • thePoint
      The 2D point to classify
    Returns

    Classification result

  • SiDans_OnMode(thePoint: gp_Pnt2d, theTol: number): CSLib_Class2d_Result

    Classifies a point with explicit ON tolerance.
    Similar to SiDans() but uses the specified tolerance for boundary detection instead of the tolerances specified at construction.

    Parameters (2)
    • thePoint
      The 2D point to classify
    • theTol
      Tolerance for boundary detection
    Returns

    Classification result

CSLib_NormalPolyDef

Polynomial definition for surface normal computation at singular points.
This class defines a polynomial function F(X) and its derivative for use with numerical root-finding algorithms. The function represents a trigonometric polynomial in terms of cos(X) and sin(X) with binomial coefficients.
The polynomial has the form: F(X) = Sum_{i=0}^{k0} C(k0,i) * cos^i(X) * sin^(k0-i)(X) * li(i)
where C(k0,i) is the binomial coefficient and li(i) are user-provided coefficients.
This is used internally by CSLib::Normal() to find the normal direction at singular surface points by solving for zeros of this polynomial.

Constructors(1)

Instance methods(3)

  • Value(X: number, F: number): { returnValue: boolean; F: number }

    Computes the value of the function for the given variable.
    Evaluates F(X) = Sum_{i=0}^{k0} C(k0,i) * cos^i(X) * sin^(k0-i)(X) * li(i)

    Parameters (2)
    • X
      Input variable (angle in radians)
    • F
      Computed function value
    Returns

    A result object with fields:

    • returnValue: true if calculation was successful, false otherwise
    • F: updated value from the call.
  • Derivative(X: number, D: number): { returnValue: boolean; D: number }

    Computes the derivative of the function for the given variable.
    Evaluates dF/dX using the chain rule on the trigonometric polynomial.

    Parameters (2)
    • X
      Input variable (angle in radians)
    • D
      Computed derivative value
    Returns

    A result object with fields:

    • returnValue: true if calculation was successful, false otherwise
    • D: updated value from the call.
  • Values(X: number, F: number, D: number): { returnValue: boolean; F: number; D: number }

    Computes both the value and derivative of the function.
    More efficient than calling Value() and Derivative() separately as common subexpressions are computed only once.

    Parameters (3)
    • X
      Input variable (angle in radians)
    • F
      Computed function value
    • D
      Computed derivative value
    Returns

    A result object with fields:

    • returnValue: true if calculation was successful, false otherwise
    • F: updated value from the call.
    • D: updated value from the call.