/CCCoreLib

C++ library which provides data structures & algorithms for working with 3D point cloud data

Primary LanguageC++OtherNOASSERTION

CCCoreLib

Actions Status

This library provides data structures and algorithms for working with 3D point cloud data.

It was originally part of the CloudCompare repository (as "CCLib").

We have separated it into its own repository because it is useful on its own without having to download the entire CloudCompare repository. This makes it easier to work with and gives this part of the CloudCompare project some visibility it would not otherwise have.

It uses CMake, requires C++14, and compiles & runs on Linux, macOS, and Windows.

Main CMake Options

Option Description Default
CCCORELIB_USE_CGAL Use CGAL to enable Delaunay 2.5D triangulation with a GPL compliant licence OFF
CCCORELIB_USE_TBB Use Intel Threading Building Blocks lib to enable some parallel processing OFF
CCCORELIB_USE_QT_CONCURRENT Use Qt to enable parallel processing using QtConcurrent ON
CCCORELIB_SHARED Compile as a shared library ON
CCCORELIB_SCALAR_DOUBLE Define ScalarType as double (instead of float) OFF

Qt Option (Qt5_DIR)

If CCCORELIB_USE_QT_CONCURRENT is on (it is by default), then you may need to tell CMake where to find the Qt cmake files. The official docs from Qt show two ways to do so:

  • setting CMAKE_PREFIX_PATH to point to your Qt installation (where 'bin', 'doc', 'include', lib', etc. live)
  • setting Qt5_DIR to point at the cmake directory within your Qt installation (this would be something like <Qt installation>/cmake/Qt5)

From this, cmake will determine Qt5Concurrent_DIR, Qt5Core_DIR, and Qt5Widgets_DIR, so there's no need to set those explicitly.

Things We Have Yet To Do

  • contribution guidelines (including coding style)
  • documentation

How You Can Help

License

This project as a whole is licensed under the LGPL 2.0+ license - see the LICENSE file for details.

Individual source files contain the following tag instead of the full license text:

SPDX-License-Identifier: LGPL-2.0-or-later

The CMake files are licensed under the MIT license - see the LICENSE-MIT file for details.

These files contain the following tag instead of the full license text:

SPDX-License-Identifier: MIT

Using SPDX enables machine processing of license information based on the SPDX License Identifiers and makes it easier for developers to see at a glance which license they are dealing with.

License Special Note

Two files (BoundingBox.cpp and RayAndBox.h) were previously licensed under the GPL 2.0+ license by mistake.

These files contained the following tag:

SPDX-License-Identifier: GPL-2.0-or-later

The necessary permissions were secured to relicense these under LGPL:

SPDX-License-Identifier: LGPL-2.0-or-later