JeVoisBase  1.21
JeVois Smart Embedded Machine Vision Toolkit Base Modules
Share this page:
Loading...
Searching...
No Matches
ARMarkerSquare.h
Go to the documentation of this file.
1/*
2 * ARMarkerSquare.h
3 * ARToolKit5
4 *
5 * Demonstration of ARToolKit NFT with models rendered in OSG,
6 * and marker pose estimates filtered to reduce jitter.
7 *
8 * Press '?' while running for help on available key commands.
9 *
10 * Disclaimer: IMPORTANT: This Daqri software is supplied to you by Daqri
11 * LLC ("Daqri") in consideration of your agreement to the following
12 * terms, and your use, installation, modification or redistribution of
13 * this Daqri software constitutes acceptance of these terms. If you do
14 * not agree with these terms, please do not use, install, modify or
15 * redistribute this Daqri software.
16 *
17 * In consideration of your agreement to abide by the following terms, and
18 * subject to these terms, Daqri grants you a personal, non-exclusive
19 * license, under Daqri's copyrights in this original Daqri software (the
20 * "Daqri Software"), to use, reproduce, modify and redistribute the Daqri
21 * Software, with or without modifications, in source and/or binary forms;
22 * provided that if you redistribute the Daqri Software in its entirety and
23 * without modifications, you must retain this notice and the following
24 * text and disclaimers in all such redistributions of the Daqri Software.
25 * Neither the name, trademarks, service marks or logos of Daqri LLC may
26 * be used to endorse or promote products derived from the Daqri Software
27 * without specific prior written permission from Daqri. Except as
28 * expressly stated in this notice, no other rights or licenses, express or
29 * implied, are granted by Daqri herein, including but not limited to any
30 * patent rights that may be infringed by your derivative works or by other
31 * works in which the Daqri Software may be incorporated.
32 *
33 * The Daqri Software is provided by Daqri on an "AS IS" basis. DAQRI
34 * MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
35 * THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
36 * FOR A PARTICULAR PURPOSE, REGARDING THE DAQRI SOFTWARE OR ITS USE AND
37 * OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
38 *
39 * IN NO EVENT SHALL DAQRI BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
40 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
41 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
42 * INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
43 * MODIFICATION AND/OR DISTRIBUTION OF THE DAQRI SOFTWARE, HOWEVER CAUSED
44 * AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
45 * STRICT LIABILITY OR OTHERWISE, EVEN IF DAQRI HAS BEEN ADVISED OF THE
46 * POSSIBILITY OF SUCH DAMAGE.
47 *
48 * Copyright 2015 Daqri LLC. All Rights Reserved.
49 * Copyright 2011-2015 ARToolworks, Inc. All Rights Reserved.
50 *
51 * Author(s): Philip Lamb.
52 *
53 */
54
55#ifndef __ARMarkerSquare_h__
56#define __ARMarkerSquare_h__
57
58#include <AR/ar.h>
59#include <AR/arFilterTransMat.h>
60#ifndef _MSC_VER
61# include <stdbool.h>
62#else
63typedef unsigned char bool;
64#endif
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70typedef struct {
71 ARdouble v[3];
72} ARVec3;
73
74typedef struct {
75 ARdouble T[16]; // Position and orientation, column-major order. (position(x,y,z) = {T[12], T[13], T[14]}
76} ARPose;
77
78extern const ARPose ARPoseUnity;
79
80typedef struct _ARMarkerSquare {
81 // ARMarker protected
82 bool valid;
84 ARdouble trans[3][4];
86 ARdouble marker_width;
87 ARdouble marker_height;
88 // ARMarker private
89 ARFilterTransMatInfo *ftmi;
92 // ARMarkerSquare
93 int patt_id; // ARToolKit pattern ID.
95 ARdouble marker_coord[4][2]; // Window coords. of marker corners.
99
100#define AR_PATTERN_TYPE_TEMPLATE 0
101#define AR_PATTERN_TYPE_MATRIX 1
102
103void newMarkers(const char *markersConfigDataFilePathC, ARPattHandle *arPattHandle, ARMarkerSquare **markersSquare_out, int *markersSquareCount_out, int *patternDetectionMode_out);
104
105void deleteMarkers(ARMarkerSquare **markersSquare_p, int *markersSquareCount_p, ARPattHandle *arPattHandle);
106
107#ifdef __cplusplus
108}
109#endif
110#endif // !__ARMarkerSquare_h__
const ARPose ARPoseUnity
void deleteMarkers(ARMarkerSquare **markersSquare_p, int *markersSquareCount_p, ARPattHandle *arPattHandle)
struct _ARMarkerSquare ARMarkerSquare
void newMarkers(const char *markersConfigDataFilePathC, ARPattHandle *arPattHandle, ARMarkerSquare **markersSquare_out, int *markersSquareCount_out, int *patternDetectionMode_out)
ARdouble filterCutoffFrequency
ARFilterTransMatInfo * ftmi
ARdouble marker_height
ARdouble marker_width
ARdouble matchingThreshold
ARdouble trans[3][4]
ARdouble filterSampleRate
ARdouble marker_coord[4][2]