# OgreOctreeNode.h

Go to the documentation of this file.

    00001 /*
    00002 -----------------------------------------------------------------------------
    00003 This source file is part of OGRE
    00004 (Object-oriented Graphics Rendering Engine)
    00005 For the latest info, see http://www.ogre3d.org/
    00006
    00007 Copyright (c) 2000-2005 The OGRE Team
    00008 Also see acknowledgements in Readme.html
    00009
    00010 This program is free software; you can redistribute it and/or modify it under
    00011 the terms of the GNU Lesser General Public License as published by the Free Software
    00012 Foundation; either version 2 of the License, or (at your option) any later
    00013 version.
    00014
    00015 This program is distributed in the hope that it will be useful, but WITHOUT
    00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    00018
    00019 You should have received a copy of the GNU Lesser General Public License along with
    00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
    00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
    00022 http://www.gnu.org/copyleft/lesser.txt.
    00023 -----------------------------------------------------------------------------
    00024 */
    00025 /***************************************************************************
    00026 octreenode.h  -  description
    00027 -------------------
    00028 begin                : Fri Sep 27 2002
    00029 copyright            : (C) 2002 by Jon Anderson
    00030 email                : janders@users.sf.net
    00031
    00032 Enhancements 2003 - 2004 (C) The OGRE Team
    00033 ***************************************************************************/
    00034
    00035 #ifndef OCTREENODE_H
    00036 #define OCTREENODE_H
    00037
    00038 #include <OgreSceneNode.h>
    00039
    00040 #include <OgreOctreeSceneManager.h>
    00041
    00042 namespace Ogre
    00043 {
    00044
    00050 class OctreeNode : public SceneNode
    00051 {
    00052 public:
    00054     OctreeNode( SceneManager* creator );
    00056     OctreeNode( SceneManager* creator, const String& name );
    00058     ~OctreeNode();
    00059
    00061     Node * removeChild( unsigned short index );
    00062
    00064     Node * removeChild( const String & name );
    00065
    00067     Node * removeChild( Node* child);
    00068
    00071     Octree * getOctant()
    00072     {
    00073         return mOctant;
    00074     };
    00075
    00078     void setOctant( Octree *o )
    00079     {
    00080         mOctant = o;
    00081     };
    00082
    00085     bool _isIn( AxisAlignedBox &box );
    00086
    00089     virtual void _addToRenderQueue( Camera* cam, RenderQueue * q, bool onlyShadowCasters );
    00090
    00095     virtual void getRenderOperation( RenderOperation& op );
    00096
    00101     AxisAlignedBox & _getLocalAABB()
    00102     {
    00103         return mLocalAABB;
    00104     };
    00105
    00106
    00107
    00108
    00109 protected:
    00110
    00117     void _updateBounds( void );
    00118
    00119     void _removeNodeAndChildren( );
    00120
    00122     AxisAlignedBox mLocalAABB;
    00123
    00125     Octree *mOctant;
    00126
    00128     Real mCorners[ 24 ];
    00130     static unsigned long mColors[ 8 ];
    00132     static unsigned short mIndexes[ 24 ];
    00133
    00134
    00135 };
    00136
    00137 }
    00138
    00139
    00140 #endif

Copyright © 2000-2005 by The OGRE Team
Last modified Sun Nov 20 12:36:03 2005