SCENE C++ API  2.1.0
Public Member Functions | List of all members
LSObject Class Reference

Information container which can be used to build up a hierarchical tree structure of container elements. More...

#include <lsobject.h>

+ Inheritance diagram for LSObject:

Public Member Functions

Eigen::Matrix4d getTransformationToGlobal () const
 Calculates the transformation matrix which transforms local object coordinates to global coordinates. More...
 
void select ()
 Selects this object. More...
 
LSIterator< ref_ptr< LSObject > > getChildIterator () const
 Gets an iterator which can be used for a breadth-first iteration over all objects below the object in the object hierarchy. More...
 
ref_ptr< LSObjectgetParent () const
 Returns the parent of this object. More...
 
unsigned int getNumChildren () const
 Returns the number of children of this object. More...
 
ref_ptr< LSObjectgetChild (unsigned int n) const
 Returns the n-th child of this object. More...
 
ref_ptr< LSObjectgetChild (LSString name) const
 Returns the child of this object with a given name. More...
 
bool rmChild (unsigned int n)
 Removes a child from this object. More...
 
bool rmChild (LSString name)
 Removes a child from this object. More...
 
LSResult::Result addChild (LSString name, LSString typeName, ref_ptr< LSObject > &childOut)
 Creates a new child of the given type. More...
 
LSResult::Result generateUniqueChildName (const LSString &baseName, LSString &nameOut) const
 Generates a valid and unique name for a new child of this object based on the provided base name. More...
 
LSResult::Result setParent (ref_ptr< LSObject > newParent)
 Changes the parent of this object. More...
 
- Public Member Functions inherited from LSAttributeContainer
LSString getTypeName () const
 Gets the type name of this instance. More...
 
LSString getName () const
 Gets the name of the container. More...
 
LSResult::Result setName (LSString name)
 Sets the name of the container. More...
 
LSString getUuid () const
 Returns the unique id of the container. More...
 
LSString assignUuid ()
 Assigns a unique id to the container if the container does not not yet have a unique id. More...
 
unsigned int getNumAttributes () const
 Get the number of attributes in the container. More...
 
LSString getAttributeName (unsigned int index) const
 Get the name of an attribute in the container. More...
 
unsigned int getAttributeIndex (LSString name) const
 Get the index of an attribute in the container. More...
 
LSAttribute getAttribute (unsigned int index) const
 Get an attribute based on its index. More...
 
LSAttribute getAttribute (LSString name) const
 Get an attribute based on its name. More...
 
LSResult::Result setAttribute (unsigned int index, const LSAttribute &attribute)
 Set an attribute based on its index. More...
 
LSResult::Result setAttribute (LSString name, const LSAttribute &attribute)
 Set an attribute based on its name. More...
 
LSResult::Result addCustomAttribute (LSString name, const LSAttribute &attribute)
 Add a new custom attribute to the container. More...
 
bool removeCustomAttribute (LSString name)
 Remove a custom attribute from the container. More...
 
unsigned int getNumFields () const
 Returns the number of fields in the container. More...
 
ref_ptr< LSAttributeContainergetField (unsigned int index) const
 Returns the field at position n in the container. More...
 
ref_ptr< LSAttributeContainergetField (const LSString &name) const
 Returns the field with the given name. More...
 
LSResult::Result addField (const LSString &name, const LSString &typeName, ref_ptr< LSAttributeContainer > &fieldOut)
 Add a field to the container. More...
 
bool rmField (const LSString &name)
 Removes the field with a given name from the container. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LSRefType
void ref () const
 Increments the internal reference counter. More...
 
void unref () const
 Decrements the internal reference counter. More...
 

Detailed Description

Information container which can be used to build up a hierarchical tree structure of container elements.

Version
SCENE API Version 2.0.0.

Member Function Documentation

◆ getTransformationToGlobal()

Eigen::Matrix4d getTransformationToGlobal ( ) const

Calculates the transformation matrix which transforms local object coordinates to global coordinates.

Returns
The transformation matrix.
Version
SCENE API Version 2.0.0.

◆ select()

void select ( )

Selects this object.

Version
SCENE API Version 2.0.0.

◆ getChildIterator()

LSIterator<ref_ptr<LSObject> > getChildIterator ( ) const

Gets an iterator which can be used for a breadth-first iteration over all objects below the object in the object hierarchy.

Returns
The iterator instance.
Version
SCENE API Version 2.0.0.

◆ getParent()

ref_ptr<LSObject> getParent ( ) const

Returns the parent of this object.

Returns
The parent of this object.
Version
SCENE API Version 2.0.0.

◆ getNumChildren()

unsigned int getNumChildren ( ) const

Returns the number of children of this object.

Returns
The number of children of this object.
Version
SCENE API Version 2.0.0.

◆ getChild() [1/2]

ref_ptr<LSObject> getChild ( unsigned int  n) const

Returns the n-th child of this object.

Parameters
nThe position of a child of this object.
Returns
The n-th child of this object.
Version
SCENE API Version 2.0.0.

◆ getChild() [2/2]

ref_ptr<LSObject> getChild ( LSString  name) const

Returns the child of this object with a given name.

Parameters
nameThe name of the object to retrieve.
Returns
The child child of this object which matches the given name.
Version
SCENE API Version 2.0.0.

◆ rmChild() [1/2]

bool rmChild ( unsigned int  n)

Removes a child from this object.

Parameters
nThe position of the child to be removed.
Returns
true if the child could be removed, false otherwise.
Version
SCENE API Version 2.0.0.

◆ rmChild() [2/2]

bool rmChild ( LSString  name)

Removes a child from this object.

Parameters
nameThe name of the child to be removed.
Returns
true if the child could be removed, false otherwise.
Version
SCENE API Version 2.0.0.

◆ addChild()

LSResult::Result addChild ( LSString  name,
LSString  typeName,
ref_ptr< LSObject > &  childOut 
)

Creates a new child of the given type.

Parameters
typeNameThe type of the object to create, specified by its class name.
nameThe name of the child to create (The name might be automatically changed when it conflicts with another child).
[out]childOutThe child which has been added.
Returns
An LSResult result code.
Version
SCENE API Version 2.0.0.

◆ generateUniqueChildName()

LSResult::Result generateUniqueChildName ( const LSString baseName,
LSString nameOut 
) const

Generates a valid and unique name for a new child of this object based on the provided base name.

This name can then be used for safely calling addChild with regard to the name of the new child.

Parameters
baseNameThe desired name of the new child.
[out]nameOutThe generated unique name for the new child.
Returns
An LSResult result code. In case of an error, nameOut is an empty string.
Version
SCENE API Version 2.0.19.

◆ setParent()

LSResult::Result setParent ( ref_ptr< LSObject newParent)

Changes the parent of this object.

This is equal to moving the object in the structure tree. The object must be movable. The object must support the new parent as parent. The new parent must support this object as child. The moved object will keep its global position, meaning the objects local transformation can be changed by this method. This of course only applies to objects with a 3D position.

Parameters
newParentReference to the new parent object that should contain the object as child.
Returns
An LSResult result code.
Version
SCENE API Version 2.0.24.