diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-26 09:17:09 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-26 09:21:30 +0300 |
commit | 88695159e16bdfb8424de99d482adf332a93740d (patch) | |
tree | bcf4c815b77f80534e9b1edd33bab3f57283647b /tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnDataTypes.h | |
parent | bb0e49c6bc7e4e650fc84366ff51ee47c8e5c530 (diff) |
Kinect surface added to tests
- theme changing etc. to be added
Change-Id: I26e72757c90b450aeeecf89ffdf39d312f6c2769
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnDataTypes.h')
-rw-r--r-- | tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnDataTypes.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnDataTypes.h b/tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnDataTypes.h new file mode 100644 index 00000000..fcc3296c --- /dev/null +++ b/tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnDataTypes.h @@ -0,0 +1,120 @@ +/**************************************************************************** +* * +* OpenNI 1.x Alpha * +* Copyright (C) 2011 PrimeSense Ltd. * +* * +* This file is part of OpenNI. * +* * +* OpenNI is free software: you can redistribute it and/or modify * +* it under the terms of the GNU Lesser General Public License as published * +* by the Free Software Foundation, either version 3 of the License, or * +* (at your option) any later version. * +* * +* OpenNI is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * +* * +****************************************************************************/ +#ifndef _XN_DATA_TYPES_H_ +#define _XN_DATA_TYPES_H_ + +//--------------------------------------------------------------------------- +// Includes +//--------------------------------------------------------------------------- +#include "XnOS.h" + +//--------------------------------------------------------------------------- +// Types +//--------------------------------------------------------------------------- +/** + * The value type for all general data structures + */ +typedef void* XnValue; + +/** + * Declares a translator from @a Type to XnValue, with a name @a ClassName. The class is declared + * with the @a decl declspec. + */ +#define XN_DECLARE_DEFAULT_VALUE_TRANSLATOR_DECL(decl, Type, ClassName) \ + class decl ClassName \ + { \ + public: \ + XN_PRAGMA_START_DISABLED_WARNING_SECTION(XN_CONDITION_IS_CONST_WARNING_ID) \ + \ + static XnValue CreateValueCopy(Type const& orig) \ + { \ + if (sizeof(Type) > sizeof(XnValue)) \ + { \ + Type* pNew = XN_NEW(Type, orig); \ + return (XnValue)pNew; \ + } \ + else \ + { \ + XnValue result = 0; \ + xnOSMemCopy(&result, &orig, sizeof(Type)); \ + return result; \ + } \ + } \ + static void FreeValue(XnValue& Value) \ + { \ + if (sizeof(Type) > sizeof(XnValue)) \ + { \ + Type* p = (Type*)Value; \ + XN_DELETE(p); \ + } \ + } \ + static XnValue GetAsValue(Type const& orig) \ + { \ + if (sizeof(Type) > sizeof(XnValue)) \ + { \ + return (XnValue)&orig; \ + } \ + else \ + { \ + XnValue result = 0; \ + xnOSMemCopy(&result, &orig, sizeof(Type)); \ + return result; \ + } \ + } \ + static Type const& GetFromValue(const XnValue& Value) \ + { \ + if (sizeof(Type) > sizeof(XnValue)) \ + { \ + Type const* p = (Type const*)Value; \ + return *p; \ + } \ + else \ + { \ + Type const* p = (Type const*)&Value; \ + return *p; \ + } \ + } \ + static Type& GetFromValue(XnValue& Value) \ + { \ + if (sizeof(Type) > sizeof(XnValue)) \ + { \ + Type* p = (Type*)Value; \ + return *p; \ + } \ + else \ + { \ + Type* p = (Type*)&Value; \ + return *p; \ + } \ + } \ + XN_PRAGMA_STOP_DISABLED_WARNING_SECTION \ + }; + +/** + * Declares a translator from @a Type to XnValue, with a name @a ClassName. + */ +#define XN_DECLARE_DEFAULT_VALUE_TRANSLATOR(Type, ClassName) \ + XN_DECLARE_DEFAULT_VALUE_TRANSLATOR_DECL(, Type, ClassName) + +#define XN_DEFAULT_TRANSLATOR_NAME(ClassName) ClassName ## Translator + +#endif // _XN_DATA_TYPES_H_ |