Simulant  21.12-1292
A portable game engine for Windows, OSX, Linux, Dreamcast, and PSP
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
smlt::Scene Class Referenceabstract
Inheritance diagram for smlt::Scene:
smlt::StageNode smlt::StageNodeManager smlt::StageNodeWatchController smlt::Loadable smlt::TransformListener smlt::TwoPhaseConstructed smlt::BoundableEntity smlt::Updateable smlt::Printable smlt::Nameable smlt::DestroyableObject smlt::generic::Identifiable< StageNodeID > smlt::scenes::Splash smlt::test::TestScene

Public Types

typedef std::shared_ptr< Sceneptr
 
- Public Types inherited from smlt::generic::Identifiable< StageNodeID >
typedef StageNodeID id_type
 

Public Member Functions

 Scene (Window *window)
 
void load ()
 
void unload ()
 
void activate ()
 
void deactivate ()
 
bool is_loaded () const
 
bool is_active () const
 
const std::string name () const
 
void set_name (const std::string &name)
 
bool unload_on_deactivate () const
 
void set_unload_on_deactivate (bool v)
 
template<typename T >
T * start_service ()
 
template<typename T >
bool stop_service ()
 
template<typename T >
T * find_service () const
 
const std::set< StageNode * > stray_nodes () const
 
 S_DEFINE_PROPERTY (window, &Scene::window_)
 
 S_DEFINE_PROPERTY (app, &Scene::app_)
 
 S_DEFINE_PROPERTY (input, &Scene::input_)
 
 S_DEFINE_PROPERTY (scenes, &Scene::scene_manager_)
 
 S_DEFINE_PROPERTY (compositor, &Scene::compositor_)
 
 S_DEFINE_PROPERTY (lighting, &Scene::lighting_)
 
 S_DEFINE_PROPERTY (assets, &Scene::assets_)
 
- Public Member Functions inherited from smlt::StageNode
std::vector< StageNode * > find_descendents_by_types (std::initializer_list< StageNodeType > type_list) const
 
StageNodefind_descendent_with_id (StageNodeID id)
 
const StageNodefind_descendent_with_id (StageNodeID id) const
 
bool is_root () const
 
StageNodePath node_path () const
 
StageNodefirst_sibling ()
 
const StageNodefirst_sibling () const
 
StageNodenext_sibling ()
 
const StageNodenext_sibling () const
 
StageNodeparent ()
 
const StageNodeparent () const
 
StageNodefirst_child ()
 
const StageNodefirst_child () const
 
StageNodelast_child ()
 
const StageNodelast_child () const
 
const StageNodechild_at (std::size_t i) const
 
std::size_t child_count () const
 
bool has_parent () const
 
void remove_from_parent ()
 
std::list< StageNode * > detach ()
 
void set_parent (StageNode *new_parent, TransformRetainMode transform_retain=TRANSFORM_RETAIN_MODE_LOSE)
 
template<typename T , typename... Args>
T * create_child (Args &&... args)
 
template<typename T >
T * create_child ()
 
template<typename T >
T * create_child (Params args)
 
void adopt_children (StageNode *node)
 
template<typename... Params>
void adopt_children (StageNode *node, Params... args)
 
template<typename T , typename... Args>
T * create_mixin (Args &&... args)
 
StageNodecreate_mixin (const std::string &node_name, const Params &params)
 
StageNodefind_mixin (const std::string &name) const
 
template<typename T >
T * find_mixin () const
 
std::size_t mixin_count () const
 
StageNodebase ()
 
const StageNodebase () const
 
bool is_mixin () const
 
bool generates_renderables_for_descendents () const
 
std::size_t generate_renderables (batcher::RenderQueue *render_queue, const Camera *, const Viewport *viewport, const DetailLevel detail_level, Light **lights, const std::size_t light_count)
 
void update (float dt) override final
 
void late_update (float dt) override final
 
void fixed_update (float step) override final
 
template<typename T >
size_t count_nodes_by_type (bool include_destroyed=false) const
 
bool is_part_of_active_pipeline () const
 
StageNodeload_tree (const Path &path, const TreeLoadOptions &opts=TreeLoadOptions())
 
AncestorIteratorPair each_ancestor ()
 
AncestorIteratorPair each_ancestor () const
 
DescendentIteratorPair each_descendent ()
 
DescendentIteratorPair each_descendent () const
 
SiblingIteratorPair each_sibling ()
 
SiblingIteratorPair each_sibling () const
 
ChildIteratorPair each_child ()
 
ChildIteratorPair each_child () const
 
std::string repr () const override
 
 StageNode (Scene *owner, StageNodeType node_type)
 
StageNodeType node_type () const
 
bool is_visible () const
 
bool is_intended_visible () const
 
void set_visible (bool visible)
 
smlt::Promise< void > destroy_after (const Seconds &seconds)
 
bool parent_is_scene () const
 
const AABB transformed_aabb () const override
 
ShadowCast shadow_cast () const
 
void set_shadow_cast (ShadowCast cast)
 
ShadowReceive shadow_receive () const
 
void set_shadow_receive (ShadowReceive receive)
 
StageNodefind_descendent_with_name (const std::string &name)
 
void set_cullable (bool v)
 
bool is_cullable () const
 
void set_precedence (int16_t precedence)
 
int16_t precedence () const
 
Transformget_transform () const
 
 S_DEFINE_PROPERTY (transform, &StageNode::get_transform)
 
- Public Member Functions inherited from smlt::generic::Identifiable< StageNodeID >
 Identifiable (StageNodeID id)
 
StageNodeID id () const
 
virtual bool operator== (const Identifiable< StageNodeID > &rhs) const
 
virtual bool operator< (const Identifiable< StageNodeID > &rhs) const
 
- Public Member Functions inherited from smlt::DestroyableObject
 DEFINE_SIGNAL (DestroyedSignal, signal_destroyed)
 
bool destroy ()
 
bool destroy_immediately ()
 
bool is_destroyed () const
 
- Public Member Functions inherited from smlt::Nameable
void set_name (const std::string &name)
 
const std::string & name () const
 
bool has_name () const
 
- Public Member Functions inherited from smlt::BoundableEntity
virtual const Vec3 center () const
 
- Public Member Functions inherited from smlt::Boundable
virtual float width () const
 
virtual float height () const
 
virtual float depth () const
 
virtual float half_width () const
 
virtual float half_height () const
 
virtual float half_depth () const
 
virtual float diameter () const
 
virtual float radius () const
 
- Public Member Functions inherited from smlt::TwoPhaseConstructed
bool init ()
 
void clean_up ()
 
- Public Member Functions inherited from smlt::StageNodeManager
 StageNodeManager (Scene *scene)
 
StageNodeget_node (StageNodeID id) const
 
bool has_node (StageNodeID id) const
 
StageNodecreate_node (StageNodeType type, const Params &params, StageNode *base)
 
StageNodecreate_node (const std::string &name, const Params &params, StageNode *base)
 
template<typename T , typename... Args>
T * _create_node (const WithBase &base, Args &&... args)
 
template<typename T , typename... Args>
T * _create_node (const WithBase &base, Params args)
 
template<typename T , typename... Args>
T * create_node (Args &&... args)
 
template<typename T >
T * create_node (Params args)
 
template<typename T >
T * create_node ()
 
bool register_stage_node (StageNodeType type, const char *name, std::size_t size_in_bytes, std::size_t alignment, StageNodeConstructFunction construct_func, StageNodeDestructFunction destruct_func)
 
optional< StageNodeTypeInforegistered_stage_node_info (const std::string &name)
 
template<typename T >
bool register_stage_node ()
 
- Public Member Functions inherited from smlt::StageNodeWatchController
StageNodeWatchConnection watch (StageNodePath path, WatchFunc func)
 

Protected Member Functions

virtual void on_load ()=0
 
virtual void on_unload ()
 
virtual void on_activate ()
 
virtual void on_deactivate ()
 
std::size_t load_arg_count () const
 
template<typename T >
get_load_arg (int i)
 
- Protected Member Functions inherited from smlt::StageNode
virtual bool on_destroy () override
 
virtual void on_update (float dt) override
 
virtual void on_late_update (float dt) override
 
void on_transformation_changed () override
 
void on_transformation_change_attempted () override
 
template<typename N >
bool clean_params (Params &params)
 
Sceneget_scene () const
 
void recalc_bounds_if_necessary () const
 
void mark_transformed_aabb_dirty ()
 
- Protected Member Functions inherited from smlt::StageNodeManager
bool clean_up_node (StageNode *node)
 

Friends

class SceneManager
 
class StageNode
 

Additional Inherited Members

- Public Attributes inherited from smlt::StageNode
Property< generic::DataCarrier StageNode::* > data
 
Property< Scene *StageNode::* > scene = {this, &StageNode::owner_}
 
- Protected Attributes inherited from smlt::StageNodeManager
Scenescene_
 

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