SCENE C++ API  2.1.0
lsview3d.h
1 #pragma once
2 
3 #include <core_api/lsglobaldefinitions.h>
4 #include <core_api/lspointtypes.h>
5 
6 #include <plugin_api/lsview.h>
7 #include <plugin_api/lsrenderable3d.h>
8 #include <plugin_api/lsscenenode3d.h>
9 #include <plugin_api/lsoverlay3d.h>
10 #include <plugin_api/lscamera.h>
11 #include <plugin_api/lsrenderstatistics.h>
12 #include <plugin_api/lsview3dsettings.h>
13 
14 namespace SCENE_API {
15 
16 // Forward declarations
17 class LSView3d_Implementation;
18 
21 class LSView3d : public LSView
22 {
23  // Instances of this class cannot be copied or assigned
24  LS_UNCOPYABLE(LSView3d)
25 
26 public:
29  PLUGIN_API_EXPORT void updateView();
30 
34  PLUGIN_API_EXPORT void addRenderable(ref_ptr<LSRenderable3D> renderable);
35 
39  PLUGIN_API_EXPORT void removeRenderable(ref_ptr<LSRenderable3D> renderable);
40 
52  PLUGIN_API_EXPORT LSResult::Result renderToImageFile(LSString filePath,
53  bool waitForPointLoader);
54 
64  PLUGIN_API_EXPORT LSResult::Result renderToImageBuffer(unsigned char* buffer,
65  bool waitForPointLoader);
66 
69  PLUGIN_API_EXPORT LSRenderStatistics getRenderStatistics() const;
70 
76  PLUGIN_API_EXPORT void setObjectVisibility(LSObject& object, bool visible);
77 
82  PLUGIN_API_EXPORT bool isObjectVisible(LSObject& object) const;
83 
88  PLUGIN_API_EXPORT ref_ptr<LSCamera> getCamera();
89 
96  PLUGIN_API_EXPORT Eigen::Vector3d pickScanPoint(const Eigen::Vector2ui& viewPoint);
97 
101  PLUGIN_API_EXPORT ref_ptr<LSView3dSettings> getViewSettings() const;
102 
106  PLUGIN_API_EXPORT LSResult::Result setViewSettings(ref_ptr<LSView3dSettings> settings);
107 
108 protected:
109  LS_INTERFACE(LSView3d, LSView)
110 };
111 
112 }