Ocean
Loading...
Searching...
No Matches
tracking/pattern/Pattern.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_TRACKING_PATTERN_PATTERN_H
9#define META_OCEAN_TRACKING_PATTERN_PATTERN_H
10
12
13namespace Ocean
14{
15
16namespace Tracking
17{
18
19namespace Pattern
20{
21
22/**
23 * @ingroup tracking
24 * @defgroup trackingpattern Ocean Pattern Tracking Interface
25 * @{
26 * The Ocean Pattern Tracker Library allows to track individual patterns.
27 * You can use the PatternTracker6DOF class which is derived from VisualTracker,<br>
28 * or you can use the actual implementation directly PatternTrackerCore6DOF if you want to get rid of the object oriented implementation.<br>
29 *
30 * The tracker provides camera poses for individual tracking patterns.<br>
31 * Each pattern is connected with an id allowing to distinguish between the individual patterns.<br>
32 * For each camera frame, the tracker determines pairs of pattern ids and camera poses (for all visible patterns).<br>
33 * Each resulting camera pose transforms points defined in the camera coordinate system to points defined in the coordinate system of the corresponding pattern (pTc).<br>
34 *
35 * Each pattern has an own coordinate system with origin in the upper left corner of the pattern image (the pattern is expected to be located e.g., on a table - not on a wall).<br>
36 * The x-axis is pointing along the horizontal border of the pattern (to the right),<br>
37 * the y-axis is pointing upwards towards the observer,<br>
38 * the z-axis is pointing along the vertical border of the pattern (downwards):
39 * <pre>
40 * ^
41 * Y |
42 * |
43 * |
44 * O ---------> ............. (pattern top right)
45 * / X .
46 * / Z .
47 * v .
48 * . .
49 * . .
50 * . ........................ (pattern bottom right)
51 * (pattern bottom left)
52 * </pre>
53 *
54 * The coordinate system of the camera is defined such that the observer/camera is looking into the negative z-space, the origin is in the center of the image.<br>
55 * The x-axis points to the right of the camera, and the y-axis is identical to the up vector of the camera:<br>
56 * <pre>
57 * ................................. (camera image top right)
58 * . .
59 * . ^ .
60 * . Y | .
61 * . | .
62 * . | .
63 * . O ---------> .
64 * . / X .
65 * . / Z .
66 * . v .
67 * . .
68 * ................................. (camera image bottom right)
69 * (camera image bottom left)
70 * </pre>
71 * @see PatternTracker6DOF, PatternTrackerCore6DOF.
72 * @}
73 */
74
75/**
76 * @namespace Ocean::Tracking::Pattern Namespace of the Pattern Tracker library.<p>
77 * The Namespace Ocean::Tracking::Pattern is used in the entire Ocean Pattern Tracker Library.
78 */
79
80// Defines OCEAN_TRACKING_PATTERN_EXPORT for dll export and import.
81#if defined(_WINDOWS) && defined(OCEAN_RUNTIME_SHARED)
82 #ifdef USE_OCEAN_TRACKING_PATTERN_EXPORT
83 #define OCEAN_TRACKING_PATTERN_EXPORT __declspec(dllexport)
84 #else
85 #define OCEAN_TRACKING_PATTERN_EXPORT __declspec(dllimport)
86 #endif
87#else
88 #define OCEAN_TRACKING_PATTERN_EXPORT
89#endif
90
91}
92
93}
94
95}
96
97#endif // META_OCEAN_TRACKING_PATTERN_PATTERN_H
The namespace covering the entire Ocean framework.
Definition Accessor.h:15