SCENE C++ API  2.1.0
lsobject.h
1 #pragma once
2 
3 #include <core_api/lsglobaldefinitions.h>
4 #include <core_api/ref_ptr.h>
5 #include <core_api/lsattributecontainer.h>
6 #include <core_api/lsiterator.h>
7 #include <core_api/lsstring.h>
8 #include <core_api/lsresult.h>
9 
10 namespace SCENE_API {
11 
12 // Forward declarations
13 class LSObject_Implementation;
14 
19 {
20  LS_UNCOPYABLE(LSObject)
21 
22 public:
23 
28  CORE_API_EXPORT Eigen::Matrix4d getTransformationToGlobal() const;
29 
32  CORE_API_EXPORT void select();
33 
38  CORE_API_EXPORT LSIterator<ref_ptr<LSObject> > getChildIterator() const;
39 
43  CORE_API_EXPORT ref_ptr<LSObject> getParent() const;
44 
48  CORE_API_EXPORT unsigned int getNumChildren() const;
49 
54  CORE_API_EXPORT ref_ptr<LSObject> getChild(unsigned int n) const;
55 
60  CORE_API_EXPORT ref_ptr<LSObject> getChild(LSString name) const;
61 
66  CORE_API_EXPORT bool rmChild(unsigned int n);
67 
72  CORE_API_EXPORT bool rmChild(LSString name);
73 
82  CORE_API_EXPORT LSResult::Result addChild(LSString name, LSString typeName, ref_ptr<LSObject>& childOut);
83 
91  CORE_API_EXPORT LSResult::Result generateUniqueChildName(const LSString& baseName, LSString& nameOut) const;
92 
102  CORE_API_EXPORT LSResult::Result setParent(ref_ptr<LSObject> newParent);
103 
104 protected:
105  LS_INTERFACE(LSObject, LSAttributeContainer)
106 };
107 
108 
109 }