Skip to content

A C++ NURBS Algorithms Library, match the NURBS Book

License

Notifications You must be signed in to change notification settings

ChenxingWang93/LNLib

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

LNLib is a C++ NURBS Algorithms Library.
These algorithms are primary referenced from The NURBS Book 2nd Edition.
The APIs are re-designed to make it more friendly to users.

Run LNLib

Please run build.bat first and it will construct solution by CMake.

Features

Basic Elements:

  • UV
  • XYZ
  • XYZW
  • Matrix4d
  • LNObject

Algorithms in The Nurbs Book:

  • Chapter 1:
    • Basis Function Computation
  • Chapter 1,2,3,4:
    • Bezier/B-Spline/NURBS Curve and Surface
  • Chapter 5:
    • Curve and Surface Decomposition
    • Knot Insertion/Refinement/Removal
    • Degree Elevation and Reduction
  • Chapter 6:
    • Curve/Surface Point Inversion
    • Surface Tangent Vector Inversion
    • Curve/Surface Reparameterization
    • Curve Transform and Reverse
    • Surface Swap and Reverse
  • Chapter 7:
    • Create Arc/Conic Curve
  • Chapter 8:
    • Create Bilinear/Cylindrical/Ruled/Revolved/CornerFillet Surface
  • Chapter 9:
    • Global/Local Curve/Surface Interpolation and Approximation
  • Chapter 10:
    • Create Swung/Loft/Sweep/Gordon/Coons Surface
  • Chapter 11:
    • Curve Modification in Control Point Locations or Weight Values
  • Chapter 12:
    • Curve Clamp/UnClamp/IsClamp
    • KnotVector IsUniform
    • Curve IsClosed/IsPeriodic

Additional Algorithms:

  • Basic Properties:
    • Curve/Surface Curvature and Normal
    • Curve Split/Merge/Offset
    • Curve IsLinear/IsArc
    • Curve Approximate Length
    • Surface Approximate Area
  • Curve Creation
    • Create Line/Cubic Hermite
  • Tessellation:
    • Curve Tessellation
    • Surface Tessellation

Visualization

LNLibViewer based on VTK

Contributing

Welcome join this project including discussions in Issues and make Pull requests.

Author

LNLib is created by Yuqing Liang (BIMCoder Liang).

License

The source code is published under GNU General Public License v3.0, the license is available here.

Primary Reference

The NURBS Book 2nd Edition by Les Piegl & Wayne Tiller

About

A C++ NURBS Algorithms Library, match the NURBS Book

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.3%
  • Other 0.7%