Skip to content

BIMCoderLiang/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 to construct C++ solution by CMake.

Features

Basic Elements:

  • UV
  • XYZ
  • XYZW
  • Matrix4d
  • LNObject

Algorithms in The Nurbs Book:

Chapter Content
Chapter 1 Basis Function Computation
Chapter 1 to 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:

Description Content
Basic Properties Curve/Surface Curvature and Normal
Curve Split/Segment/Merge/Offset
Curve IsLinear/IsArc
Curve Approximate Length
Surface Approximate Area
Curve Creation Create Line/Cubic Hermite
Tessellation Curve Tessellation
Surface Triangulation

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