Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OgreOctreeCamera.h

Go to the documentation of this file.
00001 /***************************************************************************
00002 octreecamera.h  -  description
00003 -------------------
00004 begin                : Fri Sep 27 2002
00005 copyright            : (C) 2002 by Jon Anderson
00006 email                : janders@users.sf.net
00007 ***************************************************************************/
00008 
00009 /***************************************************************************
00010 *                                                                         *
00011 *   This program is free software; you can redistribute it and/or modify  *
00012 *   it under the terms of the GNU Lesser General Public License as        *
00013 *   published by the Free Software Foundation; either version 2 of the    * 
00014 *   License, or (at your option) any later version.                       *
00015 *                                                                         *
00016 ***************************************************************************/
00017 
00018 #ifndef OCTREECAMERA_H
00019 #define OCTREECAMERA_H
00020 
00021 #include <OgreCamera.h>
00022 #include <OgreRenderOperation.h>
00023 
00028 namespace Ogre
00029 {
00030 
00031 class Octree;
00032 
00033 
00042 class OctreeCamera : public Camera
00043 {
00044 public:
00045 
00047     enum Visibility
00048     {
00049         NONE,
00050         PARTIAL,
00051         FULL
00052     };
00053 
00054     /* Standard Constructor */
00055     OctreeCamera( String name, SceneManager* sm );
00056     /* Standard destructor */
00057     ~OctreeCamera();
00058 
00061     OctreeCamera::Visibility getVisibility( const AxisAlignedBox &bound );
00062 
00065     virtual void getRenderOperation( RenderOperation& rend );
00066 
00067 protected:
00070     void _getCorner( Real *r, FrustumPlane p1, FrustumPlane p2, FrustumPlane p3 );
00071 
00072     Real mCorners[ 24 ];
00074     static unsigned short mIndexes[ 24 ];
00076     static unsigned long mColors[ 8 ];
00077 };
00078 
00079 }
00080 
00081 #endif

Copyright © 2002 by The OGRE Team