B Spline3D
Class full path: NemAll_Python_Geometry.BSpline3D
              Bases: PolyPoints3D
class for 3D (non uniform, rational) B-spline geometry
Attributes
            Degree: int
  
      property
      writable
  
    Gets spline degree
            IsPeriodic: bool
  
      property
      writable
  
    Returns whether the spline is periodic
Returns only given flag which was originally set
            Knots: VecDoubleList
  
      property
      writable
  
    Get knot vector
            Weights: VecDoubleList
  
      property
      writable
  
    Get control points weights
Functions
Clear()            
          
      Clear data, getting invalid state
Create(curve_object)            
  
      staticmethod
  
          
      Create BSpline from ICurve3D
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| curve_object | object | Input curve | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | Created BSpline3D. | 
CreateArc3D(arc)            
  
      staticmethod
  
          
      Create BSpline form Arc3D
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| arc | Arc3D | Input arc | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | Created Bspline3D | 
CreateBSpline(points, degree, isPeriodic)            
  
      staticmethod
  
          
      Create BSpline from control points
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| points | Point3DList | Control points | required | 
| degree | int | Degree of BSpline | required | 
| isPeriodic | bool | true if BSpline should be smoothly closed | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | BSpline object | 
CreateBSpline3DFrom2DCurves(directionCurve_object, elevationCurve_object, startHeight, chainPoints)            
  
      staticmethod
  
          
      Creates BSpline3D from direction 2D curve and elevation 2D curve
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| directionCurve_object | object | direction curve ( for X,Y coordinates) | required | 
| elevationCurve_object | object | elevation curve (for Z coordinates) | required | 
| startHeight | float | Z coordinate of new curve start point | required | 
| chainPoints | Point3DList | list of chain points to match resulting curve | required | 
Returns:
| Type | Description | 
|---|---|
| eGeometryErrorCode | eOK if successful, | 
| BSpline3D | created BSpline3D) | 
CreateBSpline3DFromAxisAndGradient(directionCurve_object, elevationCurve_object, startHeight, chainPoints)            
  
      staticmethod
  
          
      Create BSpline3D curve from axis and gradient (all placed in XY plane)
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| directionCurve_object | object | direction/axis curve | required | 
| elevationCurve_object | object | elevation/gradient curve | required | 
| startHeight | float | Z coordinate of new curve start point | required | 
| chainPoints | Point3DList | list of chain points to match resulting curve | required | 
Returns:
| Type | Description | 
|---|---|
| eGeometryErrorCode | error code | 
| BSpline3D | result BSpline3D curve) | 
CreateBSplineInterpolated(points, degree, isPeriodic)            
  
      staticmethod
  
          
      Create BSpline from interpolated points
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| points | Point3DList | Interpolated points | required | 
| degree | int | Degree of BSpline | required | 
| isPeriodic | bool | true if BSpline should be smoothly closed | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | BSpline object | 
CreateBSplineJoined(curves_object)            
  
      staticmethod
  
          
      Create BSpline by joining curves. Curves should meet by end points.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| curves_object | List | Source curves | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | BSpline object (empty, if joining failed) | 
CreateLine3D(line)            
  
      staticmethod
  
          
      Create BSpline3D from Line3D
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| line | Line3D | Input line. | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | Created BSpline3D. | 
CreatePolyline3D(polyline3d)            
  
      staticmethod
  
          
      Create a BSpline out of a Polyline3D object
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| polyline3d | Polyline3D | Polyline3D that will be used for conversion | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | An instance of the created BSpline3D | 
CreateSpline(spline)            
  
      staticmethod
  
          
      Create BSpline from Spline3D
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| spline | Spline3D | Spline | required | 
Returns:
| Type | Description | 
|---|---|
| BSpline3D | Created BSpline3D. | 
EvaluateEndPoint()            
          
      Evaluate end point of bspline
Returns:
| Type | Description | 
|---|---|
| Tuple[eGeometryErrorCode, Point3D] | evaluated end point | 
EvaluateEndRelPoint()            
          
      Evaluate relative end (last) point of bspline
Returns:
| Type | Description | 
|---|---|
| Tuple[eGeometryErrorCode, Point3D] | evaluated relative end point | 
EvaluatePoint(param)            
          
      Evaluate point of b-spline
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| param | float | parameter to evaluate point on b-spline | required | 
Returns:
| Type | Description | 
|---|---|
| eGeometryErrorCode | error code of evaluation, | 
| Point3D | resulting point, if succeeded) | 
EvaluatePointsWithTangents(parameters)            
          
      Evaluate points and tangents of b-spline
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| parameters | VecDoubleList | parameters to evaluate points and tangents on b-spline | required | 
Returns:
| Type | Description | 
|---|---|
| Tuple[Point3D, Vector3D] | vector of resulting points and tangents, if calculation failed for any parameter, empty vector is returned | 
EvaluateStartPoint()            
          
      Evaluate start point of bspline
Returns:
| Type | Description | 
|---|---|
| Tuple[eGeometryErrorCode, Point3D] | evaluated start point | 
EvaluateStartRelPoint()            
          
      Evaluate relative start point of bspline
Returns:
| Type | Description | 
|---|---|
| Tuple[eGeometryErrorCode, Point3D] | evaluated relative start point | 
Get()            
          
      Gets the BSpline3D
Returns:
| Type | Description | 
|---|---|
| Point3DList | spline points | 
| VecDoubleList | vector with weights | 
| VecDoubleList | vector with knots | 
| int | spline degree | 
| bool | True if spline is periodic, False otherwise | 
GetDegree()            
          
      Gets spline degree
Returns:
| Type | Description | 
|---|---|
| int | spline degree | 
GetInterpolatedPoints()            
          
      Function returns interpolated points of b-spline
Returns:
| Type | Description | 
|---|---|
| Point3DList | list of interpolated points | 
GetInterpolatedPointsParameters()            
          
      Function returns list of parameters for interpolated points of b-spline
Returns:
| Type | Description | 
|---|---|
| VecDoubleList | list of parameters of interpolated points | 
GetInterval()            
          
      Function returns the interval of bspline
Returns:
| Type | Description | 
|---|---|
| bool | true if success, | 
| float | start of curve interval, | 
| float | end of curve interval) | 
GetKnotMultiplicities()            
          
      Get knot vector and knot multiplicities
Returns:
| Type | Description | 
|---|---|
| VecDoubleList | knot vector with unique values, | 
| VecSizeTList | knot multiplicities) | 
GetKnots()            
          
      Get knot vector
Returns:
| Type | Description | 
|---|---|
| VecDoubleList | knot vector | 
GetParametersForDistances(distances)            
          
      Find parameters for distances on b-spline
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| distances | VecDoubleList | list of distances to calculate parameters for | required | 
Returns:
| Type | Description | 
|---|---|
| VecDoubleList | list of parameters, if calculation failed for any distance, empty vector is returned | 
GetWeights()            
          
      Get control points weights
Returns:
| Type | Description | 
|---|---|
| VecDoubleList | weights vector | 
IsClosed()            
          
      Check if spline is closed ( first/last points are equal )
Returns:
| Type | Description | 
|---|---|
| bool | closed spline true/false | 
IsEndClamped()            
          
      Function returns whether the bspline is clamped at the end
Returns:
| Type | Description | 
|---|---|
| bool | true if clamped on end | 
IsLine()            
          
      Check if bspline is line
Returns:
| Type | Description | 
|---|---|
| bool | Returns true if it is line | 
IsPeriodicClosed()            
          
      Returns whether the spline is periodic or closed in 1st degree
BSpline with degree == 1 cannot be periodic, wherefore returns true if closed.
Returns:
| Type | Description | 
|---|---|
| bool | bool true = periodic or closed | 
IsRational()            
          
      Check if the spline is rational
Returns:
| Type | Description | 
|---|---|
| bool | bool true = rational | 
IsStartClamped()            
          
      Function returns whether the bspline is clamped at the start
Returns:
| Type | Description | 
|---|---|
| bool | true if clamped on start | 
IsValid()            
          
      Check spline validity
Returns:
| Type | Description | 
|---|---|
| bool | bool valid = true | 
Reverse()            
          
      Reverse of current spline
Method reverse Spline using reverse from PolyPoints and swapping tangents.
Set(points, weights, knots, degree, isPeriodic=False)            
          
      Get/Set functions
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| points | Point3DList | spline points | required | 
| weights | VecDoubleList | vector with spline weights | required | 
| knots | VecDoubleList | vector with spline knots | required | 
| degree | int | spline degree | required | 
| isPeriodic | bool | Whether the spline is to be periodic | False | 
SetDegree(degree)            
          
      Set spline degree
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| degree | int | desired degree | required | 
SetKnots(knots)            
          
      Set knot vector
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| knots | VecDoubleList | knot vector to set | required | 
SetPeriodic(periodic)            
          
      Set periodic flag
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| periodic | bool | value of periodic flag | required | 
SetWeights(weights)            
          
      Set weights for control points
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| weights | VecDoubleList | weights vector to set | required | 
__eq__(bspline)            
          
      Comparison of bsplines without tolerance.
Be careful, this method work without tolerance!
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| bspline | BSpline3D | Compared bspline. | required | 
Returns:
| Type | Description | 
|---|---|
| object | True when bsplines are equal, otherwise false. | 
__init__    
    
      overload
    
    
  __init__()
  initialize
__init__(points, weights, knots, degree, isPeriodic)
  Default constructor. Creates invalid spline.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| points | Point3DList |  | required | 
| weights | VecDoubleList |  | required | 
| knots | VecDoubleList |  | required | 
| degree | int |  | required | 
| isPeriodic | bool |  | required | 
__init__(spline)          
      Copy constructor.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| spline | BSpline3D | Spline which will be copied. | required | 
__repr__()            
          
      Convert to string