GA::kit v0.3
G&A's in-house C++ application framework
Loading...
Searching...
No Matches
ga::Scene Class Reference

Scene is a view controller. More...

#include <scene.h>

Inheritance diagram for ga::Scene:

Public Member Functions

virtual ~Scene ()
 
virtual void setup ()
 
virtual void update ()
 
virtual void draw ()
 
template<CLASS_INHERITS(NodeT, ga::Node) >
std::shared_ptr< NodeT > addNode (std::shared_ptr< NodeT > child=nullptr)
 
std::shared_ptr< ga::NodeaddNode ()
 
bool removeNode (std::shared_ptr< Node > node)
 
void clearNodes ()
 
bool hasNode (std::shared_ptr< Node > node)
 
std::shared_ptr< NodegetRootNode ()
 
std::vector< std::shared_ptr< Node > > getNodes ()
 
void forEachNode (std::function< void(std::shared_ptr< Node >)> fn)
 
void setName (const std::string &name)
 
const std::string & getName ()
 
virtual void handleMouseEvent (MouseEvent &mouseEvent)
 
virtual void handleTouchEvent (TouchEvent &touchEvent)
 
virtual void handleKeyEvent (KeyEvent &keyEvent)
 

Static Public Member Functions

template<CLASS_INHERITS(SceneT, ga::Scene) >
static std::shared_ptr< SceneT > create ()
 
static std::shared_ptr< Scenecreate ()
 

Public Attributes

Signal< KeyEvent & > onKeyEvent
 
Signal< MouseEvent & > onMouseEvent
 
Signal< TouchEvent & > onTouchEvent
 

Protected Member Functions

 Scene ()
 
void updateNodes ()
 
void drawNodes ()
 
size_t nextDrawIndex (std::shared_ptr< Node > node)
 
void forceAssignDrawIndices ()
 

Protected Attributes

std::string m_name
 
std::shared_ptr< Nodem_rootNode
 
ga::TimeoutManager m_timeoutManager
 
std::vector< std::weak_ptr< Node > > m_drawnNodes
 

Friends

void Node::setScene (std::shared_ptr< Scene > scene)
 
void Node::drawTree ()
 
size_t Node::getSceneDrawIndex () const
 

Detailed Description

Scene is a view controller.

  • contains a single root node, which holds the scene's node / view hierarchy.
    • handles UI events (mouse, touch, etc.)

Constructor & Destructor Documentation

◆ ~Scene()

ga::Scene::~Scene ( )
virtual

◆ Scene()

ga::Scene::Scene ( )
protected

Member Function Documentation

◆ addNode() [1/2]

std::shared_ptr< ga::Node > ga::Scene::addNode ( )

◆ addNode() [2/2]

template<CLASS_INHERITS(NodeT, ga::Node) >
std::shared_ptr< NodeT > ga::Scene::addNode ( std::shared_ptr< NodeT >  child = nullptr)

◆ clearNodes()

void ga::Scene::clearNodes ( )

◆ create() [1/2]

template<CLASS_INHERITS(SceneT, ga::Scene) >
static std::shared_ptr< SceneT > ga::Scene::create ( )
static

◆ create() [2/2]

std::shared_ptr< SceneT > ga::Scene::create ( )
inlinestatic

◆ draw()

void ga::Scene::draw ( )
virtual

◆ drawNodes()

void ga::Scene::drawNodes ( )
protected

◆ forceAssignDrawIndices()

void ga::Scene::forceAssignDrawIndices ( )
protected

◆ forEachNode()

void ga::Scene::forEachNode ( std::function< void(std::shared_ptr< Node >)>  fn)

◆ getName()

const std::string & ga::Scene::getName ( )

◆ getNodes()

std::vector< std::shared_ptr< Node > > ga::Scene::getNodes ( )

◆ getRootNode()

std::shared_ptr< Node > ga::Scene::getRootNode ( )

◆ handleKeyEvent()

void ga::Scene::handleKeyEvent ( KeyEvent keyEvent)
virtual

◆ handleMouseEvent()

void ga::Scene::handleMouseEvent ( MouseEvent mouseEvent)
virtual

◆ handleTouchEvent()

void ga::Scene::handleTouchEvent ( TouchEvent touchEvent)
virtual

◆ hasNode()

bool ga::Scene::hasNode ( std::shared_ptr< Node node)

◆ nextDrawIndex()

size_t ga::Scene::nextDrawIndex ( std::shared_ptr< Node node)
protected

◆ removeNode()

bool ga::Scene::removeNode ( std::shared_ptr< Node node)

◆ setName()

void ga::Scene::setName ( const std::string &  name)

◆ setup()

void ga::Scene::setup ( )
virtual

◆ update()

void ga::Scene::update ( )
virtual

◆ updateNodes()

void ga::Scene::updateNodes ( )
protected

Friends And Related Function Documentation

◆ Node::drawTree

void Node::drawTree ( )
friend

◆ Node::getSceneDrawIndex

size_t Node::getSceneDrawIndex ( ) const
friend

◆ Node::setScene

void Node::setScene ( std::shared_ptr< Scene scene)
friend

Member Data Documentation

◆ m_drawnNodes

std::vector<std::weak_ptr<Node> > ga::Scene::m_drawnNodes
protected

◆ m_name

std::string ga::Scene::m_name
protected

◆ m_rootNode

std::shared_ptr<Node> ga::Scene::m_rootNode
protected

◆ m_timeoutManager

ga::TimeoutManager ga::Scene::m_timeoutManager
protected

◆ onKeyEvent

Signal<KeyEvent&> ga::Scene::onKeyEvent

◆ onMouseEvent

Signal<MouseEvent&> ga::Scene::onMouseEvent

◆ onTouchEvent

Signal<TouchEvent&> ga::Scene::onTouchEvent

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