-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKinectDataAsMemoryBuffer.h
executable file
·95 lines (82 loc) · 2.26 KB
/
KinectDataAsMemoryBuffer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/**
* @file KinectDataAsMemoryBuffer.h
* @ingroup Kinect
* @author Dominique Vaufreydaz, Grenoble Alpes University, Inria
* @copyright All right reserved.
*/
#ifndef __KINECT_DATA_AS_MEMORY_BUFFER_H__
#define __KINECT_DATA_AS_MEMORY_BUFFER_H__
#ifdef KINECT_2
#include "KinectBasics.h"
#include <System/MemoryBuffer.h>
namespace MobileRGBD { namespace Kinect2 {
/**
* @class KinectDataAsMemoryBuffer KinectDataAsMemoryBuffer.cpp KinectDataAsMemoryBuffer.h
* @brief Manage buffer for Kinect data.
*
* @author Dominique Vaufreydaz, Grenoble Alpes University, Inria
*/
class KinectDataAsMemoryBuffer
{
public:
/** @brief constructor.
*/
KinectDataAsMemoryBuffer() {};
/** @brief Virtual destructor, always.
*/
virtual ~KinectDataAsMemoryBuffer() {};
/** @brief Abstract Set function. Set will put all reference to memory buffer for KinectBody data
*
* @param Buffer [in] Buffer to use for data
*/
virtual void Set(unsigned char *Buffer) = 0;
protected:
/** @brief Store in an unsigned char value a BOOLEAN value from the Kinect
*
* @param ToSet [in] Where to store the value
* @param Val [in] Value to store
*/
static inline void SetValueFromBollean(unsigned char& ToSet, BOOLEAN Val)
{
if ( Val == TRUE )
{
ToSet = 1;
}
else
{
ToSet = 0;
}
}
/** @brief Store in a bool value a BOOLEAN value from the Kinect
*
* @param ToSet [in] Where to store the value
* @param Val [in] Value to store
*/
static inline void SetValueFromBollean(bool& ToSet, BOOLEAN Val)
{
if ( Val == TRUE )
{
ToSet = true;
}
else
{
ToSet = false;
}
}
/** @brief Set adress of data at Buffer. Increase Buffer by sizeof(TYPE)*NumberOfItems.
*
* @param TypePointer [in] Type of data
* @param Buffer [in,out] Starting buffer for the data
* @param NumberOfItems [in] Number of element to store (default=1, more than 1 for arrays).
*/
template<typename TYPE>
void SetAddressAndIncreaseBuffer(TYPE*& TypePointer, unsigned char*&Buffer, int NumberOfItems = 1)
{
TypePointer = (TYPE*)Buffer;
int SizeOfEment = sizeof(TYPE)*NumberOfItems;
Buffer += SizeOfEment;
}
};
}} // namespace MobileRGBD::Kinect2
#endif // KINECT_2
#endif // __KINECT_DATA_AS_MEMORY_BUFFER_H__