DAVID4 SDK
1.8.7
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
d4lib_helpers.h
1
//=============================================================================
2
// See License in Related Pages
3
//=============================================================================
4
5
#pragma once
6
7
#ifndef DAVID_SDK_D4LIB_HELPERS_H
8
#define DAVID_SDK_D4LIB_HELPERS_H
9
10
#include "davidSDK/d4lib.h"
11
//#include "davidSDK/Exceptions.h"
12
#include <memory>
13
14
/// C++ helper functions for d4lib.
15
namespace
d4 {
16
17
//*****************************************************************************
18
/// @addtogroup LowLevelGroup
19
/// @{
20
/// @defgroup d4lib_helpers Helpers for DAVID Low Level Library (d4lib)
21
/// Provides C++ helper functions for the DAVID Low Level Library (d4lib).
22
/// @{
23
//*****************************************************************************
24
25
/// Encapsulates a native d4lib pointer into a shared_ptr object.
26
/// @param[in] ptr Valid pointer of a d4lib object.
27
/// @return Shared pointer.
28
template
<
class
T>
29
//std::shared_ptr<T> MakeShared(T* ptr, bool checkPtr=true)
30
std::shared_ptr<T>
MakeShared
(T* ptr)
31
{
32
//if (checkPtr && ptr == nullptr) ThrowException(david::Error_InvalidArgument, "Pointer is nullptr.", "MakeShared");
33
return
std::shared_ptr<T>(ptr,
d4mem_decRefCount
);
34
}
35
36
37
/// C++ functions related to d4img.
38
namespace
img {
39
40
/// Create new image object (#d4img_newImage).
41
/// @return shared_ptr.
42
inline
std::shared_ptr<d4img>
newImage
()
43
{
44
return
MakeShared
(
d4img_newImage
());
45
}
46
47
}
// img
48
49
50
/// C++ functions related to d4fimg.
51
namespace
fimg {
52
53
/// Create new float image object (#d4fimg_newImage).
54
/// @return shared_ptr.
55
inline
std::shared_ptr<d4fimg>
newImage
()
56
{
57
return
MakeShared
(
d4fimg_newImage
());
58
}
59
60
}
// fimg
61
62
63
/// C++ functions related to d4projector.
64
namespace
projector {
65
66
/// Create new extended display projector (#d4projector_newExtendedDisplayProjector).
67
/// @return shared_ptr.
68
inline
std::shared_ptr<d4projector>
newExtendedDisplayProjector
()
69
{
70
return
MakeShared
(
d4projector_newExtendedDisplayProjector
());
71
}
72
73
}
// projector
74
75
76
/// C++ functions related to d4cam.
77
namespace
cam {
78
79
/// Create new direct show camera object (#d4cam_newDirectShowCamera).
80
/// @return shared_ptr.
81
inline
std::shared_ptr<d4cam>
newDirectShowCamera
()
82
{
83
return
MakeShared
(
d4cam_newDirectShowCamera
());
84
}
85
86
}
// d4cam
87
88
89
/// C++ functions related to d4calib.
90
namespace
calib {
91
92
/// Create new camera calibration object (#d4calib_newCameraCalibration).
93
/// @return shared_ptr.
94
inline
std::shared_ptr<d4calib>
newCameraCalibration
()
95
{
96
return
MakeShared
(
d4calib_newCameraCalibration
());
97
}
98
99
}
// calib
100
101
102
/// C++ functions related to d4calib.
103
namespace
calib {
104
105
/// Create new projector calibration object (#d4calib_newProjectorCalibration).
106
/// @return shared_ptr.
107
inline
std::shared_ptr<d4calib>
newProjectorCalibration
()
108
{
109
return
MakeShared
(
d4calib_newProjectorCalibration
());
110
}
111
112
}
// calib
113
114
115
/// C++ functions related to d4sls.
116
namespace
sls {
117
118
/// Create new structured light scanner object (#d4sls_newStructuredLightScanner).
119
/// @return shared_ptr.
120
inline
std::shared_ptr<d4sls>
newStructuredLightScanner
()
121
{
122
return
MakeShared
(
d4sls_newStructuredLightScanner
());
123
}
124
125
}
// sls
126
127
128
/// C++ functions related to d4mesh.
129
namespace
mesh {
130
131
/// Create new mesh object (#d4mesh_newMesh).
132
/// @return shared_ptr.
133
inline
std::shared_ptr<d4mesh>
newMesh
()
134
{
135
return
MakeShared
(
d4mesh_newMesh
());
136
}
137
138
}
// mesh
139
140
141
/// @} d4lib
142
/// @} LowLevelGroup
143
144
}
// d4
145
146
#endif // DAVID_SDK_D4LIB_HELPERS_H
davidSDK
d4lib_helpers.h
Generated on Tue May 17 2016 17:11:27 for DAVID4 SDK by
1.8.4