SCENE C++ API  2.1.0
lsproject.h
1 #pragma once
2 
3 #include <core_api/lsglobaldefinitions.h>
4 #include <core_api/ref_ptr.h>
5 #include <core_api/lsworkspace.h>
6 #include <core_api/lsprojectmetadata.h>
7 
8 namespace SCENE_API {
9 
10 // Forward declarations
11 class LSProject_Implementation;
12 
15 class LSProject : public LSWorkspace
16 {
17  LS_UNCOPYABLE(LSProject)
18 
19 public:
20 
23  CORE_API_EXPORT ~LSProject();
24 
31  CORE_API_EXPORT static LSResult::Result createProject(
32  LSString projectPath,
33  LSString projectName);
34 
45  CORE_API_EXPORT static LSResult::Result createProject(
46  LSString projectPath,
47  LSString projectName,
48  LSString uuid);
49 
63  CORE_API_EXPORT static LSResult::Result loadProject(
64  LSString projectPath,
65  ref_ptr<LSProject>& projectOut,
66  bool readOnly = false);
67 
76  CORE_API_EXPORT LSResult::Result saveRevision(
77  LSString commitMessage = L"",
78  LSString author = L"",
79  bool updateProjectPointCloud = false);
80 
83  CORE_API_EXPORT LSString getProjectName() const;
84 
87  CORE_API_EXPORT LSString getUuid() const;
88 
91  CORE_API_EXPORT LSString getProjectPath() const;
92 
95  CORE_API_EXPORT LSString getProjectFilePath() const;
96 
103  CORE_API_EXPORT LSResult::Result cleanRevisions();
104 
115  const LSString& inputDirectory,
116  bool recursive = true);
117 
131  CORE_API_EXPORT static LSResult::Result importScannerProject(
132  const LSString& projectPath,
133  const ref_ptr<LSProjectMetadata>& metadata);
134 
135 protected:
136  LS_INTERFACE(LSProject, LSWorkspace)
137 };
138 
139 } // namespace SCENE_API