Wartbed:Framework

From Dark Omen Wiki

(Difference between revisions)
Jump to: navigation, search
(Namespaces)
Line 6: Line 6:
==Namespaces==
==Namespaces==
-
<tt>
+
<tt style="white-space:pre;">
-
:'''wb''' { <span style="color:green">main WARTBED namespace</span> }
+
:'''wb''' <span style="color:green">// main WARTBED namespace</span>
:{
:{
-
:''WARTBED-common namespaces''
+
:<span style="color:purple;">''WARTBED-common namespaces''</span>
-
::'''ogre'''    { <span style="color:green">all things OGRE are encapsulated here</span> }
+
-
::'''input'''  { <span style="color:green">all input-related aspects are collected here</span> }
+
::'''camera'''  { <span style="color:green">enums for controlling a WARTBED Camera object</span> }
::'''camera'''  { <span style="color:green">enums for controlling a WARTBED Camera object</span> }
::'''gui'''    { <span style="color:green">all things CEGUI and GUI are encapsulated here</span> }
::'''gui'''    { <span style="color:green">all things CEGUI and GUI are encapsulated here</span> }
 +
::'''input'''  { <span style="color:green">all input-related aspects are collected here</span> }
 +
::'''mvc'''    { <span style="color:green">contains the base classes for the Model-View-Controller architecture</span> }
 +
::'''ogre'''    { <span style="color:green">all things OGRE are encapsulated here</span> }
 +
::'''order'''  { <span style="color:green">the order queue and all specific order classes are contained here</span> }
:
:
-
:''Modules''
+
:<span style="color:purple;">''Modules''</span>
::'''darkomen''' { <span style="color:green">Code specific to handle Warhammer: Dark Omen</span> }
::'''darkomen''' { <span style="color:green">Code specific to handle Warhammer: Dark Omen</span> }
:}
:}

Revision as of 16:39, 20 January 2010

Stub page the may be updated as I go along. Does not in anyway represent the current state of the WARTBED code base.

Reference for WARTBED development framework

Namespaces

wb // main WARTBED namespace
{
WARTBED-common namespaces
camera { enums for controlling a WARTBED Camera object }
gui { all things CEGUI and GUI are encapsulated here }
input { all input-related aspects are collected here }
mvc { contains the base classes for the Model-View-Controller architecture }
ogre { all things OGRE are encapsulated here }
order { the order queue and all specific order classes are contained here }
Modules
darkomen { Code specific to handle Warhammer: Dark Omen }
}

Input Listeners

OGRE and WARTBED uses listener objects to capture and respond to user input. The raw input is then promulgated to event managers and/or the GUI system for handling. Gererally, WARTBED creates the appropriate or sufficient listener objects by default, replacing the old:

  • When OGRE is initialised through ogre::BootSystem() basic inert listeners are created. These are unresponsive and cause no events.
  • When CEGUI is initialised through ogre::InitialiseCEGUI() wb::gui::KeyListener and wb::gui::MouseListener objects are created. These objects forward raw input into the GUI system.
  • When the Wartbed object is created (first time Wartbed::getInstance() is called) basic wb::KeyListener and wb::MouseListener (which are aliases for wb::input::KeyListener and wb::input::MouseListener) are created. These listeners cause WARTBED input events but are unconcerned with the GUI.
  • When the GUI is initialised through Wartbed::initialiseGUI() (when the Wartbed::GUI singleton is first created) default listeners inheriting from both input::*Listener and gui::*Listener are created.

If further specialisation is required appropriate classes must be defined by the client application.

Classes

namespace ::
Symbol #include Description
Wartbed Wartbed.h Framework initialisation object. When created will boot OGRE and initialise all basic facilities.


namespace wb
Symbol #include Description
Camera wb_Kernel.h Versatile camera abstraction that is designed for automate movement, focusing, swiveling, circling and orbiting operations.
Personal tools
communication