40 #ifndef _graphicsscenemanager_h
41 #define _graphicsscenemanager_h
43 #include "quaternion.h"
45 #include "colourvalue.h"
46 #include "singleton.h"
48 #include "uidgenerator.h"
49 #include "worldmanager.h"
50 #include "worldmanagerfactory.h"
52 #include "Graphics/graphicsenumerations.h"
69 class RenderableProxy;
70 class BillboardSetProxy;
74 class ParticleSystemProxy;
76 class SceneManagerData;
104 SST_Stencil_Modulative = 1,
105 SST_Stencil_Additive = 2,
106 SST_Texture_Modulative = 11,
107 SST_Texture_Additive = 12,
108 SST_Texture_Additive_Integrated = 13,
109 SST_Texture_Modulative_Integrated = 14
121 friend class TrackingNodeUpdateWorkUnit;
160 void SetShadowTextureCount(
const Whole& Count);
163 Whole GetShadowTextureCount()
const;
167 void SetShadowTextureSize(
unsigned short Size);
170 unsigned short GetShadowTextureSize()
const;
173 void SetShadowFarDistance(
const Real& FarDist);
176 Real GetShadowFarDistance()
const;
179 void SetShadowColour(
const ColourValue& ShadowColour);
207 Boole DrawFirst=
true,
Real Bow=0,
int XSegments=1,
int YSegments=1);
211 void DisableSkyPlane();
228 void DisableSkyBox();
250 void DisableSkyDome();
343 UInt32 GetNumProxies()
const;
348 void DestroyAllProxies();
353 ProxyIterator BeginRenderableProxy();
356 ProxyIterator EndRenderableProxy();
359 ConstProxyIterator BeginRenderableProxy()
const;
362 ConstProxyIterator EndRenderableProxy()
const;
375 void SetAmbientLight(
Real Red=1.0,
Real Green=1.0,
Real Blue=1.0,
Real Alpha=1.0);
378 void SetAmbientLight(
const ColourValue &LightColor);
392 void PauseAllParticles(
Boole Pause);
395 virtual void Pause(
const UInt32 PL);
398 virtual void Initialize();
400 virtual void Deinitialize();
408 virtual String GetImplementationTypeName()
const;
416 Ogre::SceneManager* _GetGraphicsWorldPointer()
const;
436 String GetManagerImplName()
const;
std::ostream & operator<<(std::ostream &stream, const Mezzanine::LinearInterpolator< T > &Lint)
Used to Serialize an Mezzanine::LinearInterpolator to a human readable stream.
LightType
This is used by LightProxies to describe how light is emitted from the proxy source.
SceneShadowTechnique
needs to be documented
SceneManagerData * SMD
Pointer to a class storing sensative internal data for the scene.
bool Boole
Generally acts a single bit, true or false.
This class contains utilities and functions to allow the manipulation of the Graphical scene...
ManagerType
A listing of Manager Types.
This class is used to check and modify the properties of a graphics mesh.
UIDGenerator ProxyIDGen
Generator responsible for creating unique IDs for CollidableProxy instances.
This is the base proxy class for world proxies wrapping functionality of the graphics subsystem...
This is the proxy class for placing and manipulating a mesh in the scene.
This is a simple class for holding 4 reals representing the colour any give object or lightsource can...
static const ManagerBase::ManagerType InterfaceType
A ManagerType enum value used to describe the type of interface/functionality this manager provides...
This is used to represent a flat infinite slice of the game world.
This is the proxy class for placing and manipulating a set of 2D billboards in the scene...
float Real
A Datatype used to represent a real floating point number.
ProxyContainer Proxies
Container storing all of the RenderableProxy instances created by this manager.
A thread specific collection of double-buffered and algorithm specific resources. ...
static const String ImplementationName
A String containing the name of this manager implementation.
This class will generate keep track of a pool of unique 32-bit ID's that can be used for distinct obj...
A light-weight handle for manipulating nodes in DOM tree.
const String ConstString
A Datatype used to a series of imutable characters.
ProxyType
Used by all World proxies to describe what their derived types are.
uint32_t UInt32
An 32-bit unsigned integer.
Stores internal data for the SCeneManager to keep it from cluttering the Header file.
std::list< NameValuePair > NameValuePairList
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
This is the base class for all managers that belong to a single world instance.
This is the proxy class for placing and manipulating a camera in the scene.
A factory responsible for the creation and destruction of the default scenemanager.
This is the proxy class for placing and manipulating particles in the scene.
Threading::DefaultThreadSpecificStorage::Type * ThreadResources
Can be used for thread safe logging and other thread specific resources.
The bulk of the engine components go in this namspace.
This is the proxy class for placing and manipulating lighting in the scene.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
std::istream & operator>>(std::istream &stream, Mezzanine::LinearInterpolator< T > &Lint)
Used to de-serialize an Mezzanine::LinearInterpolator from a stream.
This class represents a world for objects to interact within.
This is a base class for factories that construct managers used by the World class.
This is used to store information about rotation in 3d space.
std::vector< RenderableProxy * > ProxyContainer
Basic container type for RenderableProxy storage by this class.
SkyMethod
Used to help identify which method is used to draw the sky, if any.
ProxyContainer::iterator ProxyIterator
Iterator type for RenderableProxy instances stored by this class.
ProxyContainer::const_iterator ConstProxyIterator
Const Iterator type for RenderableProxy instances stored by this class.
This class represents all the rendering passes a rendered object has.
std::string String
A datatype used to a series of characters.
This file has the definition of the workunit.