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.
Please run build.bat first and it will construct solution by CMake.
Basic Elements:
- UV
- XYZ
- XYZW
- Matrix4d
- LNObject
NURBS Algorithms:
- 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:
- Curve/Surface Curvature and Normal
- Curve Split/Merge/Offset
- Curve IsLinear/IsArc
- Curve Approximate Length
- Surface Approximate Area
Welcome join this project including discussions in Issues and make Pull requests.
LNLib is created by Yuqing Liang (BIMCoder Liang).
- [email protected]
- 微信公众号:BIMCoder梁老师
The source code is published under GNU General Public License v3.0, the license is available here.
The NURBS Book 2nd Edition by Les Piegl & Wayne Tiller