Sirikata
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
Sirikata::Graphics::OgreRenderer Class Reference

Represents a SQLite database connection. More...

#include <OgreRenderer.hpp>

Inheritance diagram for Sirikata::Graphics::OgreRenderer:
Collaboration diagram for Sirikata::Graphics::OgreRenderer:

List of all members.

Public Types

typedef std::tr1::function
< void(Mesh::VisualPtr)> 
ParseMeshCallback

Public Member Functions

 OgreRenderer (Context *ctx, Network::IOStrandPtr sStrand)
virtual ~OgreRenderer ()
virtual bool initialize (const String &options, bool with_berkelium=true)
Contextcontext () const
void toggleSuspend ()
void suspend ()
void resume ()
void quit ()
void injectWindowResized (uint32 w, uint32 h)
const Vector3d & getOffset () const
virtual Transfer::TransferPoolPtr transferPool ()
ResourceDownloadPlannerdownloadPlanner ()
virtual Ogre::RenderTarget * createRenderTarget (const String &name, uint32 width, uint32 height, bool automipmap, int pixelFmt)
virtual Ogre::RenderTarget * createRenderTarget (String name, uint32 width=0, uint32 height=0)
virtual void destroyRenderTarget (Ogre::ResourcePtr &name)
virtual void destroyRenderTarget (const String &name)
Network::IOStrandPtr renderStrand ()
Ogre::SceneManager * getSceneManager ()
Ogre::SceneManager * getOverlaySceneManager ()
Ogre::RenderTarget * getRenderTarget ()
SDLInputManagergetInputManager ()
ResourceLoadergetResourceLoader () const
virtual void poll ()
 Override this method to specify the work to be done when polling.
virtual void stop ()
 Stop scheduling this service.
virtual boost::any invoke (std::vector< boost::any > &params)
virtual void windowResized (Ogre::RenderWindow *rw)
virtual void windowFocusChange (Ogre::RenderWindow *rw)
virtual float32 nearPlane ()
virtual float32 farPlane ()
virtual float32 parallaxSteps ()
virtual int32 parallaxShadowSteps ()
virtual void attachCamera (const String &renderTargetName, Camera *)
 adds the camera to the list of attached cameras, making it the primary camera if it is first to be added
virtual void detachCamera (Camera *)
 removes the camera from the list of attached cameras.
void addObject (Entity *ent, const Transfer::URI &mesh)
void removeObject (Entity *ent)
ParseMeshTaskHandle parseMesh (const Transfer::RemoteFileMetadata &metadata, const Transfer::Fingerprint &fp, Transfer::DenseDataPtr data, bool isAggregate, ParseMeshCallback cb)
 Tries to parse a mesh.
virtual Mesh::VisualPtr defaultMesh () const
 Get the default mesh to present if a model fails to load.
void screenshot (const String &filename)
void screenshotNextFrame (const String &filename)

Protected Types

typedef std::tr1::function
< boost::any(std::vector
< boost::any > &params)> 
InvokableHandler
typedef
std::tr1::unordered_map
< String, InvokableHandler
InvokableHandlerMap
typedef
std::tr1::unordered_map
< String, Entity * > 
SceneEntitiesMap
typedef
std::tr1::unordered_set
< Camera * > 
CameraSet

Protected Member Functions

bool loadBuiltinPlugins ()
void loadSystemLights ()
void constructSystemLight (const String &name, const Vector3f &direction, float brightness)
bool useModelLights () const
virtual bool renderOneFrame (Task::LocalTime, Duration frameTime)
virtual void preFrame (Task::LocalTime, Duration)
 all the things that should happen just before the frame
virtual void postFrame (Task::LocalTime, Duration)
 all the things that should happen once the frame finishes
void iStop (Liveness::Token rendererAlive)
void parseMeshWork (Liveness::Token rendererAlive, ParseMeshTaskHandle handle, const Transfer::RemoteFileMetadata &metadata, const Transfer::Fingerprint &fp, Transfer::DenseDataPtr data, bool isAggregate, ParseMeshCallback cb)
Mesh::VisualPtr parseMeshWorkSync (const Transfer::RemoteFileMetadata &metadata, const Transfer::Fingerprint &fp, Transfer::DenseDataPtr data, bool isAggregate)
boost::any setOnTick (std::vector< boost::any > &params)
boost::any maxObjects (std::vector< boost::any > &params)
boost::any objectPrioritization (std::vector< boost::any > &params)
boost::any rendererStats (std::vector< boost::any > &params)

Static Protected Member Functions

static Ogre::Root * getRoot ()

Protected Attributes

Network::IOStrandPtr simStrand
InvokableHandlerMap mInvokableHandlers
ContextmContext
bool mQuitRequested
bool mQuitRequestHandled
bool mSuspended
Network::IOServicemParsingIOService
Network::IOWorkmParsingWork
ThreadmParsingThread
SDLInputManagermInputManager
Ogre::SceneManager * mSceneManager
Ogre::SceneManager * mOverlaySceneManager
bool mOgreOwnedRenderWindow
Ogre::RenderTarget * mRenderTarget
Ogre::RenderWindow * mRenderWindow
OptionValuemWindowWidth
OptionValuemWindowHeight
OptionValuemWindowDepth
OptionValuemFullScreen
OptionValuemOgreRootDir
OptionValuemFrameDuration
 How many seconds we aim to spend in each frame.
OptionValuemParallaxSteps
OptionValuemParallaxShadowSteps
OptionValuemModelLights
OptionSetmOptions
std::vector< String > mSearchPaths
Vector4f mBackgroundColor
Vector3d mFloatingPointOffset
Task::LocalTime mLastFrameTime
InvokablemOnTickCallback
String mResourcesDir
TimeProfiler::StagemParserProfiler
ModelsSystemmModelParser
Mesh::FiltermModelFilter
Mesh::FiltermCenteringFilter
Transfer::TransferPoolPtr mTransferPool
ResourceLoadermResourceLoader
PriorityDownloadPlannermDownloadPlanner
SceneEntitiesMap mSceneEntities
std::list< Entity * > mMovingEntities
CameraSet mAttachedCameras
SkyboxPtr mSkybox
String mNextFrameScreenshotFile
bool initialized
bool stopped

Static Protected Attributes

static Ogre::Root * sRoot
static Ogre::Plugin * sCDNArchivePlugin = NULL
static CDNArchivePluginmCDNArchivePlugin = NULL
static std::list< OgreRenderer * > sActiveOgreScenes
static uint32 sNumOgreSystems = 0
static Ogre::RenderTarget * sRenderTarget = NULL

Friends

class Entity
class Camera

Detailed Description

Represents a SQLite database connection.


Member Typedef Documentation

typedef std::tr1::unordered_set<Camera*> Sirikata::Graphics::OgreRenderer::CameraSet [protected]
typedef std::tr1::function<boost::any(std::vector<boost::any>& params)> Sirikata::Graphics::OgreRenderer::InvokableHandler [protected]
typedef std::tr1::unordered_map<String, InvokableHandler> Sirikata::Graphics::OgreRenderer::InvokableHandlerMap [protected]
typedef std::tr1::unordered_map<String,Entity*> Sirikata::Graphics::OgreRenderer::SceneEntitiesMap [protected]

Constructor & Destructor Documentation

Sirikata::Graphics::OgreRenderer::OgreRenderer ( Context ctx,
Network::IOStrandPtr  sStrand 
)
Sirikata::Graphics::OgreRenderer::~OgreRenderer ( ) [virtual]

Member Function Documentation

void Sirikata::Graphics::OgreRenderer::addObject ( Entity ent,
const Transfer::URI mesh 
)
void Sirikata::Graphics::OgreRenderer::attachCamera ( const String &  renderTargetName,
Camera entity 
) [virtual]

adds the camera to the list of attached cameras, making it the primary camera if it is first to be added

Reimplemented in Sirikata::Graphics::OgreSystem.

References mAttachedCameras, mDownloadPlanner, and Sirikata::Graphics::ResourceDownloadPlanner::setCamera().

Referenced by Sirikata::Graphics::Camera::attach().

void Sirikata::Graphics::OgreRenderer::constructSystemLight ( const String &  name,
const Vector3f &  direction,
float  brightness 
) [protected]
Context* Sirikata::Graphics::OgreRenderer::context ( ) const [inline]
Ogre::RenderTarget * Sirikata::Graphics::OgreRenderer::createRenderTarget ( const String &  name,
uint32  width,
uint32  height,
bool  automipmap,
int  pixelFmt 
) [virtual]
Ogre::RenderTarget * Sirikata::Graphics::OgreRenderer::createRenderTarget ( String  name,
uint32  width = 0,
uint32  height = 0 
) [virtual]
virtual Mesh::VisualPtr Sirikata::Graphics::OgreRenderer::defaultMesh ( ) const [inline, virtual]

Get the default mesh to present if a model fails to load.

This may return an empty VisualPtr if no default mesh is specified.

Reimplemented in Sirikata::Graphics::OgreSystem.

Referenced by Sirikata::Graphics::PriorityDownloadPlanner::loadAsset().

void Sirikata::Graphics::OgreRenderer::destroyRenderTarget ( Ogre::ResourcePtr &  name) [virtual]
void Sirikata::Graphics::OgreRenderer::destroyRenderTarget ( const String &  name) [virtual]
void Sirikata::Graphics::OgreRenderer::detachCamera ( Camera entity) [virtual]

removes the camera from the list of attached cameras.

Reimplemented in Sirikata::Graphics::OgreSystem.

References mAttachedCameras.

Referenced by Sirikata::Graphics::Camera::detach().

ResourceDownloadPlanner * Sirikata::Graphics::OgreRenderer::downloadPlanner ( )
float32 Sirikata::Graphics::OgreRenderer::farPlane ( ) [virtual]
SDLInputManager* Sirikata::Graphics::OgreRenderer::getInputManager ( ) [inline]
const Vector3d& Sirikata::Graphics::OgreRenderer::getOffset ( ) const [inline]
Ogre::SceneManager* Sirikata::Graphics::OgreRenderer::getOverlaySceneManager ( ) [inline]
Ogre::RenderTarget* Sirikata::Graphics::OgreRenderer::getRenderTarget ( ) [inline]
ResourceLoader* Sirikata::Graphics::OgreRenderer::getResourceLoader ( ) const [inline]
Ogre::Root * Sirikata::Graphics::OgreRenderer::getRoot ( ) [static, protected]

Referenced by initialize().

Ogre::SceneManager* Sirikata::Graphics::OgreRenderer::getSceneManager ( ) [inline]
bool Sirikata::Graphics::OgreRenderer::initialize ( const String &  options,
bool  with_berkelium = true 
) [virtual]
void Sirikata::Graphics::OgreRenderer::injectWindowResized ( uint32  w,
uint32  h 
)
boost::any Sirikata::Graphics::OgreRenderer::invoke ( std::vector< boost::any > &  params) [virtual]
void Sirikata::Graphics::OgreRenderer::iStop ( Liveness::Token  rendererAlive) [protected]
bool Sirikata::Graphics::OgreRenderer::loadBuiltinPlugins ( ) [protected]
void Sirikata::Graphics::OgreRenderer::loadSystemLights ( ) [protected]

References constructSystemLight(), and useModelLights().

Referenced by initialize().

boost::any Sirikata::Graphics::OgreRenderer::maxObjects ( std::vector< boost::any > &  params) [protected]
float32 Sirikata::Graphics::OgreRenderer::nearPlane ( ) [virtual]
boost::any Sirikata::Graphics::OgreRenderer::objectPrioritization ( std::vector< boost::any > &  params) [protected]
int32 Sirikata::Graphics::OgreRenderer::parallaxShadowSteps ( ) [virtual]
float32 Sirikata::Graphics::OgreRenderer::parallaxSteps ( ) [virtual]
ParseMeshTaskHandle Sirikata::Graphics::OgreRenderer::parseMesh ( const Transfer::RemoteFileMetadata metadata,
const Transfer::Fingerprint fp,
Transfer::DenseDataPtr  data,
bool  isAggregate,
ParseMeshCallback  cb 
)

Tries to parse a mesh.

Can handle different types of meshes and tries to find the right parser using magic numbers. If it is unable to find the right parser, returns NULL. Otherwise, returns the parsed mesh as a Visual object.

Parameters:
metadataRemoteFileMetadata describing the remote resource
fpthe fingerprint of the data, used for unique naming and passed through to the resulting mesh data
datathe contents of the
cbcallback to invoke when parsing is complete
Returns:
A handle you can use to cancel the task. You aren't required to hold onto it if you don't need to be able to cancel the request.

References Sirikata::Liveness::livenessToken(), mParsingIOService, parseMeshWork(), and Sirikata::Network::IOService::post().

Referenced by Sirikata::AssetDownloadTask::assetFileDownloaded().

void Sirikata::Graphics::OgreRenderer::parseMeshWork ( Liveness::Token  rendererAlive,
ParseMeshTaskHandle  handle,
const Transfer::RemoteFileMetadata metadata,
const Transfer::Fingerprint fp,
Transfer::DenseDataPtr  data,
bool  isAggregate,
ParseMeshCallback  cb 
) [protected]
Mesh::VisualPtr Sirikata::Graphics::OgreRenderer::parseMeshWorkSync ( const Transfer::RemoteFileMetadata metadata,
const Transfer::Fingerprint fp,
Transfer::DenseDataPtr  data,
bool  isAggregate 
) [protected]
void Sirikata::Graphics::OgreRenderer::poll ( ) [virtual]
void Sirikata::Graphics::OgreRenderer::postFrame ( Task::LocalTime  current,
Duration  frameTime 
) [protected, virtual]

all the things that should happen once the frame finishes

Reimplemented in Sirikata::Graphics::OgreSystem.

Referenced by renderOneFrame().

void Sirikata::Graphics::OgreRenderer::preFrame ( Task::LocalTime  currentTime,
Duration  frameTime 
) [protected, virtual]
void Sirikata::Graphics::OgreRenderer::quit ( )
void Sirikata::Graphics::OgreRenderer::removeObject ( Entity ent)
boost::any Sirikata::Graphics::OgreRenderer::rendererStats ( std::vector< boost::any > &  params) [protected]
bool Sirikata::Graphics::OgreRenderer::renderOneFrame ( Task::LocalTime  curFrameTime,
Duration  frameTime 
) [protected, virtual]
Network::IOStrandPtr Sirikata::Graphics::OgreRenderer::renderStrand ( ) [inline]
void Sirikata::Graphics::OgreRenderer::resume ( )
void Sirikata::Graphics::OgreRenderer::screenshot ( const String &  filename)
void Sirikata::Graphics::OgreRenderer::screenshotNextFrame ( const String &  filename)
boost::any Sirikata::Graphics::OgreRenderer::setOnTick ( std::vector< boost::any > &  params) [protected]
void Sirikata::Graphics::OgreRenderer::stop ( ) [virtual]

Stop scheduling this service.

Note that this does not immediately stop the service, it simply guarantees the service will not be scheduled again. This allows outstanding events to be handled properly.

Reimplemented from Sirikata::TimeSteppedSimulation.

Reimplemented in Sirikata::Graphics::OgreSystem.

References iStop(), Sirikata::Liveness::livenessToken(), and simStrand.

Referenced by iStop().

void Sirikata::Graphics::OgreRenderer::suspend ( )
void Sirikata::Graphics::OgreRenderer::toggleSuspend ( )
Transfer::TransferPoolPtr Sirikata::Graphics::OgreRenderer::transferPool ( ) [virtual]
bool Sirikata::Graphics::OgreRenderer::useModelLights ( ) const [protected]
void Sirikata::Graphics::OgreRenderer::windowFocusChange ( Ogre::RenderWindow *  rw) [virtual]
void Sirikata::Graphics::OgreRenderer::windowResized ( Ogre::RenderWindow *  rw) [virtual]

Friends And Related Function Documentation

friend class Camera [friend]
friend class Entity [friend]

Member Data Documentation

Reimplemented in Sirikata::Graphics::OgreSystem.

Referenced by initialize(), iStop(), and poll().

Referenced by initialize().

How many seconds we aim to spend in each frame.

Referenced by initialize().

Referenced by poll(), and renderOneFrame().

Referenced by initialize(), and useModelLights().

Referenced by parseMeshWorkSync(), and ~OgreRenderer().

Referenced by initialize(), and loadBuiltinPlugins().

Referenced by preFrame(), and setOnTick().

Referenced by initialize(), and ~OgreRenderer().

Referenced by initialize().

Referenced by initialize().

Referenced by parseMeshWork().

Referenced by initialize(), and ~OgreRenderer().

Referenced by initialize(), and iStop().

Referenced by poll(), and quit().

Referenced by poll().

Ogre::RenderTarget* Sirikata::Graphics::OgreRenderer::mRenderTarget [protected]
Ogre::RenderWindow* Sirikata::Graphics::OgreRenderer::mRenderWindow [protected]
Ogre::SceneManager* Sirikata::Graphics::OgreRenderer::mSceneManager [protected]
std::vector<String> Sirikata::Graphics::OgreRenderer::mSearchPaths [protected]

Referenced by initialize().

Referenced by createRenderTarget(), and initialize().

Referenced by createRenderTarget(), and initialize().

Referenced by createRenderTarget(), and initialize().

Ogre::Plugin * Sirikata::Graphics::OgreRenderer::sCDNArchivePlugin = NULL [static, protected]

Referenced by ~OgreRenderer().

uint32 Sirikata::Graphics::OgreRenderer::sNumOgreSystems = 0 [static, protected]

Referenced by initialize(), and ~OgreRenderer().

Ogre::RenderTarget * Sirikata::Graphics::OgreRenderer::sRenderTarget = NULL [static, protected]
Ogre::Root * Sirikata::Graphics::OgreRenderer::sRoot [static, protected]

Referenced by initialize(), and ~OgreRenderer().


The documentation for this class was generated from the following files: