2 * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef _NODEVALUEACCESS_H
20 #define _NODEVALUEACCESS_H
25 This is a helper Class to get access to SubModels or triangles when analyzing the BSP-Tree.
28 template<class TNode
, class TValue
> class NodeValueAccess
31 TNode
const* iNodeArray
;
32 TValue
const* iValueArray
;
35 inline NodeValueAccess() : iNodeArray(NULL
), iValueArray(NULL
) {}
37 inline NodeValueAccess(TNode
const* pNodeArray
, TValue
const* pValueArray
) : iNodeArray(pNodeArray
), iValueArray(pValueArray
) {}
38 inline TNode
const* getNodePtr() const { return(iNodeArray
); }
39 inline TValue
const* getValuePtr() const { return(iValueArray
); }
41 inline TNode
const& getNode(unsigned int pPos
) const { return(iNodeArray
[pPos
]); }
42 inline void setNode(const TNode
& pNode
, unsigned int pPos
) { iNodeArray
[pPos
] = pNode
; }
44 inline TValue
const& getValue(unsigned int pPos
) const { return(iValueArray
[pPos
]); }
45 inline void setValue(const TValue
& pValue
, unsigned int pPos
) { iValueArray
[pPos
] = pValue
; }