Git Product home page Git Product logo

opengp's Introduction

OpenGP

โš ๏ธ This project is not any longer under development (or being maintained).

OpenGP is a C++11 open source library for geometry processing. It has been designed and implemented with a focus on ease of use and performance while maintaining high flexibility. It follows the design principles of Surface_mesh, a mesh data structure developed by the Bielefeld Graphics & Geometry Group as a simpler to use version of OpenMesh. The Reference Manual provides detailed information on the classes and functions provided by OpenGP. Code examples can be found in the respective tutorials. Installation instructions are reported below.

System requirements

OpenGP uses CMake as its build system. Version 2.8 or greater is required. OpenGP has been tested to build with the following compilers:

Operating System Compiler
Linux gcc
Mac OS-X gcc, clang
Windows Visual Studio 2008

Installing OpenGP - Header Only Option

To install the header-only version of the library you can just copy&paste the OpenGP folder in the "src" subdirectory in your favorite include folder. In MaxOSX you can also just install it using homebrew as:

brew install https://raw.githubusercontent.com/OpenGP/OpenGP/master/opengp.rb

In your favorite build system simply define the macro OPENGP_HEADERONLY to use this method.

Installing OpenGP - Compiled Library Option

It is also possible to compile the library into a DLL for larger scale projects. You can checkout a snapshot of the sources as:

$ ~/Developer: git clone https://github.com/OpenGP/OpenGP.git
$ ~/Developer: cd OpenGP

To compile the library simply open cmake/ConfigureOpenGP.cmake and toggle the following line:

# set(OPENGP_HEADERONLY TRUE)
set(OPENGP_HEADERONLY FALSE)

After this change simply compile/install with CMake:

$ ~/Developer/OpenGP: mkdir build
$ ~/Developer/OpenGP: cd build
$ ~/Developer/OpenGP/build: cmake .. 
$ ~/Developer/OpenGP/build: make
$ ~/Developer/OpenGP/build: sudo make install

To uninstall OpenGP (CURRENTLY BROKEN), simply type:

$ ~/Developer/OpenGP/build: sudo make uninstall

Compiling the dynamic library, building the examples or building the applications (more involved examples), can be done by commenting/uncommenting items in the main CMakeLists.txt file.

Documentation

The documentation for this library is available at http://opengp.github.io/, but you can also generate a local copy by executing the following command (requires doxygen) and opening the file "doc/index.html":

$ ~/Developer/OpenGP/build: make doxygen
$ ~/Developer/OpenGP/build: open doc/index.html

To publish the documentation on http://opengp.github.io/ (only if you have push access rights):

$ ~/Developer/OpenGP/build: make publish_doc

Configuring the library

The configuration procedure can be fine-tuned by specifying flags using the -D option of cmake, for example:

$ ~/Developer/OpenGP/build: cmake -DCMAKE_BUILD_TYPE=Release ..

The command above would configure CMake to use release mode as its build type and /usr/bin/g++ as its C++ compiler. For additional information on using cmake and customizing its configuration see the CMake documentation.

FlagDescription
CMAKE_BUILD_TYPE {DEBUG | RELEASE} Specify the build type
CMAKE_CXX_COMPILER {clang, g++, ...} Specify the compiler to be used (default: g++-5, required: c++11 compliant)
CMAKE_CXX_FLAGS Specify additional compiler flags, e.g. "-DNDEBUG" disables standard-C assertions

Changes

  • Jan'16: Major refactor for adoption in DGP course OpenGP 1.1
  • Feb'14: Initial release of the OpenGP 1.0 library

opengp's People

Contributors

drebain avatar dsieger avatar ikoruk avatar leonsenft avatar marovira avatar nlguillemot avatar taiya 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.