# OCC.CSLib module

class `CSLib_Class2d`(*args)

  Bases: `object`

  Parameters: | TP (TColgp_Array1OfPnt2d) – aTolu (float) – aTolv (float) – umin (float) – vmin (float) – umax (float) – vmax (float) –
  Return type: | None

  `Copy`()

    Parameters: | Other (CSLib_Class2d &) –
    Return type: | CSLib_Class2d

  `Destroy`()

    Return type: | None

  `InternalSiDans`()

    Parameters: | X (float) – Y (float) –
    Return type: | int

  `InternalSiDansOuOn`()

    Parameters: | X (float) – Y (float) –
    Return type: | int

  `Set`()

    Parameters: | Other (CSLib_Class2d &) –
    Return type: | CSLib_Class2d

  `SiDans`()

    Parameters: | P (gp_Pnt2d) –
    Return type: | int

  `SiDans_OnMode`()

    Parameters: | P (gp_Pnt2d) – Tol (float) –
    Return type: | int

  `thisown`

    The membership flag

class `CSLib_NormalPolyDef`(*args)

  Bases: `OCC.math.math_FunctionWithDerivative`

  Parameters: | k0 (int) – li (TColStd_Array1OfReal &) –
  Return type: | None

  `thisown`

    The membership flag

class `SwigPyIterator`(*args, **kwargs)

  Bases: `object`

  `advance`()
  `copy`()
  `decr`()
  `distance`()
  `equal`()
  `incr`()
  `next`()
  `previous`()
  `thisown`

    The membership flag

  `value`()

class `cslib`

  Bases: `object`

  static `DNNUV`(*args)
    - – Computes the derivative of order Nu in the – direction U and Nv in the direction V of the not – normalized normal vector at the point P(U,V) The array DerSurf contain the derivative (i,j) of the surface for i=0,Nu+1 ; j=0,Nv+1

    Parameters: | Nu (int) – Nv (int) – DerSurf (TColgp_Array2OfVec) –
    Return type: | gp_Vec

    - Computes the derivatives of order Nu in the direction Nu and Nv in the direction Nv of the not normalized vector N(u,v) = dS1/du * dS2/dv (cases where we use an osculating surface) DerSurf1 are the derivatives of S1

    Parameters: | Nu (int) – Nv (int) – DerSurf1 (TColgp_Array2OfVec) – DerSurf2 (TColgp_Array2OfVec) –
    Return type: | gp_Vec

  static `DNNormal`(*args)
    - – Computes the derivative of order Nu in the – direction U and Nv in the direction V of the normalized normal vector at the point P(U,V) array DerNUV contain the derivative (i+Iduref,j+Idvref) of D1U ^ D1V for i=0,Nu ; j=0,Nv Iduref and Idvref correspond to a derivative of D1U ^ D1V which can be used to compute the normalized normal vector. In the regular cases , Iduref=Idvref=0.

    Parameters: | Nu (int) – Nv (int) – DerNUV (TColgp_Array2OfVec) – Iduref (int) – default value is 0 Idvref (int) – default value is 0
    Return type: | gp_Vec

  static `Normal`(*args)
    - The following functions computes the normal to a surface inherits FunctionWithDerivative from math //! Computes the normal direction of a surface as the cross product between D1U and D1V. If D1U has null length or D1V has null length or D1U and D1V are parallel the normal is undefined. To check that D1U and D1V are colinear the sinus of the angle between D1U and D1V is computed and compared with SinTol. The normal is computed if Status == Done else the Status gives the reason why the computation has failed.

    Parameters: | D1U (gp_Vec) – D1V (gp_Vec) – SinTol (float) – Status (CSLib_DerivativeStatus &) – Normal (gp_Dir) –
    Return type: | void

    - If there is a singularity on the surface the previous method cannot compute the local normal. This method computes an approched normal direction of a surface. It does a limited development and needs the second derivatives on the surface as input data. It computes the normal as follow : N(u, v) = D1U ^ D1V N(u0+du,v0+dv) = N0 + DN/du(u0,v0) * du + DN/dv(u0,v0) * dv + Eps with Eps->0 so we can have the equivalence N ~ dN/du + dN/dv. DNu = ||DN/du|| and DNv = ||DN/dv|| //! . if DNu IsNull (DNu <= Resolution from gp) the answer Done = True the normal direction is given by DN/dv . if DNv IsNull (DNv <= Resolution from gp) the answer Done = True the normal direction is given by DN/du . if the two directions DN/du and DN/dv are parallel Done = True the normal direction is given either by DN/du or DN/dv. To check that the two directions are colinear the sinus of the angle between these directions is computed and compared with SinTol. . if DNu/DNv or DNv/DNu is lower or equal than Real Epsilon Done = False, the normal is undefined . if DNu IsNull and DNv is Null Done = False, there is an indetermination and we should do a limited developpement at order 2 (it means that we cannot omit Eps). . if DNu Is not Null and DNv Is not Null Done = False, there are an infinity of normals at the considered point on the surface.

    Parameters: | D1U (gp_Vec) – D1V (gp_Vec) – D2U (gp_Vec) – D2V (gp_Vec) – D2UV (gp_Vec) – SinTol (float) – Done (bool) – Status (CSLib_NormalStatus &) – Normal (gp_Dir) –
    Return type: | void

    - Computes the normal direction of a surface as the cross product between D1U and D1V.

    Parameters: | D1U (gp_Vec) – D1V (gp_Vec) – MagTol (float) – Status (CSLib_NormalStatus &) – Normal (gp_Dir) –
    Return type: | void

    - find the first order k0 of deriviative of NUV where: foreach order < k0 all the derivatives of NUV are null all the derivatives of NUV corresponding to the order k0 are collinear and have the same sens. In this case, normal at U,V is unique.

    Parameters: | MaxOrder (int) – DerNUV (TColgp_Array2OfVec) – MagTol (float) – U (float) – V (float) – Umin (float) – Umax (float) – Vmin (float) – Vmax (float) – Status (CSLib_NormalStatus &) – Normal (gp_Dir) – OrderU (int &) – OrderV (int &) –
    Return type: | void

  `thisown`

    The membership flag

`cslib_DNNUV`(*args)
  - – Computes the derivative of order Nu in the – direction U and Nv in the direction V of the not – normalized normal vector at the point P(U,V) The array DerSurf contain the derivative (i,j) of the surface for i=0,Nu+1 ; j=0,Nv+1

  Parameters: | Nu (int) – Nv (int) – DerSurf (TColgp_Array2OfVec) –
  Return type: | gp_Vec

  - Computes the derivatives of order Nu in the direction Nu and Nv in the direction Nv of the not normalized vector N(u,v) = dS1/du * dS2/dv (cases where we use an osculating surface) DerSurf1 are the derivatives of S1

  Parameters: | Nu (int) – Nv (int) – DerSurf1 (TColgp_Array2OfVec) – DerSurf2 (TColgp_Array2OfVec) –
  Return type: | gp_Vec

`cslib_DNNormal`(*args)
  - – Computes the derivative of order Nu in the – direction U and Nv in the direction V of the normalized normal vector at the point P(U,V) array DerNUV contain the derivative (i+Iduref,j+Idvref) of D1U ^ D1V for i=0,Nu ; j=0,Nv Iduref and Idvref correspond to a derivative of D1U ^ D1V which can be used to compute the normalized normal vector. In the regular cases , Iduref=Idvref=0.

  Parameters: | Nu (int) – Nv (int) – DerNUV (TColgp_Array2OfVec) – Iduref (int) – default value is 0 Idvref (int) – default value is 0
  Return type: | gp_Vec

`cslib_Normal`(*args)
  - The following functions computes the normal to a surface inherits FunctionWithDerivative from math //! Computes the normal direction of a surface as the cross product between D1U and D1V. If D1U has null length or D1V has null length or D1U and D1V are parallel the normal is undefined. To check that D1U and D1V are colinear the sinus of the angle between D1U and D1V is computed and compared with SinTol. The normal is computed if Status == Done else the Status gives the reason why the computation has failed.

  Parameters: | D1U (gp_Vec) – D1V (gp_Vec) – SinTol (float) – Status (CSLib_DerivativeStatus &) – Normal (gp_Dir) –
  Return type: | void

  - If there is a singularity on the surface the previous method cannot compute the local normal. This method computes an approched normal direction of a surface. It does a limited development and needs the second derivatives on the surface as input data. It computes the normal as follow : N(u, v) = D1U ^ D1V N(u0+du,v0+dv) = N0 + DN/du(u0,v0) * du + DN/dv(u0,v0) * dv + Eps with Eps->0 so we can have the equivalence N ~ dN/du + dN/dv. DNu = ||DN/du|| and DNv = ||DN/dv|| //! . if DNu IsNull (DNu <= Resolution from gp) the answer Done = True the normal direction is given by DN/dv . if DNv IsNull (DNv <= Resolution from gp) the answer Done = True the normal direction is given by DN/du . if the two directions DN/du and DN/dv are parallel Done = True the normal direction is given either by DN/du or DN/dv. To check that the two directions are colinear the sinus of the angle between these directions is computed and compared with SinTol. . if DNu/DNv or DNv/DNu is lower or equal than Real Epsilon Done = False, the normal is undefined . if DNu IsNull and DNv is Null Done = False, there is an indetermination and we should do a limited developpement at order 2 (it means that we cannot omit Eps). . if DNu Is not Null and DNv Is not Null Done = False, there are an infinity of normals at the considered point on the surface.

  Parameters: | D1U (gp_Vec) – D1V (gp_Vec) – D2U (gp_Vec) – D2V (gp_Vec) – D2UV (gp_Vec) – SinTol (float) – Done (bool) – Status (CSLib_NormalStatus &) – Normal (gp_Dir) –
  Return type: | void

  - Computes the normal direction of a surface as the cross product between D1U and D1V.

  Parameters: | D1U (gp_Vec) – D1V (gp_Vec) – MagTol (float) – Status (CSLib_NormalStatus &) – Normal (gp_Dir) –
  Return type: | void

  - find the first order k0 of deriviative of NUV where: foreach order < k0 all the derivatives of NUV are null all the derivatives of NUV corresponding to the order k0 are collinear and have the same sens. In this case, normal at U,V is unique.

  Parameters: | MaxOrder (int) – DerNUV (TColgp_Array2OfVec) – MagTol (float) – U (float) – V (float) – Umin (float) – Umax (float) – Vmin (float) – Vmax (float) – Status (CSLib_NormalStatus &) – Normal (gp_Dir) – OrderU (int &) – OrderV (int &) –
  Return type: | void

`register_handle`(handle, base_object)

  Inserts the handle into the base object to prevent memory corruption in certain cases