Orxonox  0.0.5 Codename: Arcturus
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
orxonox::Scene Class Reference

#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/orxonox/Scene.h>

Inheritance diagram for orxonox::Scene:
orxonox::BaseObject orxonox::Synchronisable orxonox::Tickable orxonox::Context orxonox::OrxonoxClass orxonox::OrxonoxInterface orxonox::OrxonoxInterface orxonox::Listable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Identifiable orxonox::Listable orxonox::Listable orxonox::Listable orxonox::Identifiable orxonox::Identifiable orxonox::Identifiable

Public Member Functions

 Scene (Context *context)
 This class holds a Scene which is a collection of all kinds of objects to be rendered in the same space, with the same physics and the same light properties. More...
 
virtual ~Scene ()
 
void addPhysicalObject (WorldEntity *object)
 
const ColourValue & getAmbientLight () const
 
const Vector3 & getGravity () const
 
const Vector3 & getNegativeWorldRange () const
 
const Vector3 & getPositiveWorldRange () const
 
RadargetRadar ()
 
RenderQueueListenergetRenderQueueListener () const
 
Ogre::SceneNode * getRootSceneNode () const
 
virtual uint32_t getSceneID () const override
 
Ogre::SceneManager * getSceneManager () const
 
bool getShadow () const
 
const std::string & getSkybox () const
 
float getSoundReferenceDistance () const
 
bool hasPhysics () const
 
bool isUpdatingPhysics () const
 
void registerVariables ()
 
void removePhysicalObject (WorldEntity *object)
 
void setAmbientLight (const ColourValue &colour)
 
void setDebugDrawPhysics (bool bDraw, bool bFill, float fillAlpha)
 
void setGravity (const Vector3 &gravity)
 
void setNegativeWorldRange (const Vector3 &range)
 
void setPhysicalWorld (bool wantsPhysics)
 
void setPositiveWorldRange (const Vector3 &range)
 
void setShadow (bool bShadow)
 
void setSkybox (const std::string &skybox)
 
void setSoundReferenceDistance (float distance)
 
virtual void tick (float dt) override
 Gets called every frame. More...
 
virtual void XMLPort (Element &xmlelement, XMLPort::Mode mode) override
 XML loading and saving. More...
 
- Public Member Functions inherited from orxonox::BaseObject
 BaseObject (Context *context)
 Constructor: Registers the object in the BaseObject-list. More...
 
virtual ~BaseObject ()
 Destructor. More...
 
void addEventListener (BaseObject *listener)
 Adds an object which listens to the events of this object. More...
 
void addEventSource (BaseObject *source, const std::string &state)
 Adds a new event source for a specific state. More...
 
void addTemplate (const std::string &name)
 Adds a Template to the object. More...
 
void addTemplate (Template *temp)
 Adds a Template to the object. More...
 
virtual void changedActivity ()
 This function gets called if the activity of the object changes. More...
 
virtual void changedMainStateName ()
 This function gets called if the main state name of the object changes. More...
 
virtual void changedName ()
 This function gets called if the name of the object changes. More...
 
virtual void changedVisibility ()
 This function gets called if the visibility of the object changes. More...
 
void fireEvent (const std::string &name="")
 Fires an event (without a state). More...
 
void fireEvent (bool activate, const std::string &name="")
 Fires an event which activates or deactivates a state. More...
 
void fireEvent (bool activate, BaseObject *originator, const std::string &name="")
 Fires an event which activates or deactivates a state with agiven originator (the object which triggered the event). More...
 
void fireEvent (Event &event)
 Fires an event, using the Event struct. More...
 
BaseObjectgetCreator () const
 
BaseObjectgetEventListener (unsigned int index) const
 Returns an event listener with a given index. More...
 
BaseObjectgetEventSource (unsigned int index, const std::string &state) const
 Returns an eventsource with a given index. More...
 
const XMLFilegetFile () const
 Returns a pointer to the XMLFile that loaded this object. More...
 
const std::string & getFilename () const
 Returns the levelfile that loaded this object. More...
 
GametypegetGametype () const
 
LevelgetLevel () const
 
const std::string & getLoaderIndentation () const
 Returns the indentation of the debug output in the Loader. More...
 
const std::string & getMainStateName () const
 Returns the name of the main state. More...
 
const std::string & getName () const
 Returns the name of the object. More...
 
NamespacegetNamespace () const
 
const std::string & getOldName () const
 Returns the old name of the object. More...
 
ScenegetScene () const
 
const std::set< Template * > & getTemplates () const
 Returns the set of all aplied templates. More...
 
const mboolisActive () const
 Returns the state of the objects activity. More...
 
bool isInitialized () const
 Returns if the object was initialized (passed the object registration). More...
 
const mboolisVisible () const
 Returns the state of the objects visibility. More...
 
virtual void processEvent (Event &event)
 Processing an event by calling the right main state. More...
 
void removeEventSource (BaseObject *source)
 Removes an eventsource (but doesn't unregister itself at the source). More...
 
void setActive (bool bActive)
 Sets the state of the objects activity. More...
 
void setCreator (BaseObject *creator)
 
void setFile (const XMLFile *file)
 Sets a pointer to the xml file that loaded this object. More...
 
void setGametype (const StrongOrWeakPtr< Gametype > &gametype)
 
void setLevel (const StrongOrWeakPtr< Level > &level)
 
void setLoaderIndentation (const std::string &indentation)
 Sets the indentation of the debug output in the Loader. More...
 
void setMainState (bool state)
 Sets the main state of the object to a given boolean value. More...
 
void setMainStateName (const std::string &name)
 Sets the name of the main state (used for event reactions). More...
 
void setName (const std::string &name)
 Sets the name of the object. More...
 
void setNamespace (const StrongOrWeakPtr< Namespace > &ns)
 
void setScene (const StrongOrWeakPtr< Scene > &scene, uint32_t sceneID)
 
void setVisible (bool bVisible)
 Sets the state of the objects visibility. More...
 
virtual void XMLEventPort (Element &xmlelement, XMLPort::Mode mode)
 Defines the possible event states of this object and parses eventsources from an XML file. More...
 
- Public Member Functions inherited from orxonox::OrxonoxClass
 OrxonoxClass ()
 
OrxonoxClassoperator= (const OrxonoxClass &)=default
 
- Public Member Functions inherited from orxonox::Configurable
 Configurable ()
 
void setConfigValues ()
 Function to collect the SetConfigValue-macro calls. More...
 
- Public Member Functions inherited from orxonox::Listable
 Listable ()
 Constructor: Allocates space in the element list. More...
 
 Listable (Context *context)
 Constructor: Allocates space in the element list and assigns the context. More...
 
virtual ~Listable ()
 Destructor: Removes the object from the object-lists. More...
 
ContextgetContext () const
 
void setContext (Context *context)
 Changes the context. More...
 
void unregisterObject ()
 Removes this object from the object-lists. More...
 
- Public Member Functions inherited from orxonox::Identifiable
 Identifiable ()
 Constructor: Sets the default values. More...
 
virtual ~Identifiable ()
 
ORX_FORCEINLINE voidgetDerivedPointer (unsigned int classID)
 Returns a valid pointer of any derived type that is registered in the class hierarchy. More...
 
template<class T >
ORX_FORCEINLINE T * getDerivedPointer (unsigned int classID)
 Version of getDerivedPointer with template. More...
 
template<class T >
ORX_FORCEINLINE const T * getDerivedPointer (unsigned int classID) const
 Const version of getDerivedPointer with template. More...
 
IdentifiergetIdentifier () const
 Returns the Identifier of the object. More...
 
bool isA (const Identifier *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
template<class B >
bool isA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isA (const Identifiable *object)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isChildOf (const Identifier *identifier)
 Returns true if the object's class is a child of the given type. More...
 
template<class B >
bool isChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a child of the given type. More...
 
bool isChildOf (const Identifiable *object)
 Returns true if the object's class is a child of the given type. More...
 
bool isDirectChildOf (const Identifier *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
template<class B >
bool isDirectChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectChildOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectParentOf (const Identifier *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
template<class B >
bool isDirectParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
bool isDirectParentOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isExactlyA (const Identifier *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
template<class B >
bool isExactlyA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
bool isExactlyA (const Identifiable *object)
 Returns true if the object's class is exactly of the given type. More...
 
bool isParentOf (const Identifier *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
template<class B >
bool isParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
bool isParentOf (const Identifiable *object)
 Returns true if the object's class is a parent of the given type. More...
 
- Public Member Functions inherited from orxonox::Destroyable
 Destroyable ()
 Constructor: Sets the default values. More...
 
virtual ~Destroyable ()
 Destructor: Notifies all DestructionListener (for example weak pointers) that this object is being deleted. More...
 
void destroy ()
 Deletes the object if no strong pointers point to this object. More...
 
void destroyLater ()
 Works like destroy() but doesn't destroy the object until the current tick has ended. More...
 
unsigned int getReferenceCount () const
 Returns the number of strong pointers that point to this object. More...
 
- Public Member Functions inherited from orxonox::Synchronisable
virtual ~Synchronisable ()
 Destructor: Delete all callback objects and remove objectID_ from the objectMap_. More...
 
uint32_t getClassID () const
 
unsigned int getContextID () const
 
uint32_t getNrOfVariables ()
 
uint32_t getObjectID () const
 
unsigned int getPriority () const
 
uint8_t getSyncMode () const
 
uint32_t getVarSize (VariableID ID)
 
template<>
_NetworkExport void registerVariable (std::string &variable, uint8_t mode, NetworkCallbackBase *cb, bool bidirectional)
 
template<>
void registerVariable (std::string &variable, uint8_t mode, NetworkCallbackBase *cb, bool bidirectional)
 
void setSyncMode (uint8_t mode)
 This function sets the synchronisation mode of the object If set to 0x0 variables will not be synchronised at all If set to 0x1 variables will only be synchronised to the client If set to 0x2 variables will only be synchronised to the server If set to 0x3 variables will be synchronised bidirectionally (only if set so in registerVar) More...
 
template<>
_NetworkExport void unregisterVariable (std::string &variable)
 
template<>
void unregisterVariable (std::string &variable)
 
- Public Member Functions inherited from orxonox::OrxonoxInterface
 OrxonoxInterface ()
 
- Public Member Functions inherited from orxonox::Context
 Context (Context *context)
 
virtual ~Context ()
 
template<class T >
void addObject (T *object)
 
void destroyObjectList (const Identifier *identifier)
 
ObjectListBasegetObjectList (const Identifier *identifier)
 
template<class T >
ObjectListBasegetObjectList ()
 
ContextgetParentContext () const
 

Static Public Member Functions

static void consoleCommand_debugDrawPhysics (bool bDraw, bool bFill, float fillAlpha)
 
- Static Public Member Functions inherited from orxonox::BaseObject
static void loadAllEventStates (Element &xmlelement, XMLPort::Mode mode, BaseObject *object, Identifier *identifier)
 Manually loads all event states, even if the class doesn't officially support them. More...
 
- Static Public Member Functions inherited from orxonox::Synchronisable
static bool deleteObject (uint32_t objectID_)
 Finds and deletes the Synchronisable with the appropriate objectID_. More...
 
static Synchronisablefabricate (uint8_t *&mem, uint8_t mode=0x0)
 This function fabricated a new synchrnisable (and children of it), sets calls updateData and create After calling this function the mem pointer will be increased by the size of the needed data. More...
 
static unsigned int getNumberOfDeletedObject ()
 
static SynchronisablegetSynchronisable (uint32_t objectID_)
 This function looks up the objectID_ in the objectMap_ and returns a pointer to the right Synchronisable. More...
 
static uint32_t popDeletedObject ()
 
static void setClient (bool b)
 This function sets the internal mode for synchronisation. More...
 
- Static Public Member Functions inherited from orxonox::Context
static void destroyRootContext ()
 
static ContextgetRootContext ()
 
static void setRootContext (Context *context)
 

Private Member Functions

void addObject (BaseObject *object)
 
BaseObjectgetObject (unsigned int index) const
 
void networkcallback_applyAmbientLight ()
 
void networkcallback_applyShadows ()
 
void networkcallback_applySkybox ()
 
void networkcallback_gravity ()
 
void networkcallback_hasPhysics ()
 
void networkcallback_negativeWorldRange ()
 
void networkcallback_positiveWorldRange ()
 

Static Private Member Functions

static bool collisionCallback (btManifoldPoint &cp, const btCollisionObject *colObj0, int partId0, int index0, const btCollisionObject *colObj1, int partId1, int index1)
 

Private Attributes

ColourValue ambientLight_
 This variable holds the color value for the ambient light in our scene, usually black in space. More...
 
bool bDebugDrawPhysics_
 
bool bHasPhysics_
 
bool bIsUpdatingPhysics_
 
bt32BitAxisSweep3 * broadphase_
 
bool bShadows_
 Do we want shadows in our scene? More...
 
btDefaultCollisionConfiguration * collisionConfig_
 
BulletDebugDrawerdebugDrawer_
 
btCollisionDispatcher * dispatcher_
 
WeakPtr< GlobalShaderglowShader_
 
Vector3 gravity_
 
Vector3 negativeWorldRange_
 
std::list< BaseObject * > objects_
 This list holds all the objects created in our scene. More...
 
std::set< WorldEntity * > physicalObjectQueue_
 
std::set< WorldEntity * > physicalObjects_
 
btDiscreteDynamicsWorld * physicalWorld_
 
Vector3 positiveWorldRange_
 
Radarradar_
 This is a pointer to a Radar object assigned with this scene. More...
 
RenderQueueListenerrenderQueueListener_
 this is a pointer to the RenderQueueListener we're using for this Scene More...
 
Ogre::SceneNode * rootSceneNode_
 This is a pointer to the root node of the Scene tree. More...
 
Ogre::SceneManager * sceneManager_
 This is a pointer to the Ogre SceneManager we're using to render the Scene. More...
 
std::string skybox_
 This string holds information about the skybox we're using. More...
 
btSequentialImpulseConstraintSolver * solver_
 
float soundReferenceDistance_
 This holds a reference distance, which represents the distance between our scene and the listener. More...
 

Additional Inherited Members

- Protected Member Functions inherited from orxonox::BaseObject
void addEventState (const std::string &name, EventState *container)
 Adds a new event-state to the object. More...
 
EventStategetEventState (const std::string &name) const
 Returns the event-state with the given name. More...
 
- Protected Member Functions inherited from orxonox::Destroyable
virtual void preDestroy ()
 This virtual function is called if destroy() is called and no StrongPtr points to this object. More...
 
- Protected Member Functions inherited from orxonox::Synchronisable
 Synchronisable (Context *context)
 Constructor: Initializes all Variables and sets the right objectID_. More...
 
uint32_t findContextID (Context *context)
 Returns the id of the context. More...
 
template<class T >
void registerVariable (T &variable, uint8_t mode=0x1, NetworkCallbackBase *cb=nullptr, bool bidirectional=false)
 
template<class T >
void registerVariable (std::set< T > &variable, uint8_t mode=0x1, NetworkCallbackBase *cb=nullptr, bool bidirectional=false)
 
void setPriority (unsigned int freq)
 
template<class T >
void unregisterVariable (T &var)
 
- Protected Member Functions inherited from orxonox::Tickable
 Tickable ()
 Constructor: Registers the object in the Tickable-list. More...
 
- Protected Attributes inherited from orxonox::BaseObject
mbool bActive_
 True = the object is active. More...
 
mbool bVisible_
 True = the object is visible. More...
 
FunctorPtr mainStateFunctor_
 
std::string mainStateName_
 
std::string name_
 The name of the object. More...
 
std::set< std::string > networkTemplateNames_
 
std::string oldName_
 The old name of the object. More...
 

Constructor & Destructor Documentation

orxonox::Scene::Scene ( Context context)

This class holds a Scene which is a collection of all kinds of objects to be rendered in the same space, with the same physics and the same light properties.

Objects can be anything from a light source, over non physical objects like Billboards to just plain Models with an attached Mesh

orxonox::Scene::~Scene ( )
virtual

Member Function Documentation

void orxonox::Scene::addObject ( BaseObject object)
private
void orxonox::Scene::addPhysicalObject ( WorldEntity object)
bool orxonox::Scene::collisionCallback ( btManifoldPoint &  cp,
const btCollisionObject *  colObj0,
int  partId0,
int  index0,
const btCollisionObject *  colObj1,
int  partId1,
int  index1 
)
staticprivate
void orxonox::Scene::consoleCommand_debugDrawPhysics ( bool  bDraw,
bool  bFill,
float  fillAlpha 
)
static
const ColourValue& orxonox::Scene::getAmbientLight ( ) const
inline
const Vector3& orxonox::Scene::getGravity ( ) const
inline
const Vector3& orxonox::Scene::getNegativeWorldRange ( ) const
inline
BaseObject * orxonox::Scene::getObject ( unsigned int  index) const
private
const Vector3& orxonox::Scene::getPositiveWorldRange ( ) const
inline
Radar* orxonox::Scene::getRadar ( )
inline
RenderQueueListener* orxonox::Scene::getRenderQueueListener ( ) const
inline
Ogre::SceneNode* orxonox::Scene::getRootSceneNode ( ) const
inline
virtual uint32_t orxonox::Scene::getSceneID ( ) const
inlineoverridevirtual

Reimplemented from orxonox::BaseObject.

Ogre::SceneManager* orxonox::Scene::getSceneManager ( ) const
inline
bool orxonox::Scene::getShadow ( ) const
inline
const std::string& orxonox::Scene::getSkybox ( ) const
inline
float orxonox::Scene::getSoundReferenceDistance ( ) const
inline
bool orxonox::Scene::hasPhysics ( ) const
inline
bool orxonox::Scene::isUpdatingPhysics ( ) const
inline
void orxonox::Scene::networkcallback_applyAmbientLight ( )
inlineprivate
void orxonox::Scene::networkcallback_applyShadows ( )
inlineprivate
void orxonox::Scene::networkcallback_applySkybox ( )
inlineprivate
void orxonox::Scene::networkcallback_gravity ( )
inlineprivate
void orxonox::Scene::networkcallback_hasPhysics ( )
inlineprivate
void orxonox::Scene::networkcallback_negativeWorldRange ( )
inlineprivate
void orxonox::Scene::networkcallback_positiveWorldRange ( )
inlineprivate
void orxonox::Scene::registerVariables ( void  )
void orxonox::Scene::removePhysicalObject ( WorldEntity object)
void orxonox::Scene::setAmbientLight ( const ColourValue &  colour)
void orxonox::Scene::setDebugDrawPhysics ( bool  bDraw,
bool  bFill,
float  fillAlpha 
)
void orxonox::Scene::setGravity ( const Vector3 &  gravity)
void orxonox::Scene::setNegativeWorldRange ( const Vector3 &  range)
void orxonox::Scene::setPhysicalWorld ( bool  wantsPhysics)
void orxonox::Scene::setPositiveWorldRange ( const Vector3 &  range)
void orxonox::Scene::setShadow ( bool  bShadow)
void orxonox::Scene::setSkybox ( const std::string &  skybox)
void orxonox::Scene::setSoundReferenceDistance ( float  distance)
inline
void orxonox::Scene::tick ( float  dt)
overridevirtual

Gets called every frame.

Parameters
dtThe time since the last frame in seconds

Reimplemented from orxonox::Tickable.

void orxonox::Scene::XMLPort ( Element &  xmlelement,
XMLPort::Mode  mode 
)
overridevirtual

XML loading and saving.

Parameters
xmlelementThe XML-element
modeThe mode defines the operation that is being executed: loading or saving the object (from or to XML respectively)

Reimplemented from orxonox::BaseObject.

Member Data Documentation

ColourValue orxonox::Scene::ambientLight_
private

This variable holds the color value for the ambient light in our scene, usually black in space.

bool orxonox::Scene::bDebugDrawPhysics_
private
bool orxonox::Scene::bHasPhysics_
private
bool orxonox::Scene::bIsUpdatingPhysics_
private
bt32BitAxisSweep3* orxonox::Scene::broadphase_
private
bool orxonox::Scene::bShadows_
private

Do we want shadows in our scene?

btDefaultCollisionConfiguration* orxonox::Scene::collisionConfig_
private
BulletDebugDrawer* orxonox::Scene::debugDrawer_
private
btCollisionDispatcher* orxonox::Scene::dispatcher_
private
WeakPtr<GlobalShader> orxonox::Scene::glowShader_
private
Vector3 orxonox::Scene::gravity_
private
Vector3 orxonox::Scene::negativeWorldRange_
private
std::list<BaseObject*> orxonox::Scene::objects_
private

This list holds all the objects created in our scene.

std::set<WorldEntity*> orxonox::Scene::physicalObjectQueue_
private
std::set<WorldEntity*> orxonox::Scene::physicalObjects_
private
btDiscreteDynamicsWorld* orxonox::Scene::physicalWorld_
private
Vector3 orxonox::Scene::positiveWorldRange_
private
Radar* orxonox::Scene::radar_
private

This is a pointer to a Radar object assigned with this scene.

RenderQueueListener* orxonox::Scene::renderQueueListener_
private

this is a pointer to the RenderQueueListener we're using for this Scene

Ogre::SceneNode* orxonox::Scene::rootSceneNode_
private

This is a pointer to the root node of the Scene tree.

Ogre::SceneManager* orxonox::Scene::sceneManager_
private

This is a pointer to the Ogre SceneManager we're using to render the Scene.

std::string orxonox::Scene::skybox_
private

This string holds information about the skybox we're using.

btSequentialImpulseConstraintSolver* orxonox::Scene::solver_
private
float orxonox::Scene::soundReferenceDistance_
private

This holds a reference distance, which represents the distance between our scene and the listener.


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