15 SceneRootObject( SceneRootObject&& ) noexcept = default;
17 SceneRootObject& operator = ( SceneRootObject&& ) noexcept = default;
20 SceneRootObject( ProtectedStruct, const SceneRootObject& obj ) : SceneRootObject( obj ) {}
22 constexpr static const char* StaticTypeName() noexcept {
return "RootObject"; }
23 virtual const char* typeName()
const override {
return StaticTypeName(); }
25 constexpr static const char* StaticClassName() noexcept {
return "Root"; }
26 virtual std::string className()
const override {
return StaticClassName(); }
28 constexpr static const char* StaticClassNameInPlural() noexcept {
return "Roots"; }
29 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
31 constexpr static const char* RootName() noexcept {
return "Root"; }
33 virtual void setAncillary(
bool )
override { Object::setAncillary(
false ); }
35 virtual bool select(
bool )
override {
return Object::select(
false ); }
37 virtual void setName( std::string )
override { Object::setName( SceneRootObject::RootName() ); }
39 MRMESH_API virtual std::shared_ptr<Object> clone()
const override;
42 MRMESH_API std::shared_ptr<SceneRootObject> cloneRoot()
const;
45 SceneRootObject(
const SceneRootObject& other ) =
default;
47 MRMESH_API virtual void serializeFields_( Json::Value& root )
const override;
49 MRMESH_API void deserializeFields_(
const Json::Value& root )
override;
61#ifndef MR_SCENEROOT_CONST
63 MRMESH_API static std::shared_ptr<SceneRootObject>& getSharedPtr();
65 MRMESH_API static void setScenePath(
const std::filesystem::path& scenePath );
68 MRMESH_API static std::shared_ptr<const SceneRootObject> constGetSharedPtr();
70 MRMESH_API static const std::filesystem::path& getScenePath();
76 std::shared_ptr<SceneRootObject> root_;
79 std::filesystem::path scenePath_;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRSceneRoot.h:11
Definition MRSceneRoot.h:59
Definition MRCameraOrientationPlugin.h:8
MRMESH_API std::shared_ptr< SceneRootObject > createRootFormObject(std::shared_ptr< Object > obj)