API Documentation
Loading...
Searching...
No Matches
SLAMEngine.h
Go to the documentation of this file.
1#pragma once
2#include "DLLInfo.h"
3#include <NDEVR/SoftwareService.h>
4#include <NDEVR/Buffer.h>
5#include <NDEVR/UUID.h>
6#include <NDEVR/RGBColor.h>
7#include <NDEVR/Vertex.h>
8#include <NDEVR/Matrix.h>
9#include <NDEVR/Dictionary.h>
10namespace NDEVR
11{
12 /**--------------------------------------------------------------------------------------------------
13 \brief A frame of data that can be processed by a SLAM engine to determine relative location
14 **/
27 /**--------------------------------------------------------------------------------------------------
28 \brief Provides logic to perform SLAM on an object
29 **/
31 {
32 public:
33 virtual void addFrame(const SLAMFrame& frame) = 0;
34 virtual void setTransform(Matrix<fltp08>& transform) = 0;
35 virtual Matrix<fltp08> getTransform() const = 0;
36 virtual void reset() = 0;
37 };
38 /**--------------------------------------------------------------------------------------------------
39 \brief Creates a SLAM engine when required
40 **/
42 {
43 public:
45 virtual UUID id() const = 0;
46 };
47 /**--------------------------------------------------------------------------------------------------
48 \brief Registers engines which can be used in the SLAM process
49 **/
51 {
52 public:
53 static void RegisterEngine(SLAMEngineFactory* engine, bool make_default);
57 private:
59 static UUID s_default_engine;
60 };
61
62}
#define NDEVR_DESIGN_API
Definition DLLInfo.h:55
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
A hash-based key-value store, useful for quick associative lookups. Key features include:
Definition Dictionary.h:61
Definition Matrix.hpp:176
Creates a SLAM engine when required.
Definition SLAMEngine.h:42
virtual UUID id() const =0
virtual SLAMEngine * createSLAMEngine()=0
Provides logic to perform SLAM on an object.
Definition SLAMEngine.h:31
virtual void reset()=0
virtual Matrix< fltp08 > getTransform() const =0
virtual void addFrame(const SLAMFrame &frame)=0
virtual void setTransform(Matrix< fltp08 > &transform)=0
Registers engines which can be used in the SLAM process.
Definition SLAMEngine.h:51
static void RegisterEngine(SLAMEngineFactory *engine, bool make_default)
static Dictionary< UUID, SLAMEngineFactory * > & Engines()
static SLAMEngineFactory * DefaultEngineFactory()
static SLAMEngine * CreateDefaultSLAMEngine()
A frame of data that can be processed by a SLAM engine to determine relative location.
Definition SLAMEngine.h:16
fltp08 max_transform_error
Definition SLAMEngine.h:24
fltp08 time
Definition SLAMEngine.h:22
Matrix< fltp08 > estimated_transform
Definition SLAMEngine.h:18
bool request_filter
Definition SLAMEngine.h:25
Buffer< RGBColor > colors
Definition SLAMEngine.h:20
Buffer< Vertex< 3, fltp04 > > points
Definition SLAMEngine.h:19
fltp08 max_distance_error
Definition SLAMEngine.h:23
Buffer< Ray< 3, fltp04 > > normals
Definition SLAMEngine.h:21
Software Services provide an interface for adding to or changing the software behavior via functional...
Definition SoftwareService.h:9
Software Service Managers take a Software service to modify the behavior of the software.
Definition SoftwareService.h:15
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
Definition ACIColor.h:37
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:149
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
Definition BaseValues.hpp:233