Skip to content
/ gbs Public
forked from ssg-aero/gbs

gbs is a c++ header library to build and manage NURBS, some optional module are used for visualization and export. This library is compatible with OpenCASACADE and has a python biding.

License

Notifications You must be signed in to change notification settings

GuyDSP/gbs

This branch is 640 commits behind ssg-aero/gbs:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

517a5df · May 24, 2021
Dec 18, 2020
Dec 18, 2020
May 13, 2021
Apr 26, 2021
Dec 7, 2020
May 14, 2021
May 24, 2021
May 24, 2021
May 2, 2021
May 21, 2021
May 24, 2021
Mar 17, 2021
Mar 22, 2021
Mar 10, 2021
May 21, 2021
Sep 30, 2020
May 24, 2021
Apr 18, 2021
Oct 12, 2020

Repository files navigation

GBS is header library for computing bspline curves and surfaces.

GBS is compatible with OpenCASCADE, curves and surfaces can be converted to OpenCASCADE's objects.

Example of point cloud approximation: Screencast

Example of points surface interpolation: Screencast

Example of curve-surface intersection: Screencast

Example of loft-surface creation: Screencast

Example of surface approximation of points: Screencast

Example of curve 2d variable offset: Screencast Screencast

Example of curve on surface: Screencast

Example of python code to interpolate points

    pts = [
        [0.,0.,0],
        [0.,0.,1],
        [1.,0.,0.5],
        [1.,1.,1]
    ]
    constrains = []
    for p in pts:
        constrains.append([p])

    degree = 2

    crv = gbs.interpolate_cn_3d_d(
        constrains,
        degree,
        gbs.KnotsCalcMode.CHORD_LENGTH
    )

For now, this lib is to be used inside a conda environment with the following package installed:

  • nlopt
  • eigen3
  • boost >= 1.74

The optional module gbs-occt requires the additional package:

  • occt >=7.4.0

The optional module render requires the additional package:

  • vtk >=9.0

The python bindings requires the additional package:

  • pybind11

The test library needs:

  • gtest
  • occt>=7.4.0
  • sundials

Warning tests relative to performances evaluation should be run in release mode

As GBS base is a header library it doesn’t need compilation.

If one needs to compile the optional module gbs-occt, -DUSE_OCCT_UTILS:BOOL=TRUE shall be added to cmake command. If one needs to compile the optional module render, -DUSE_RENDER:BOOL=TRUE shall be added to cmake command. If one needs to compile the optional module python-bindings, -DUSE_PYTHON_BINDINGS=TRUE shall be added to cmake command.

The full test suite, which require the optional module gbs-occt, please add -DGBS_BUILD_TESTS:BOOL=TRUE to the cmake command.

About

gbs is a c++ header library to build and manage NURBS, some optional module are used for visualization and export. This library is compatible with OpenCASACADE and has a python biding.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.7%
  • CMake 1.7%
  • Other 0.6%