NURBS.jl

This package provides functionality to define and evaluate B-spline and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on both considered basis functions.
Author HoBeZwe
Popularity
11 Stars
Updated Last
10 Months Ago
Started In
December 2022

Docs-stable Docs-dev MIT license Build Status codecov DOI

Introduction

This package provides functionality to define and evaluate B-spline, Curry-Schoenberg, and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on B-spline and NURBS basis functions.

The following aspects are implemented (✓) and planned (⌛):

B-spline, Curry-Schoenberg & NURBS evaluation
  • ✓ Basis & derivatives
  • ✓ Curves & derivatives
  • ✓ Surfaces & derivatives
Fundamental operations
  • ✓ File I/O (.step)
  • ✓ Knot manipulation
    • knot insertion / refinement
    • knot removal
    • splitting of curves and surfaces
  • ✓ Transformation of curves and surfaces
    • scaling
    • translating
    • rotating
    • mirroring
  • ⌛ Degree elevation / reduction
  • ⌛ Construction of common geometries
Connectivity
  • ✓ Determine patch connectivity
    • identify interfaces between patches
    • introduce per patch local numbering for vertices and edges
  • ✓ Virtual Bezier mesh connectivty (for FEM)
    • introduce on each patch a virtual Bezier mesh
    • determine adjacency information of mesh cells

Citation

Please cite this package following the information on Zenodo.

Documentation

Used By Packages

No packages found.