MCPcopy
hub / github.com/CadQuery/cadquery / nbBasis

Function nbBasis

cadquery/occ_impl/nurbs.py:457–496  ·  view source on GitHub ↗

NURBS book A2.2 Parameters ---------- i : int Span index. u : float Parameter value. order : int B-spline order. knots : ndarray Knot vector. out : ndarray B-spline basis function values. Returns ------- None.

(i: int, u: float, order: int, knots: Array, out: Array)

Source from the content-addressed store, hash-verified

455
456@njiti
457def nbBasis(i: int, u: float, order: int, knots: Array, out: Array):
458 """
459 NURBS book A2.2
460
461 Parameters
462 ----------
463 i : int
464 Span index.
465 u : float
466 Parameter value.
467 order : int
468 B-spline order.
469 knots : ndarray
470 Knot vector.
471 out : ndarray
472 B-spline basis function values.
473
474 Returns
475 -------
476 None.
477
478 """
479
480 out[0] = 1.0
481
482 left = np.zeros_like(out)
483 right = np.zeros_like(out)
484
485 for j in range(1, order + 1):
486 left[j] = u - knots[i + 1 - j]
487 right[j] = knots[i + j] - u
488
489 saved = 0.0
490
491 for r in range(j):
492 temp = out[r] / (right[r + 1] + left[j - r])
493 out[r] = saved + right[r + 1] * temp
494 saved = left[j - r] * temp
495
496 out[j] = saved
497
498
499@njiti

Callers 5

test_derFunction · 0.90
nbCurveFunction · 0.85
nbSurfaceFunction · 0.85
designMatrixFunction · 0.85
designMatrix2DFunction · 0.85

Calls

no outgoing calls

Tested by 1

test_derFunction · 0.72