SCENE C++ API  2.0.22
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 
13 namespace SCENE_API {
14 
15 // Forward declarations
16 class LSView3d_Implementation;
17 
20 class LSView3d : public LSView
21 {
22  // Instances of this class cannot be copied or assigned
23  LS_UNCOPYABLE(LSView3d)
24 
25 public:
28  PLUGIN_API_EXPORT void updateView();
29 
33  PLUGIN_API_EXPORT void addRenderable(ref_ptr<LSRenderable3D> renderable);
34 
38  PLUGIN_API_EXPORT void removeRenderable(ref_ptr<LSRenderable3D> renderable);
39 
51  PLUGIN_API_EXPORT LSResult::Result renderToImageFile(LSString filePath,
52  bool waitForPointLoader);
53 
63  PLUGIN_API_EXPORT LSResult::Result renderToImageBuffer(unsigned char* buffer,
64  bool waitForPointLoader);
65 
68  PLUGIN_API_EXPORT LSRenderStatistics getRenderStatistics() const;
69 
75  PLUGIN_API_EXPORT void setObjectVisibility(LSObject& object, bool visible);
76 
81  PLUGIN_API_EXPORT bool isObjectVisible(LSObject& object) const;
82 
87  PLUGIN_API_EXPORT ref_ptr<LSCamera> getCamera();
88 
95  PLUGIN_API_EXPORT Eigen::Vector3d pickScanPoint(const Eigen::Vector2ui& viewPoint);
96 
97 protected:
98  LS_INTERFACE(LSView3d, LSView)
99 };
100 
101 }