Ad

tinynurbs: C++ NURBS library

tinynurbs is a lightweight C++ library for generating and manipulating Non-Uniform Rational B-Spline curves and surfaces. It offers a simple API for evaluating points, derivatives, and performing common operations like knot insertion and I/O.
Screenshot of pradeep-pyro/tinynurbs homepage

tinynurbs is a header-only C++ library designed for working with NURBS (Non-Uniform Rational B-Spline) curves and surfaces. The library provides a straightforward API to create, evaluate, and manipulate NURBS objects. It addresses the need for a flexible and efficient NURBS implementation in C++, offering features such as support for various curve/surface orders and efficient point/derivative calculations.

A key strength of tinynurbs is its focus on a simple and readable API, making it easy to integrate into existing C++ projects. The library supports both rational and non-rational curves and surfaces, providing flexibility for different application needs. Furthermore, its header-only design simplifies integration and avoids the need for complex build processes.

  • Curve/Surface Creation: Allows creation of both curves and surfaces with varying degrees and control points.
  • Evaluation: Provides functions to evaluate curve/surface points and their derivatives at specific parameter values.
  • Knot Manipulation: Supports insertion and splitting of knots without altering the shape of the curve/surface.
  • OBJ I/O: Enables saving and loading of NURBS curves and surfaces in the Wavefront OBJ format.
  • Rational and Non-Rational Support: Handles both rational and non-rational curves and surfaces.
  • Extensibility: The design allows for easy extension with custom functions and data structures.
  • glm Integration: Designed to work seamlessly with the GLM math library.

tinynurbs is actively developed and maintained, with recent commits indicating ongoing improvements and bug fixes. The project has a decent number of stars and forks, suggesting active community interest. While documentation is present, further expansion could enhance user adoption. The library's stable API and consistent development cycle indicate a growing level of reliability.

tinynurbs benefits developers who require a lightweight and performant NURBS library for C++ applications. It is suitable for various applications like computer graphics, CAD/CAM systems, and scientific visualization, providing a valuable alternative to larger, more complex libraries or manual implementation of NURBS algorithms. It simplifies working with these mathematical models, saving development time and effort.

Languages:
Summarize:
Share:
Stars
506
Forks
96
Issues
12
Created
9 years ago
Commit
2 years ago
License
BSD-3-CLAUSE
Archived
No
Updated 18 days ago

Similar Repositories