Skip to content

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.

License

Notifications You must be signed in to change notification settings

HoBeZwe/NURBS.jl

Repository files navigation

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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Languages