This is an overview of how the C++ headers are organised in the installation directory for the Core module.
<install-prefix> refers to the path where the SDK is installed.
The default values depends on your operating system and installation:
/usrwhen installing with the packages and
/usr/localwhen building from source code with the deployment step
The headers of the SDK Core module are grouped semantically under high-level folders:
<install-prefix>/include/metavision/sdk ├── core │ ├── algorithms │ │ ├── detail │ │ └── ... │ ├── pipeline │ │ ├── detail │ │ └── ... │ └── utils │ ├── detail │ └── ... └── other modules...
In addition to the headers, each of the folders optionally has a
detail folders contain the code that has been removed from the main headers in order to make them more readable.
detail folders include method implementations, helpers, macros, etc. which are not meant to be included directly
in your application.
algorithms folder contains a collection of common algorithms used to process or filter events.
These algorithms are, most of the time, implemented as classes with a
process_events method working on ranges of events.
Similarly to what is used in the C++ STL algorithms (http://www.cplusplus.com/reference/algorithm),
we represent the ranges of events by a pair of iterators or pointers for the
input and a starting iterator or a
pointer for the
FlipYAlgorithm implements a simple algorithm
that inverts the y coordinates of the input events. It exposes this function template, which takes a pair of iterators
as input (
last) and outputs y-flipped events to the
template<class InputIt, class OutputIt> void process_events(InputIt first, InputIt last, OutputIt d_first)
pipeline folder contains headers that define the
BaseStage classes and implementations for a variety of pipeline stages.
Pipeline is a class that implements an optionally multi-threaded
where events are processed in stages. Each stage can receive any type of data as input from the previous stages,
and produce data to be fed to the next stages.
utils folder contains assorted utilities that are deemed generally useful
but don’t belong to any other category.