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