Simulant  21.12-574
A portable game engine for Windows, OSX, Linux, Dreamcast, and PSP
Public Member Functions | Public Attributes | Friends | List of all members
smlt::Stage Class Reference
Inheritance diagram for smlt::Stage:
smlt::TypedDestroyableObject< Stage, StageManager > smlt::ContainerNode smlt::generic::Identifiable< StageID > smlt::Loadable smlt::ChainNameable< Stage > smlt::RefCounted< Stage > smlt::DestroyableObject smlt::StageNode smlt::Nameable smlt::TwoPhaseConstructed smlt::TwoPhaseConstructed smlt::HasAutoID< StageNode > smlt::Organism smlt::BoundableEntity smlt::Updateable smlt::Transformable smlt::Printable smlt::Nameable smlt::TreeNode smlt::DestroyableObject

Public Member Functions

 Stage (StageManager *parent, StageNodePool *node_pool, AvailablePartitioner partitioner)
ActorPtr new_actor ()
ActorPtr new_actor_with_name (const std::string &name)
ActorPtr new_actor_with_mesh (MeshID mid)
ActorPtr new_actor_with_name_and_mesh (const std::string &name, MeshID mid)
ActorPtr new_actor_with_parent (ActorID parent)
ActorPtr new_actor_with_parent_and_mesh (ActorID parent, MeshID mid)
ActorPtr new_actor_with_parent_and_mesh (SpriteID parent, MeshID mid)
ActorPtr actor (ActorID e)
ActorPtr actor (ActorID e) const
bool has_actor (ActorID e) const
void destroy_actor (ActorID e)
std::size_t actor_count () const
MeshInstancerPtr new_mesh_instancer (MeshID mid)
 Creates a new MeshInstancer from a mesh and returns it. More...
bool destroy_mesh_instancer (MeshInstancerID mid)
 Destroys a MeshInstancer by its ID. More...
MeshInstancerPtr mesh_instancer (MeshInstancerID mid)
 Returns the MeshInstancerPtr associated with the ID. More...
std::size_t mesh_instancer_count () const
 Returns the number of MeshInstancers in the stage. More...
bool has_mesh_instancer (MeshInstancerID mid) const
 Checks to see if this MeshInstancer exists. More...
CameraPtr new_camera ()
CameraPtr new_camera_with_orthographic_projection (double left=0, double right=0, double bottom=0, double top=0, double near=-1.0, double far=1.0)
CameraPtr new_camera_for_ui ()
CameraPtr new_camera_for_viewport (const Viewport &vp)
CameraPtr camera (CameraID c)
void destroy_camera (CameraID cid)
uint32_t camera_count () const
bool has_camera (CameraID id) const
void destroy_all_cameras ()
GeomPtr new_geom_with_mesh (MeshID mid, const GeomCullerOptions &culler_options=GeomCullerOptions())
GeomPtr new_geom_with_mesh_at_position (MeshID mid, const Vec3 &position, const Quaternion &rotation=Quaternion(), const Vec3 &scale=Vec3(1, 1, 1), const GeomCullerOptions &culler_options=GeomCullerOptions())
GeomPtr geom (const GeomID gid) const
bool has_geom (GeomID geom_id) const
void destroy_geom (GeomID geom_id)
std::size_t geom_count () const
ParticleSystemPtr new_particle_system (ParticleScriptID particle_script)
ParticleSystemPtr new_particle_system_with_parent (ParticleScriptID particle_script, ActorID parent)
ParticleSystemPtr particle_system (ParticleSystemID pid)
bool has_particle_system (ParticleSystemID pid) const
void destroy_particle_system (ParticleSystemID pid)
std::size_t particle_system_count () const
LightPtr new_light_as_directional (const Vec3 &direction=Vec3(1, -0.5, 0), const smlt::Colour &colour=DEFAULT_LIGHT_COLOUR)
LightPtr new_light_as_point (const Vec3 &position=Vec3(), const smlt::Colour &colour=DEFAULT_LIGHT_COLOUR)
LightPtr light (LightID light)
void destroy_light (LightID light_id)
std::size_t light_count () const
smlt::Colour ambient_light () const
void set_ambient_light (const smlt::Colour &c)
void move (float x, float y, float z)
bool init () override
void clean_up () override
void update (float dt) override
const AABBaabb () const override
const AABB transformed_aabb () const override
Debugenable_debug (bool v=true)
void destroy_object (Actor *object)
void destroy_object (Light *object)
void destroy_object (Camera *object)
void destroy_object (Geom *object)
void destroy_object (ParticleSystem *object)
void destroy_object (MeshInstancer *object)
void destroy_object_immediately (Actor *object)
void destroy_object_immediately (Light *object)
void destroy_object_immediately (Camera *object)
void destroy_object_immediately (Geom *object)
void destroy_object_immediately (ParticleSystem *object)
void destroy_object_immediately (MeshInstancer *object)
bool is_part_of_active_pipeline () const
- Public Member Functions inherited from smlt::TypedDestroyableObject< Stage, StageManager >
 TypedDestroyableObject (StageManager *owner)
bool destroy () override
bool destroy_immediately () override
- Public Member Functions inherited from smlt::DestroyableObject
 DEFINE_SIGNAL (DestroyedSignal, signal_destroyed)
bool is_destroyed () const
- Public Member Functions inherited from smlt::ContainerNode
 ContainerNode (Stage *stage, StageNodeType node_type)
void _get_renderables (batcher::RenderQueue *, const CameraPtr, const DetailLevel) override
- Public Member Functions inherited from smlt::StageNode
AncestorIteratorPair each_ancestor ()
DescendentIteratorPair each_descendent ()
SiblingIteratorPair each_sibling ()
ChildIteratorPair each_child ()
std::string repr () const override
 StageNode (Stage *stage, StageNodeType node_type)
StageNodeType node_type () const
void link_position (StageNode *other)
void move_to_absolute (const Vec3 &position)
void move_to_absolute (float x, float y, float z)
void rotate_to_absolute (const Quaternion &rotation)
void rotate_to_absolute (const Degrees &degrees, float x, float y, float z)
Vec3 absolute_position () const
Quaternion absolute_rotation () const
Vec3 absolute_scaling () const
Mat4 absolute_transformation () const
bool is_visible () const
bool is_intended_visible () const
void set_visible (bool visible)
template<typename T >
void set_parent (const UniqueID< T > &id)
void set_parent (TreeNode *node)
smlt::Promise< void > destroy_after (const Seconds &seconds)
void late_update (float dt) override
void fixed_update (float step) override
bool parent_is_stage () const
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
UniqueIDKey key () const
- Public Member Functions inherited from smlt::TreeNode
void set_parent (TreeNode *node)
void add_child (TreeNode *node)
void remove_from_parent ()
bool is_root () const
bool is_leaf () const
TreeNodeparent () const
uint32_t child_count () const
TreeNodefirst_child () const
TreeNodenext_node () const
TreeNodeprevious_node () const
TreeNodechild_at (std::size_t i) 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::Transformable
smlt::Vec3 position () const
smlt::Vec2 position_2d () const
smlt::Quaternion rotation () const
smlt::Vec3 scale () const
virtual void move_to (const smlt::Vec3 &pos)
virtual void move_to (const smlt::Vec2 &pos)
virtual void move_to (float x, float y, float z)
virtual void move_to (float x, float y)
virtual void move_by (const smlt::Vec3 &pos)
virtual void move_by (const smlt::Vec2 &pos)
virtual void move_by (float x, float y, float z)
virtual void move_by (float x, float y)
virtual void move_forward_by (float amount)
virtual void move_right_by (float amount)
virtual void move_up_by (float amount)
virtual void rotate_to (const smlt::Degrees &angle, float axis_x, float axis_y, float axis_z)
virtual void rotate_to (const smlt::Degrees &angle, const smlt::Vec3 &axis)
virtual void rotate_to (const smlt::Quaternion &rotation)
virtual void rotate_x_by (const smlt::Degrees &angle)
virtual void rotate_y_by (const smlt::Degrees &angle)
virtual void rotate_z_by (const smlt::Degrees &angle)
virtual void rotate_by (const smlt::Degrees &angle_x, const smlt::Degrees &angle_y, const smlt::Degrees &angle_z)
virtual void rotate_by (const smlt::Vec3 &angles)
virtual void scale_x_by (const float scale)
virtual void scale_y_by (const float scale)
virtual void scale_z_by (const float scale)
virtual void scale_by (float x)
virtual void scale_by (const Vec3 &x)
virtual void scale_to (const float x, const float y, const float z)
virtual void rotate_around (const smlt::Vec3 &axis, const smlt::Degrees &degrees)
void rotate_global_x_by (const smlt::Degrees &degrees)
void rotate_global_y_by (const smlt::Degrees &degrees)
void rotate_global_z_by (const smlt::Degrees &degrees)
virtual void look_at (const smlt::Vec3 &target, const Vec3 &up=Vec3::POSITIVE_Y)
virtual void look_at (float x, float y, float z, const Vec3 &up=Vec3::POSITIVE_Y)
Vec3 right () const
Vec3 up () const
Vec3 forward () const
void constrain_to_aabb (const AABB &region)
bool is_constrained () const
void remove_constraint ()
- Public Member Functions inherited from smlt::Updateable
virtual void _update_thunk (float dt)
virtual void _late_update_thunk (float dt)
virtual void _fixed_update_thunk (float step)
- Public Member Functions inherited from smlt::BoundableEntity
virtual const Vec3 centre () 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::Organism
template<typename T >
bool has_behaviour () const
template<typename T >
T * behaviour () const
template<typename T >
T * new_behaviour ()
template<typename T , typename ... Params>
T * new_behaviour (Params &&... params)
void fixed_update_behaviours (float step)
void update_behaviours (float dt)
void late_update_behaviours (float dt)
- Public Member Functions inherited from smlt::HasAutoID< StageNode >
uint64_t auto_id () const
- Public Member Functions inherited from smlt::generic::Identifiable< StageID >
 Identifiable (StageID id)
StageID id () const
virtual bool operator== (const Identifiable< StageID > &rhs) const
virtual bool operator< (const Identifiable< StageID > &rhs) const
void _bind_id_pointer (ResourceTypePtr ptr)
void _overwrite_id (StageID new_id)
- Public Member Functions inherited from smlt::ChainNameable< Stage >
Stageset_name_and_get (const std::string &name)

Public Attributes

Property< decltype(&Stage::debug_)> debug = {this, &Stage::debug_}
Property< decltype(&Stage::partitioner_)> partitioner = {this, &Stage::partitioner_}
Property< decltype(&Stage::asset_manager_)> assets = {this, &Stage::asset_manager_}
Property< decltype(&Stage::data_)> data = {this, &Stage::data_}
Property< decltype(&Stage::ui_)> ui = {this, &Stage::ui_}
Property< decltype(&Stage::sky_manager_)> skies = {this, &Stage::sky_manager_}
Property< decltype(&Stage::sprite_manager_)> sprites = {this, &Stage::sprite_manager_}
- Public Attributes inherited from smlt::TypedDestroyableObject< Stage, StageManager >
friend Owner
- Public Attributes inherited from smlt::StageNode
Property< generic::DataCarrier StageNode::* > data = { this, &StageNode::data_ }
Property< Stage *StageNode::* > stage = { this, &StageNode::stage_ }


class ui::UIManager
class Pipeline
class StageManager

Additional Inherited Members

- Public Types inherited from smlt::generic::Identifiable< StageID >
typedef StageID id_type
- Public Types inherited from smlt::RefCounted< Stage >
typedef std::shared_ptr< Stageptr
typedef std::weak_ptr< Stagewptr
- Static Public Member Functions inherited from smlt::RefCounted< Stage >
static RefCounted< Stage >::ptr create (Args &&... args)
static RefCounted< Stage >::ptr create ()
- Protected Member Functions inherited from smlt::StageNode
Stageget_stage () const
void on_transformation_changed () override
void on_parent_set (TreeNode *oldp, TreeNode *newp) override
virtual void update_transformation_from_parent ()
void recalc_bounds_if_necessary () const
void mark_transformed_aabb_dirty ()
void mark_absolute_transformation_dirty ()
- Protected Member Functions inherited from smlt::TreeNode
TreeNodedetach ()
TreeNodelast_child () const
- Protected Member Functions inherited from smlt::Transformable
void set_position (const Vec3 &p)
void set_rotation (const Quaternion &q)
void set_scaling (const Vec3 &s)
virtual void on_transformation_change_attempted ()
- Protected Member Functions inherited from smlt::RefCounted< Stage >
 RefCounted (Args &&...)
- Protected Attributes inherited from smlt::DestroyableObject
bool destroyed_ = false
- Protected Attributes inherited from smlt::TreeNode
TreeNoderoot_ = nullptr
TreeNodeparent_ = nullptr
TreeNodefirst_child_ = nullptr
TreeNodeprev_ = this
TreeNodenext_ = this
- Protected Attributes inherited from smlt::Transformable
Vec3 position_
Quaternion rotation_
Vec3 scaling_ = Vec3(1, 1, 1)
std::unique_ptr< AABBconstraint_

Member Function Documentation

◆ destroy_mesh_instancer()

bool smlt::Stage::destroy_mesh_instancer ( MeshInstancerID  mid)

Destroys a MeshInstancer by its ID.

TheID of the MeshInstancer to destroy.
true on success, false if the MeshInstancerID was invalid.

◆ has_mesh_instancer()

bool smlt::Stage::has_mesh_instancer ( MeshInstancerID  mid) const

Checks to see if this MeshInstancer exists.

true if it exists, false otherwise

◆ mesh_instancer()

MeshInstancerPtr smlt::Stage::mesh_instancer ( MeshInstancerID  mid)

Returns the MeshInstancerPtr associated with the ID.

mid- the id of the MeshInstancer to retrieve
a valid MeshInstancerPtr if the ID was valid, or null

◆ mesh_instancer_count()

std::size_t smlt::Stage::mesh_instancer_count ( ) const

Returns the number of MeshInstancers in the stage.

the number of MeshInstancers in the stage

◆ new_mesh_instancer()

MeshInstancerPtr smlt::Stage::new_mesh_instancer ( MeshID  mid)

Creates a new MeshInstancer from a mesh and returns it.

midThe ID of the mesh this instancer will be able to spawn
a pointer to the new mesh instancer, or a null pointer on failure

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