NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
layer_interface.h
Go to the documentation of this file.
1 
10 #ifndef SDK_VIS_LAYER_INTERFACE_H_
11 #define SDK_VIS_LAYER_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>
23 #include "renderer_interface.h"
24 
25 namespace sdk {
26 namespace vis {
27 namespace scene {
28 
29 FWD_DECL_INTERFACE(ILayer);
30 FWD_DECL_INTERFACE(ILayerEnum);
31 FWD_DECL_INTERFACE(ILayerResource);
32 FWD_DECL_INTERFACE(ILayerContext);
33 FWD_DECL_INTERFACE(IRenderContext);
34 FWD_DECL_INTERFACE(ILayerClipping);
35 FWD_DECL_INTERFACE(IShader);
36 
37 typedef SDKUInt64 LayerID;
38 typedef float LayerPriority;
39 
44 typedef SDKUInt32 RenderingThreadID;
45 
49 
53 {
57 };
58 
62 {
70 };
71 
75 {
78 
82 };
83 
86 class ILayer : public ISDKProperties
87 {
88 public:
90  virtual SDKResult SDK_CALLTYPE GetLayerId(LayerID& id) const throw() = 0;
91 
93  virtual SDKResult SDK_CALLTYPE GetLayerName(SDKString& name) const throw() = 0;
94 
96  virtual SDKResult SDK_CALLTYPE GetRenderersSet(
97  IRenderersSetSP& renderers_set) const throw() = 0;
98 
100  virtual SDKResult SDK_CALLTYPE GetSubLayer(
101  const LayerID& id, ILayerSP& layer) throw() = 0;
102 
104  virtual SDKResult SDK_CALLTYPE GetBounds(
105  SDKRectF2D& bounds, bool evaluate) const throw() = 0;
106 
108  virtual SDKResult SDK_CALLTYPE SetPriority(
109  const LayerPriority& priority) throw() = 0;
111  virtual SDKResult SDK_CALLTYPE GetPriority(
112  LayerPriority& priority) const throw() = 0;
113 
115  virtual SDKResult SDK_CALLTYPE SetVisibilityFlag(
116  SDKUInt8 is_visible) throw() = 0;
118  virtual SDKResult SDK_CALLTYPE GetVisibilityFlag(
119  SDKUInt8& is_visible, bool evaluate) const throw() = 0;
120 
122  virtual SDKResult SDK_CALLTYPE SetViewport(
123  const SDKRectF2D& viewport) throw() = 0;
125  virtual SDKResult SDK_CALLTYPE GetViewport(
126  SDKRectF2D& viewport, bool evaluate) const throw() = 0;
127 
129  virtual SDKResult SDK_CALLTYPE SetTransform(const SDKMatrix4X4& transform,
130  LayerTransformationType type) throw() = 0;
132  virtual SDKResult SDK_CALLTYPE GetTransform(SDKMatrix4X4& transform,
133  LayerTransformationType* type, bool evaluate) const throw() = 0;
134 
136  virtual SDKResult SDK_CALLTYPE SetClipping(
137  const ILayerClippingSP& clipping) throw() = 0;
139  virtual SDKResult SDK_CALLTYPE GetClipping(
140  ILayerClippingSP& clipping, bool evaluate) throw() = 0;
141 
143  virtual SDKResult SDK_CALLTYPE SetShader(
144  const IShaderSP& shader) throw() = 0;
146  virtual SDKResult SDK_CALLTYPE GetShader(
147  IShaderSP& shader, bool evaluate) const throw() = 0;
148 
150  virtual SDKResult SDK_CALLTYPE GetParent(ILayerSP& layer) throw() = 0;
152  virtual SDKResult SDK_CALLTYPE EnumChildren(ILayerEnumSP& children) throw() = 0;
153 
155  virtual SDKResult SDK_CALLTYPE SetPreferableRenderingThreadID(
156  const RenderingThreadID& rendering_thread_id) throw() = 0;
158  virtual SDKResult SDK_CALLTYPE GetPreferableRenderingThreadID(
159  RenderingThreadID& rendering_thread_id) const throw() = 0;
160 
161  SDK_IMPLEMENT_IID(ILayer)
162  SDK_END_INTERFACE(ILayer)
163 };
164 SDK_DECLARE_IID(ILayer)
165 
166 class ILayerEnum : public ISDKComponent
169 {
170 public:
172  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
174  virtual SDKResult SDK_CALLTYPE Next(ILayerSP& layer) throw() = 0;
175 
176  SDK_IMPLEMENT_IID(ILayerEnum)
177  SDK_END_INTERFACE(ILayerEnum)
178 };
179 SDK_DECLARE_IID(ILayerEnum)
180 
184 {
188 };
189 
193 {
194 public:
195  SDK_IMPLEMENT_IID(IRenderContext)
196  SDK_END_INTERFACE(IRenderContext)
197 };
198 SDK_DECLARE_IID(IRenderContext)
199 
200 class ILayerClipping : public ISDKComponent
203 {
204 public:
206  virtual SDKResult SDK_CALLTYPE SetPoints(const SDKPointF2D* points, SDKUInt32 points_num,
207  const SDKUInt32* polysizes, SDKUInt32 polys_num) throw() = 0;
208 
210  virtual SDKResult SDK_CALLTYPE GetPoints(SDKPointF2D** points, SDKUInt32& points_num,
211  SDKUInt32** polysizes, SDKUInt32& polys_num) throw() = 0;
212 
213  SDK_IMPLEMENT_IID(ILayerClipping)
214  SDK_END_INTERFACE(ILayerClipping)
215 };
216 SDK_DECLARE_IID(ILayerClipping)
217 
218 
219 } // namespace scene
220 } // namespace vis
221 } // namespace sdk
222 
223 #endif // SDK_VIS_LAYER_INTERFACE_H_
sdk::vis::scene::ILayerEnum::Next
virtual SDKResult SDK_CALLTYPE Next(ILayerSP &layer)=0
Returns the next item.
sdk::vis::scene::ILayer::GetBounds
virtual SDKResult SDK_CALLTYPE GetBounds(SDKRectF2D &bounds, bool evaluate) const =0
Returns layer size.
sdk::vis::scene::ILayer
2D Scene layer - prepares one semantic group representation texture.
Definition: layer_interface.h:86
sdk::vis::scene::kLayerRenderingPriority_Normal
@ kLayerRenderingPriority_Normal
Normal rendering priority.
Definition: layer_interface.h:55
sdk::vis::scene::ILayerClipping
Layer clipping figure.
Definition: layer_interface.h:202
sdk::vis::scene::kLayerTransformationType_Position2
@ kLayerTransformationType_Position2
Additional second layer matrix.
Definition: layer_interface.h:79
base_types.h
SDK base types.
sdk::vis::scene::ILayer::GetPriority
virtual SDKResult SDK_CALLTYPE GetPriority(LayerPriority &priority) const =0
Returns layer priority value.
sdk::vis::scene::kLayerProperty_RenderingOrder
@ kLayerProperty_RenderingOrder
Rendering order of the layer.
Definition: layer_interface.h:66
sdk::vis::scene::kLayerTransformationType_Position4
@ kLayerTransformationType_Position4
Additional forth layer matrix.
Definition: layer_interface.h:81
sdk::vis::scene::ILayer::GetVisibilityFlag
virtual SDKResult SDK_CALLTYPE GetVisibilityFlag(SDKUInt8 &is_visible, bool evaluate) const =0
Returns layer visible flag value.
sdk::vis::scene::RenderingThreadID
SDKUInt32 RenderingThreadID
The rendering thread ID, Valid ID starts from 1 to value, defined by kScene2DProperty_RenderingThread...
Definition: layer_interface.h:44
sdk::vis::scene::ILayer::SetViewport
virtual SDKResult SDK_CALLTYPE SetViewport(const SDKRectF2D &viewport)=0
Sets layer viewport rectangle (part of a bound which should be mapped to the scene viewport).
sdk::vis::scene::kLayerProperty_Opacity
@ kLayerProperty_Opacity
Opacity.
Definition: layer_interface.h:63
sdk::vis::scene::ILayer::GetTransform
virtual SDKResult SDK_CALLTYPE GetTransform(SDKMatrix4X4 &transform, LayerTransformationType *type, bool evaluate) const =0
Returns layer transformation matrix.
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::vis::scene::ILayer::EnumChildren
virtual SDKResult SDK_CALLTYPE EnumChildren(ILayerEnumSP &children)=0
Retrieves number of children.
sdk::vis::scene::ILayer::SetVisibilityFlag
virtual SDKResult SDK_CALLTYPE SetVisibilityFlag(SDKUInt8 is_visible)=0
Tells layer that its content is visible.
properties_interface.h
Object generic properties interface.
sdk::vis::scene::kLayerProperty_OpaqueLayer
@ kLayerProperty_OpaqueLayer
Layer texture is opaque flag.
Definition: layer_interface.h:68
sdk::vis::scene::ILayer::GetParent
virtual SDKResult SDK_CALLTYPE GetParent(ILayerSP &layer)=0
Retrieves parent layer.
sdk::vis::scene::kLayerTransformationType_World
@ kLayerTransformationType_World
Only internal layer transformation is used.
Definition: layer_interface.h:77
sdk::vis::scene::ILayer::GetShader
virtual SDKResult SDK_CALLTYPE GetShader(IShaderSP &shader, bool evaluate) const =0
Returns layer shader.
sdk::vis::scene::ILayer::SetClipping
virtual SDKResult SDK_CALLTYPE SetClipping(const ILayerClippingSP &clipping)=0
Sets layer clipping poly-polygon.
sdk::vis::scene::kLayerProperty_Max
@ kLayerProperty_Max
Equals to the number of layer properties.
Definition: layer_interface.h:69
sdk::vis::scene::kLayerTransformationType_Position3
@ kLayerTransformationType_Position3
Additional third layer matrix.
Definition: layer_interface.h:80
sdk::vis::scene::ILayerEnum
Child layers enumerator.
Definition: layer_interface.h:168
parameters_interface.h
Provides access to members for managing a parameter set.
sdk::vis::scene::kLayerProperty_RenderingPriority
@ kLayerProperty_RenderingPriority
Rendering priority of the layer.
Definition: layer_interface.h:65
SDKRectF2D
2D Rectangle
Definition: geometry_base_types.h:1295
sdk::vis::scene::kLayerProperty_BindToSceneViewport
@ kLayerProperty_BindToSceneViewport
Bind to scene viewport.
Definition: layer_interface.h:64
sdk::vis::scene::ILayer::GetRenderersSet
virtual SDKResult SDK_CALLTYPE GetRenderersSet(IRenderersSetSP &renderers_set) const =0
Returns renderers set.
sdk::vis::scene::ILayer::GetLayerId
virtual SDKResult SDK_CALLTYPE GetLayerId(LayerID &id) const =0
Returns auto-generated layer identifier.
sdk::ISDKParameters
Provides access to members that manage parameters of an object.
Definition: parameters_interface.h:33
renderer_interface.h
Definition of renderer interface.
sdk::vis::scene::ILayer::SetTransform
virtual SDKResult SDK_CALLTYPE SetTransform(const SDKMatrix4X4 &transform, LayerTransformationType type)=0
Sets layer transformation matrix.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::ISDKProperties
Provides access to members that control the properties.
Definition: properties_interface.h:32
sdk::vis::scene::kRenderParameter_Viewport_SizeX
@ kRenderParameter_Viewport_SizeX
Viewport X size.
Definition: layer_interface.h:185
sdk::vis::scene::ILayer::GetPreferableRenderingThreadID
virtual SDKResult SDK_CALLTYPE GetPreferableRenderingThreadID(RenderingThreadID &rendering_thread_id) const =0
Returns preferable rendering thread ID for given layer.
sdk_component_interface.h
Common base SDK interfaces.
SDKPointF2D
Single 2D point.
Definition: geometry_base_types.h:33
sdk::vis::scene::kUndefinedRenderingThreadID
static const RenderingThreadID kUndefinedRenderingThreadID
In case rendering thread is undefined, given value will be used.
Definition: layer_interface.h:48
sdk::vis::scene::RenderParametersID
RenderParametersID
Generic render properties.
Definition: layer_interface.h:183
sdk::vis::scene::ILayer::SetPriority
virtual SDKResult SDK_CALLTYPE SetPriority(const LayerPriority &priority)=0
Sets layer priority value.
platform.h
Describes the platform constants.
sdk::vis::scene::ILayer::GetViewport
virtual SDKResult SDK_CALLTYPE GetViewport(SDKRectF2D &viewport, bool evaluate) const =0
Returns layer viewport rectangle (part of a bound which should be mapped to the scene viewport).
sdk::vis::scene::ILayer::SetPreferableRenderingThreadID
virtual SDKResult SDK_CALLTYPE SetPreferableRenderingThreadID(const RenderingThreadID &rendering_thread_id)=0
Sets the preferable thread ID to render given layer in case of multi-threaded rendering.
sdk::vis::scene::kLayerRenderingPriority_Low
@ kLayerRenderingPriority_Low
Low rendering priority, same as Normal for now.
Definition: layer_interface.h:56
matrix_base_types.h
Matrix base definitions.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::vis::scene::kLayerTransformationType_Local
@ kLayerTransformationType_Local
Layer transformation is multiplied on all upper relatives transformations.
Definition: layer_interface.h:76
geometry_base_types.h
Geometry base types.
sdk::vis::scene::LayerPropertiesID
LayerPropertiesID
Generic layer properties.
Definition: layer_interface.h:61
sdk::vis::scene::ILayerEnum::Reset
virtual SDKResult SDK_CALLTYPE Reset()=0
Resets the enumerator.
sdk::vis::scene::kLayerRenderingPriority_High
@ kLayerRenderingPriority_High
High rendering priority, layer is rendered on a dedicated thread.
Definition: layer_interface.h:54
sdk::vis::scene::kRenderParameter_Viewport_Max
@ kRenderParameter_Viewport_Max
Viewport maximum.
Definition: layer_interface.h:187
sdk::vis::scene::IRenderContext
Rendering context.
Definition: layer_interface.h:192
sdk::vis::scene::ILayer::GetSubLayer
virtual SDKResult SDK_CALLTYPE GetSubLayer(const LayerID &id, ILayerSP &layer)=0
Retrieves sub-layer reference by its id.
sdk::vis::scene::ILayer::SetShader
virtual SDKResult SDK_CALLTYPE SetShader(const IShaderSP &shader)=0
Sets layer shader (not all types of layers require shader).
sdk::vis::scene::LayerTransformationType
LayerTransformationType
Available layer transformation types.
Definition: layer_interface.h:74
sdk::vis::scene::ILayer::GetClipping
virtual SDKResult SDK_CALLTYPE GetClipping(ILayerClippingSP &clipping, bool evaluate)=0
Returns layer clipping poly-polygon.
sdk::vis::scene::LayerRenderingPriorities
LayerRenderingPriorities
Layer rendering priorities level.
Definition: layer_interface.h:52
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk::vis::scene::ILayer::GetLayerName
virtual SDKResult SDK_CALLTYPE GetLayerName(SDKString &name) const =0
Returns layer name.
sdk::vis::scene::kLayerProperty_Dynamic
@ kLayerProperty_Dynamic
Dynamic layers are not cached during Display.
Definition: layer_interface.h:67
sdk::vis::scene::kRenderParameter_Viewport_SizeY
@ kRenderParameter_Viewport_SizeY
Viewport Y size.
Definition: layer_interface.h:186