SFCGAL is a C++ wrapper library around CGAL with the aim of supporting ISO 19107:2019 and OGC Simple Features for 3D operations.
Please refer to the project page for an updated installation procedure.
- Website: https://sfcgal.org
- git repository: https://gitlab.com/sfcgal/SFCGAL
- #sfcgal chat channel (all bridged):
- IRC: irc://irc.libera.chat/#sfcgal (https://kiwiirc.com/nextclient/irc.libera.chat/#sfcgal)
See the INSTALL page.
SFCGAL promises long-term stability of the C API. In general, successive releases of the C API may add new functions but will not remove or change existing types or function signatures. The C library uses the C++ interface, but the C library follows normal ABI-change-sensitive versioning, so programs that link only against the C library should work without relinking when SFCGAL is upgraded. For this reason, it is recommended to use the C API for software that is intended to be dynamically linked to a system install of SFCGAL.
The sfcgal-config
program can be used to determine appropriate compiler and
linker flags for building against the C library:
CFLAGS += `sfcgal-config --cflags`
LDFLAGS += `sfcgal-config --ldflags --libs`
All functionality of the C API is available through the sfcgal_c.h
header file.
Documentation for the C API is provided via comments in the sfcgal_c.h
header
file. C API usage examples can be found in the SFCGAL unit tests and in the
source code of software that uses SFCGAL, such as PostGIS and the PySFCGAL package
for Python.
SFCGAL has bindings in many languages, see the bindings page.
API documentation can be generated using Doxygen. Documentation is not included in the default build. To build the documentation see the Development page.
To format your code into the desired style, use the clang-format
tools.
It can be automatically called with a series of git hooks (thanks to the pre-commit) tool). To install them:
pre-commit install
To commit without the git hooks, add the --no-verify
option to the git commit
command.
See documentation in Development page.
SFCGAL is provided under the following licence LGPL version 2 or later.