Giter Site home page Giter Site logo

vclib's Introduction

Visual Computing Library

BuildAndRunTests

The Visual Computing Library is a C++20 modern, header only, multiplatform Mesh and Geometry Processing templated library.

Disclaimer

I designed and developed this library mostly for personal use and to study new features of C++17 and C++20. Most of the features of this library are poorly tested: I maintain the library during my free time.

If you appreciate this work, or you think it could be improved, let me know by opening a thread in the discussion tab! Looking forward for your feedback!

Install

The library is header only, therefore to install it you just need to add the vclib/include directory in your INCLUDE_PATH. You can use the library by using the cmake command add_subdirectory, by adding the path to this repository in your cmake project. CMake will create a target called vclib, that you can link using the target_link_libraries command.

Compiler support

VCLib requires recent compiler versions in order to build the newly features of the C++20 language, that have been recently integrated in the major compilers.

VCLib currently builds with the follwing compilers:

  • GCC 11.3 (default in Ubuntu 22.04)
  • CLang 16 (default in XCode 15.0 on MacOS)
  • MSVC 19.36 (last version in Visual Studio 2022)

There is no guarantee that old compiler versions are capable to build the library.

If you use CMake, the minimum required version is 3.24.

C++20

VCLib is designed to work with the most recent features of C++20:

  • Concepts
  • Ranges and Views

In the future, when CMake will add stable support to C++20 modules, the library will be refactored and will use only modules, avoiding whenever is possible the usage of #include.

Documentation

Right now, the library is a work in progress, and therefore is a work in progress also the documentation.

The best way to learn how the library works is to look at the code in the tests, which is built at every commit and therefore it is guaranteed to work.

A first draft of the (not up-to-date) documentation of the library can be found here.

You can build the documentation using doxygen (tested on 1.9.1 version):

cd docs
doxygen Doxyfile

The output will be placed in the docs/_doxygen/html directory.

License

The library is under the GPL3 license.

vclib's People

Contributors

alemuntoni avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.