\(
\newcommand{\bm}[1]{\boldsymbol{#1}}
\newcommand{\defeq}{\triangleq}
\newcommand{\liegrp}[2]{\mathrm{#1}(#2)}
\newcommand{\liealg}[2]{\mathfrak{#1}(#2)}
\newcommand{\SO}[1]{\liegrp{SO}{#1}}
\newcommand{\SE}[1]{\liegrp{SE}{#1}}
\newcommand{\so}[1]{\liealg{so}{#1}}
\newcommand{\se}[1]{\liealg{se}{#1}}
\newcommand{\Spin}[1]{\liegrp{Spin}{#1}}
\newcommand{\R}[1]{\mathbb{R}^{#1}}
\renewcommand{\P}[1]{\mathbb{P}^{#1}}
\newcommand{\T}[1]{\mathbb{T}^{#1}}
\renewcommand{\S}[1]{S^{#1}}
\newcommand{\Frame}[1]{\mathcal F_{#1}}
\renewcommand{\v}[1]{\bm{\mathbf{#1}}}
\newcommand{\vh}[1]{\bm{#1}}
\newcommand{\vhm}[1]{\bm{#1}}
\newcommand{\pt}[1]{#1}
\newcommand{\vecpt}[1]{\overrightarrow{\pt{#1}}}
\newcommand{\en}[1]{\mathqzc{#1}}
\newcommand{\vs}[1]{\mathcal{#1}}
\newcommand{\f}[3]{{}_{#2} \v{#1}_{#3}}
\newcommand{\F}[2]{\v{#1}_{#2}}
\newcommand{\fh}[3]{{}_{#2} \vh{#1}_{#3}}
\newcommand{\Fh}[2]{\vh{#1}_{#2}}
\newcommand{\trans}{^{\mkern-1.5mu\mathsf{T}}}
\newcommand{\inv}{^{-1}}
\newcommand{\origin}{\pt O}
\newcommand{\elvec}{p}
\newcommand{\fvec}[2]{\f{\elvec}{#1}{#2}}
\newcommand{\fvech}[2]{\fh{\elvec}{#1}{#2}}
\newcommand{\vvec}{\v{\elvec}}
\newcommand{\elvecg}{v}
\newcommand{\fvecg}[2]{\f{\elvecg}{#1}{#2}}
\newcommand{\vvecg}{\v{\elvecg}}
\newcommand{\elrot}{R}
\newcommand{\frot}[1]{\F{\elrot}{#1}}
\newcommand{\vrot}{\v{\elrot}}
\newcommand{\eltf}{T}
\newcommand{\ftf}[1]{\F{\eltf}{#1}}
\newcommand{\vtf}{\v{\eltf}}
\newcommand{\elgrp}{\Phi}
\newcommand{\fgrp}[1]{\F{\elgrp}{#1}}
\newcommand{\vgrp}{\v{\elgrp}}
\newcommand{\elalg}{\varphi}
\newcommand{\falg}[2]{\f{\elalg}{#1}{#2}}
\newcommand{\valg}{\v{\elalg}}
\newcommand{\elq}{q}
\newcommand{\fq}[1]{\F{\elq}{#1}}
\newcommand{\vq}{\v{\elq}}
\newcommand{\elrotmat}{C}
\newcommand{\frotmat}[1]{\F{\elrotmat}{#1}}
\newcommand{\vrotmat}{\v{\elrotmat}}
\newcommand{\Grp}{G}
\newcommand{\Op}{\circ}
\newcommand{\El}{\en g}
\newcommand{\ElB}{\en h}
\newcommand{\AlgEl}{\v X}
\newcommand{\AlgElB}{\v Y}
\newcommand{\Id}{\en e}
\newcommand{\Alg}{\mathfrak{g}}
\newcommand{\Tan}{\vs T}
\newcommand{\sevec}{\v\xi}
\newcommand{\setvec}{\v\rho}
\newcommand{\tvec}{\v t}
\newcommand{\rotvec}{\v\phi}
\newcommand{\hatop}{\wedge}
\newcommand{\crossop}{\times}
\newcommand{\Ad}{\mathrm{Ad}}
\newcommand{\ad}{\mathrm{ad}}
\newcommand{\alg}{\mathrm{alg}}
\newcommand{\eye}{\v I}
\newcommand{\zeros}{\v 0}
\)
wave_geometry
Install
Get the source code
The latest version of wave_geometry is available on GitHub .
git clone https://github.com/wavelab/wave_geometry
Dependencies
wave_geometry requires:
an existing installation of Eigen 3.3.2 or above
an existing installation of Boost 1.58 or above (header-only libraries)
a C++17 compiler (tested on GCC 6.5, clang 5.0)
It has only been tested on Linux.
Install on Linux
wave_geometry is a header-only library, meaning no compilation is required to use it in your project.
It can be installed with CMake.
cd wave_geometry
mkdir build
cd build
cmake .. -DBUILD_TESTING= OFF
sudo make install
Setting the BUILD_TESTING
option to ON
(the default) will build unit tests,
and make test
will run them.
As an alternative to make install
, the CMake option -DEXPORT_BUILD=ON
will
make the build directory findable by other CMake projects without installation.
Use in a CMake project
Once wave_geometry has been either installed or exported by CMake, it can be used in
your project’s CMakeLists.txt
file as follows:
cmake_minimum_required ( VERSION 3.8 )
project ( example )
set ( CMAKE_CXX_STANDARD 17 )
find_package ( wave_geometry REQUIRED )
add_executable ( example example.cpp )
target_link_libraries ( example wave_geometry )
In your C++ file, write:
#include <wave/geometry/geometry.hpp>