Rumba C++ SDK
maquina::Scene Class Reference

A mutable scene node value. More...

#include <Scene.h>

Inheritance diagram for maquina::Scene:
maquina::SceneConst maquina::Value

Classes

class  Traversal
 A scene iterator. More...
 

Public Member Functions

 Scene (const StringView &name="", const gsl::span< SceneConst > &children=gsl::span< SceneConst >())
 
void set_name (const char *)
 Set the node name. More...
 
void set_matrix (const Imath::M44d &)
 Set the node transform. More...
 
void set_shown (bool shown)
 Set the shown state of this node. More...
 
void set_selected (bool selected)
 Set the selected state of this node. More...
 
void set_reset_matrix (bool reset)
 Set the reset matrix state of this node. If true, this Scene node resets its world matrix (does not inherit the parent matrix). More...
 
void set_geometry (const Shape &geometry)
 Set the node geometry. More...
 
void remove_geometry ()
 Remove the node geometry. More...
 
void set_attribute (const StringView &attribute, const Value &value)
 Set an attribute. More...
 
void remove_attribute (const StringView &attribute)
 Removes an attribute. More...
 
void merge (const SceneConst &other, const std::function< void(Scene &a, const SceneConst &b)> &func)
 
Scene add_child (const std::string &path)
 Create and return a child scene node. More...
 
void add_child (const SceneConst &child)
 Adds the given child scene node as a child. More...
 
void remove_child (const std::string &name)
 Removes the child scene node with the given name. More...
 
void clear_children ()
 Removes all the children. More...
 
void prune_empty_nodes ()
 
Traversal write_children (bool children_only=false, bool shapes_only=false)
 Get the scene traversal. More...
 
- Public Member Functions inherited from maquina::SceneConst
 SceneConst ()
 
 SceneConst (const Value &v)
 
const std::string & name () const
 Returns the node name. More...
 
const Imath::M44dmatrix () const
 Returns the node transform. More...
 
bool is_shown () const
 Returns true if this Scene node is shown. More...
 
bool is_selected () const
 Returns true if this Scene node is selected. More...
 
bool reset_matrix () const
 Returns true if this Scene node reset its world matrix (does not inherit the parent matrix). More...
 
bool has_geometry () const
 Returns true if this node has a geometry. More...
 
const Shape geometry () const
 Get the node geometry. More...
 
Imath::Box3d bounding_box () const
 Compute the bounding box of the scene and all its children. More...
 
bool has_attribute (const StringView &attribute) const
 Returns true if this node has the attribute defined on the node. More...
 
const Value attribute (const StringView &attribute) const
 Return an attribute. More...
 
Attributes read_attributes () const
 Return a read-only attribute iteration. More...
 
std::shared_ptr< SceneConstchild (const std::string &path, Imath::M44d *world_matrix=nullptr) const
 Return a child scene node. More...
 
std::pair< SceneConst, bool > filter (const std::function< std::pair< SceneConst, bool >(const SceneConst &scene, const StringView &path, const Imath::M44d *parent_world)> &filter_func, const StringView &root_path="", const Imath::M44d *root_world=nullptr) const
 Filtering (or smart duplication) of a Scene. More...
 
Traversal read_children (bool children_only=false, bool shapes_only=false) const
 Get the scene traversal. More...
 
- Public Member Functions inherited from maquina::Value
 Value ()
 
Value duplicate () const
 Duplicate the value. More...
 
bool as_bool () const
 Returns the value as a bool. More...
 
int as_int () const
 Returns the value as an integer. More...
 
float as_float () const
 Returns the value as a float. More...
 
double as_double () const
 Returns the value as a double. More...
 
const std::string & as_string () const
 Returns the value as a string. More...
 
std::wstring as_wstring () const
 Returns the value as a wstring. More...
 
Imath::V2f as_V2f () const
 Returns the value as a V2f. More...
 
Imath::V3f as_V3f () const
 Returns the value as a V3f. More...
 
Imath::V4f as_V4f () const
 Returns the value as a V4f. More...
 
const Imath::V2das_V2d () const
 Returns the value as a V2d. More...
 
const Imath::V3das_V3d () const
 Returns the value as a V3d. More...
 
const Imath::V4das_V4d () const
 Returns the value as a V4d. More...
 
const Imath::V2ias_V2i () const
 Returns the value as a V2i. More...
 
const Imath::V3ias_V3i () const
 Returns the value as a V3i. More...
 
const Imath::V4ias_V4i () const
 Returns the value as a V4i. More...
 
Imath::M44f as_M44f () const
 Returns the value as a M44f. More...
 
const Imath::M44das_M44d () const
 Returns the value as a M44d. More...
 
const Imath::Box3fas_Box3f () const
 Returns the value as a Box3f. More...
 
const Imath::Color4fas_Color4f () const
 Returns the value as a Color4f. More...
 
Imath::Quatf as_Quatf () const
 Returns the value as a Quatf. More...
 
const Imath::Quatdas_Quatd () const
 Returns the value as a Quatd. More...
 
std::shared_ptr< const UserDataas_user_data () const
 Returns the value as a user data. More...
 
StringView type_name () const
 Return the type name of the Value. More...
 
bool has_node_delegate () const
 Check if this value can produces a NodeDelegate. More...
 
std::shared_ptr< NodeDelegatenode_delegate (const std::shared_ptr< NodeDelegate > &parent, const StringView &name) const
 
bool operator== (const Value &o) const
 Compare the two values. More...
 
bool operator!= (const Value &o) const
 
bool is_instance (const char *value_type_name) const
 Check if this type derives from another value type. More...
 
bool is_interpolable () const
 Checks if the value is interpolable. More...
 
Value lerp (const Value &other, double weight) const
 Performs linear interpolation between this value and another value. More...
 
 Value (bool)
 Create a boolean value. More...
 
 Value (int)
 Create an integer value. More...
 
 Value (float)
 Create a float value. More...
 
 Value (double)
 Create a double value. More...
 
 Value (const char *string)
 Create a string value. More...
 
 Value (const wchar_t *string)
 Create a string value. More...
 
 Value (const std::string &string)
 Create a string value. More...
 
 Value (const std::wstring &string)
 Create a wide string value. More...
 
 Value (const Imath::V2f &)
 Create a Imath::V2f value. More...
 
 Value (const Imath::V3f &)
 Create a Imath::V3f value. More...
 
 Value (const Imath::V4f &)
 Create a Imath::V4f value. More...
 
 Value (const Imath::V2d &)
 Create a Imath::V2d value. More...
 
 Value (const Imath::V3d &)
 Create a Imath::V3d value. More...
 
 Value (const Imath::V4d &)
 Create a Imath::V4d value. More...
 
 Value (const Imath::V2i &)
 Create a Imath::V2i value. More...
 
 Value (const Imath::V3i &)
 Create a Imath::V3i value. More...
 
 Value (const Imath::V4i &)
 Create a Imath::V4i value. More...
 
 Value (const Imath::Color4f &)
 Create a Imath::Color4f value. More...
 
 Value (const Imath::M44f &)
 Create a Imath::M44f value. More...
 
 Value (const Imath::M44d &)
 Create a Imath::M44d value. More...
 
 Value (const Imath::Box3f &)
 Create a Imath::Box3f value. More...
 
 Value (const Imath::Quatf &)
 Create a Imath::Quatf value. More...
 
 Value (const Imath::Quatd &)
 Create a Imath::Quatd value. More...
 
 Value (const std::shared_ptr< const UserData > &user_data)
 Create a user data value. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from maquina::Value
static bool validate_type_name (const char *type_name)
 Return true if the name is a valid type name. More...
 
static Value get_default_value (const char *type_name)
 Return a default value for a given type. More...
 
- Static Public Attributes inherited from maquina::SceneConst
static const SceneConst default_value
 The default value. More...
 
- Static Public Attributes inherited from maquina::Value
static const Value default_value
 The default value. More...
 

Detailed Description

A mutable scene node value.

See also
SceneConst for details.

Constructor & Destructor Documentation

◆ Scene()

maquina::Scene::Scene ( const StringView name = "",
const gsl::span< SceneConst > &  children = gsl::span< SceneConst >() 
)

Member Function Documentation

◆ add_child() [1/2]

Scene maquina::Scene::add_child ( const std::string &  path)

Create and return a child scene node.

The child is directly returned if it already exists.

Parameters
pathThe child path from this node, like "child0/child1/child2"

◆ add_child() [2/2]

void maquina::Scene::add_child ( const SceneConst child)

Adds the given child scene node as a child.

◆ clear_children()

void maquina::Scene::clear_children ( )

Removes all the children.

◆ merge()

void maquina::Scene::merge ( const SceneConst other,
const std::function< void(Scene &a, const SceneConst &b)> &  func 
)

◆ prune_empty_nodes()

void maquina::Scene::prune_empty_nodes ( )

Empty means with no geometry, no attribute and an identity matrix

◆ remove_attribute()

void maquina::Scene::remove_attribute ( const StringView attribute)

Removes an attribute.

◆ remove_child()

void maquina::Scene::remove_child ( const std::string &  name)

Removes the child scene node with the given name.

◆ remove_geometry()

void maquina::Scene::remove_geometry ( )

Remove the node geometry.

◆ set_attribute()

void maquina::Scene::set_attribute ( const StringView attribute,
const Value value 
)

Set an attribute.

If the attribute already exists, it is overriden.

◆ set_geometry()

void maquina::Scene::set_geometry ( const Shape geometry)

Set the node geometry.

◆ set_matrix()

void maquina::Scene::set_matrix ( const Imath::M44d )

Set the node transform.

◆ set_name()

void maquina::Scene::set_name ( const char *  )

Set the node name.

◆ set_reset_matrix()

void maquina::Scene::set_reset_matrix ( bool  reset)

Set the reset matrix state of this node. If true, this Scene node resets its world matrix (does not inherit the parent matrix).

◆ set_selected()

void maquina::Scene::set_selected ( bool  selected)

Set the selected state of this node.

◆ set_shown()

void maquina::Scene::set_shown ( bool  shown)

Set the shown state of this node.

◆ write_children()

Traversal maquina::Scene::write_children ( bool  children_only = false,
bool  shapes_only = false 
)

Get the scene traversal.


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