NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
scene_2d_interface.h
Go to the documentation of this file.
1 
10 #ifndef SDK_VIS_SCENE_2D_INTERFACE_H_
11 #define SDK_VIS_SCENE_2D_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
16 #include <base/inc/forward_declarations.h>
18 #include <base/inc/sdk_ref_ptr.h>
20 #include <base/inc/interfaces/edit/lock_interface.h>
21 
22 #include "layer_interface.h"
23 #include "scene_viewports_interface.h"
24 
25 namespace sdk {
26 namespace vis {
27 namespace scene {
28 
29 FWD_DECL_INTERFACE(IScene2D);
30 FWD_DECL_INTERFACE(IScene2DCallbacks);
31 FWD_DECL_INTERFACE(ILayer);
32 FWD_DECL_INTERFACE(IBackend);
33 FWD_DECL_INTERFACE(IRenderer);
34 
37 static const LayerID kSceneRootLayerID = 1;
38 
42 {
44 };
45 
49 {
58 
69 
75 
90 
95 
101 
104 
107 
118 
122 };
123 
126 class IScene2D : public ISDKProperties
127 {
128 public:
130  virtual SDKResult SDK_CALLTYPE GetLayer(const LayerID& id, ILayerSP& layer) throw() = 0;
132  virtual SDKResult SDK_CALLTYPE GetLayerByName(const SDKString& name, ILayerSP& layer) throw() = 0;
133 
135  virtual SDKResult SDK_CALLTYPE AddLayer(const LayerID& parent_id, const SDKString& name,
136  const LayerPriority& priority, const SDKRectF2D& bounds, const SDKUInt64& flags,
137  const ResourceType& layer_resource_type, ILayerSP& new_layer,
138  IRenderersSetSP& new_layer_renderers_set) throw() = 0;
140  virtual SDKResult SDK_CALLTYPE DeleteLayer(const LayerID& id) throw() = 0;
141 
143  virtual SDKResult SDK_CALLTYPE Render(const SDKArray& layers_to_render) throw() = 0;
145  virtual SDKResult SDK_CALLTYPE Display() throw() = 0;
146 
148  virtual SDKResult SDK_CALLTYPE AttachBackend(const IBackendSP& backend) throw() = 0;
150  virtual SDKResult SDK_CALLTYPE GetBackend(IBackendSP& backend) throw() = 0;
151 
153  virtual SDKResult SDK_CALLTYPE CreateViewport(Scene2DViewportTypes type,
154  IScene2DViewportBaseSP& viewport) throw() = 0;
155 
157  virtual SDKResult SDK_CALLTYPE SetViewport(const IScene2DViewportBaseSP& viewport) throw() = 0;
159  virtual SDKResult SDK_CALLTYPE GetViewport(IScene2DViewportBaseSP& viewport) const throw() = 0;
160 
162  virtual SDKResult SDK_CALLTYPE WinToScene(const SDKPointF2D& win_coordinate,
163  SDKPointF2D& scene_coordinate) const throw() = 0;
165  virtual SDKResult SDK_CALLTYPE SceneToWin(const SDKPointF2D& scene_coordinate,
166  SDKPointF2D& win_coordinate) const throw() = 0;
167 
169  virtual SDKResult SDK_CALLTYPE SetCallback(const IScene2DCallbacksSP& listener) throw() = 0;
170 
171  SDK_IMPLEMENT_IID(IScene2D)
172  SDK_END_INTERFACE(IScene2D)
173 };
174 SDK_DECLARE_IID(IScene2D)
175 
176 
196 {
209 };
210 
214 {
215 public:
217  virtual SDKResult SDK_CALLTYPE OnEvent(const Scene2DEventID& id, const SDKAny& param) throw() = 0;
218 
219  SDK_IMPLEMENT_IID(IScene2DCallbacks)
220  SDK_END_INTERFACE(IScene2DCallbacks)
221 };
222 SDK_DECLARE_IID(IScene2DCallbacks)
223 
224 } // namespace scene
225 } // namespace vis
226 } // namespace sdk
227 
228 #endif // SDK_VIS_SCENE_2D_INTERFACE_H_
sdk::vis::scene::kScene2DEvent_LayerRenderingFinished
@ kScene2DEvent_LayerRenderingFinished
Layer rendering task finished.
Definition: scene_2d_interface.h:199
sdk::vis::scene::IScene2D::SetViewport
virtual SDKResult SDK_CALLTYPE SetViewport(const IScene2DViewportBaseSP &viewport)=0
Sets scene viewport transformation matrix.
sdk::vis::scene::kScene2DProperty_SingleThreaded
@ kScene2DProperty_SingleThreaded
Definition: scene_2d_interface.h:57
sdk::vis::scene::IScene2D::GetViewport
virtual SDKResult SDK_CALLTYPE GetViewport(IScene2DViewportBaseSP &viewport) const =0
Returns scene viewport transformation matrix.
sdk::vis::scene::IScene2D::AttachBackend
virtual SDKResult SDK_CALLTYPE AttachBackend(const IBackendSP &backend)=0
Attaches backend to render scene to.
sdk::vis::scene::kScene2DProperty_DebugLoggingOn
@ kScene2DProperty_DebugLoggingOn
Property, which allows to switch on debug logging.
Definition: scene_2d_interface.h:103
base_types.h
SDK base types.
sdk::vis::scene::kScene2DEvent_BeforeDisplayLock
@ kScene2DEvent_BeforeDisplayLock
Definition: scene_2d_interface.h:205
sdk::vis::scene::kScene2DProperty_CacheDisplay
@ kScene2DProperty_CacheDisplay
Definition: scene_2d_interface.h:100
layer_interface.h
Definition of 2D Scene layer interfaces.
sdk::vis::scene::Scene2DPropertyIDs
Scene2DPropertyIDs
Generic scene properties.
Definition: scene_2d_interface.h:48
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::vis::scene::IScene2D::GetLayerByName
virtual SDKResult SDK_CALLTYPE GetLayerByName(const SDKString &name, ILayerSP &layer)=0
Retrieves layer reference by its name.
sdk::vis::scene::kScene2DEvent_LayerRenderingTaskInQueue
@ kScene2DEvent_LayerRenderingTaskInQueue
Layer rendering task added in tasks queue, but not started.
Definition: scene_2d_interface.h:197
sdk::vis::scene::CreateLayerFlags
CreateLayerFlags
Layer flags.
Definition: scene_2d_interface.h:41
sdk::vis::scene::kScene2DProperty_MinLayersNumToUseBlitter
@ kScene2DProperty_MinLayersNumToUseBlitter
Definition: scene_2d_interface.h:121
sdk::vis::scene::kScene2DEvent_LayerRenderingStopped
@ kScene2DEvent_LayerRenderingStopped
Rendering was stopped inside Render call.
Definition: scene_2d_interface.h:208
sdk::vis::scene::kSceneRootLayerID
static const LayerID kSceneRootLayerID
Scene root layer ID.
Definition: scene_2d_interface.h:37
properties_interface.h
Object generic properties interface.
sdk::vis::scene::IScene2D::SetCallback
virtual SDKResult SDK_CALLTYPE SetCallback(const IScene2DCallbacksSP &listener)=0
Attaches callback to the scene.
sdk::vis::scene::kScene2DEvent_LayerResourceBeforeSwap
@ kScene2DEvent_LayerResourceBeforeSwap
Layer resource will be swapped now.
Definition: scene_2d_interface.h:200
sdk::vis::scene::ResourceType
ResourceType
Available resources for layer.
Definition: renderer_interface.h:40
sdk::vis::scene::kScene2DProperty_DisplayLock
@ kScene2DProperty_DisplayLock
Definition: scene_2d_interface.h:117
sdk::vis::scene::kScene2DProperty_RenderingThreadsNumber
@ kScene2DProperty_RenderingThreadsNumber
Definition: scene_2d_interface.h:74
sdk::vis::scene::IScene2D::WinToScene
virtual SDKResult SDK_CALLTYPE WinToScene(const SDKPointF2D &win_coordinate, SDKPointF2D &scene_coordinate) const =0
Converts viewport coordinate to scene coordinate.
sdk::vis::scene::kScene2DProperty_InternalLayersGraphicContextType
@ kScene2DProperty_InternalLayersGraphicContextType
Definition: scene_2d_interface.h:89
SDKRectF2D
2D Rectangle
Definition: geometry_base_types.h:1295
sdk::vis::scene::IScene2D::DeleteLayer
virtual SDKResult SDK_CALLTYPE DeleteLayer(const LayerID &id)=0
Deletes sub-layer.
sdk::vis::scene::kScene2DEvent_LayerResourceSwapped
@ kScene2DEvent_LayerResourceSwapped
Layer resource swapped and is ready to be displayed.
Definition: scene_2d_interface.h:204
sdk::vis::scene::kScene2DProperty_UseThreadsForRendering
@ kScene2DProperty_UseThreadsForRendering
Definition: scene_2d_interface.h:68
sdk::vis::scene::IScene2DCallbacks::OnEvent
virtual SDKResult SDK_CALLTYPE OnEvent(const Scene2DEventID &id, const SDKAny &param)=0
Notifies client about some scene specific events.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::vis::scene::Scene2DEventID
Scene2DEventID
Generic scene event IDs:
Definition: scene_2d_interface.h:195
sdk::ISDKProperties
Provides access to members that control the properties.
Definition: properties_interface.h:32
sdk_component_interface.h
Common base SDK interfaces.
sdk::vis::scene::kScene2DProperty_LayersInRenderingList
@ kScene2DProperty_LayersInRenderingList
Definition: scene_2d_interface.h:94
sdk::vis::scene::IScene2DCallbacks
2D Scene callbacks interface.
Definition: scene_2d_interface.h:213
SDKPointF2D
Single 2D point.
Definition: geometry_base_types.h:33
sdk::vis::scene::IScene2D::AddLayer
virtual SDKResult SDK_CALLTYPE AddLayer(const LayerID &parent_id, const SDKString &name, const LayerPriority &priority, const SDKRectF2D &bounds, const SDKUInt64 &flags, const ResourceType &layer_resource_type, ILayerSP &new_layer, IRenderersSetSP &new_layer_renderers_set)=0
Adds new layer to the scene.
sdk::vis::scene::IScene2D::SceneToWin
virtual SDKResult SDK_CALLTYPE SceneToWin(const SDKPointF2D &scene_coordinate, SDKPointF2D &win_coordinate) const =0
Converts scene coordinate to viewport coordinate.
platform.h
Describes the platform constants.
sdk::vis::scene::kCreateLayerFlag_NoFlags
@ kCreateLayerFlag_NoFlags
No flags.
Definition: scene_2d_interface.h:43
sdk::vis::scene::IScene2D::GetLayer
virtual SDKResult SDK_CALLTYPE GetLayer(const LayerID &id, ILayerSP &layer)=0
Retrieves layer reference by its id.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::vis::scene::kScene2DProperty_SceneName
@ kScene2DProperty_SceneName
Property, which allows to set scene name.
Definition: scene_2d_interface.h:106
sdk::vis::scene::kScene2DEvent_LayerRenderingStarted
@ kScene2DEvent_LayerRenderingStarted
Layer rendering task started.
Definition: scene_2d_interface.h:198
sdk::vis::scene::IScene2D::Render
virtual SDKResult SDK_CALLTYPE Render(const SDKArray &layers_to_render)=0
Renders scene layers.
sdk::vis::scene::IScene2D::GetBackend
virtual SDKResult SDK_CALLTYPE GetBackend(IBackendSP &backend)=0
Returns attached backend.
sdk::vis::scene::IScene2D::Display
virtual SDKResult SDK_CALLTYPE Display()=0
Display rendered layers on the backend.
sdk::vis::scene::IScene2D::CreateViewport
virtual SDKResult SDK_CALLTYPE CreateViewport(Scene2DViewportTypes type, IScene2DViewportBaseSP &viewport)=0
Creates scene viewport.
sdk::vis::scene::kScene2DEvent_IsLayerResourceSwapNeeded
@ kScene2DEvent_IsLayerResourceSwapNeeded
Definition: scene_2d_interface.h:201
sdk::vis::scene::kScene2DEvent_AfterDisplayLock
@ kScene2DEvent_AfterDisplayLock
Event about Scene::Display method is unlocked now.
Definition: scene_2d_interface.h:207
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk::vis::scene::IScene2D
Main 2D Scene component which contains a tree of layers and backend.
Definition: scene_2d_interface.h:126