00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.0 Alpha * 00004 * Copyright (C) 2010 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * OpenNI is free software: you can redistribute it and/or modify * 00009 * it under the terms of the GNU Lesser General Public License as published * 00010 * by the Free Software Foundation, either version 3 of the License, or * 00011 * (at your option) any later version. * 00012 * * 00013 * OpenNI is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00016 * GNU Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public License * 00019 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * 00020 * * 00021 *****************************************************************************/ 00022 00023 00024 00025 00026 #ifndef _XN_NODE_H_ 00027 #define _XN_NODE_H_ 00028 00029 //--------------------------------------------------------------------------- 00030 // Includes 00031 //--------------------------------------------------------------------------- 00032 #include <XnDataTypes.h> 00033 #include <XnBaseNode.h> 00034 00035 //--------------------------------------------------------------------------- 00036 // Types 00037 //--------------------------------------------------------------------------- 00041 class XnNode : protected XnBaseNode 00042 { 00043 public: 00044 static XnNode *Allocate() { return (XnNode*)xnAllocateBaseNode(); } 00045 static void Deallocate(XnNode *pNode) { xnDeallocateBaseNode((XnBaseNode*)pNode); } 00046 00050 XnNode() { m_pNext = NULL; m_pPrevious = NULL; m_Data = NULL; } 00051 00055 XnNode*& Next() {return (XnNode*&)m_pNext;} 00059 const XnNode* const Next() const {return (const XnNode*)m_pNext;} 00060 00064 XnNode*& Previous() {return (XnNode*&)m_pPrevious;} 00068 const XnNode* const Previous() const {return (const XnNode*)m_pPrevious;} 00069 00073 XnValue& Data() {return m_Data;} 00077 const XnValue& Data() const {return m_Data;} 00078 }; 00079 00080 #endif // _XN_NODE_H_