NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
sdl_interface.h
Go to the documentation of this file.
1 #ifndef SDL_INTERFACE_H_
11 #define SDL_INTERFACE_H_
12 
13 #include <base/inc/platform.h>
14 #include <base/inc/base_types.h>
17 #include <base/inc/sdk_ref_ptr.h>
21 #include <geometry/inc/geometry/geometry2d/2d_geometry_objects.h>
27 
28 namespace sdk {
29 namespace vis {
30 namespace sdl {
31 
32 // Classes defined in this file
33 FWD_DECL_INTERFACE(IMatrix3X2Container);
34 FWD_DECL_INTERFACE(IDrawingContext);
35 FWD_DECL_INTERFACE(ILayoutInfo);
36 FWD_DECL_INTERFACE(ISymbolSetCatalogFactory);
37 FWD_DECL_INTERFACE(ISymbolSetCatalog);
38 FWD_DECL_INTERFACE(IPaletteManager);
39 FWD_DECL_INTERFACE(IPalette);
40 FWD_DECL_INTERFACE(ISymbolCollection);
41 FWD_DECL_INTERFACE(ISymbolizer);
42 FWD_DECL_INTERFACE(ISDLScript);
43 FWD_DECL_INTERFACE(IVisualObject);
44 FWD_DECL_INTERFACE(ILayoutMember);
45 FWD_DECL_INTERFACE(ILayoutMembersCollection);
46 
49 typedef SDKUInt16 SDLResourceID;
50 const SDKUInt16 k_SDL_InvalidID = 0;
51 typedef SDKUInt32 SDLColorID;
53 
57 enum SymbolType {
67 };
68 
77 };
78 
79 enum DrawingContextProperty {
80  DrawingContextProperty_GeometryFactory = 0,
81  DrawingContextPRoperty_ClippingPath,
82  DrawingContextPRoperty_ClippingMatrix, // IMatrixContainer (see below), clipping should be transformed before use (e.g. general/data-view cipping path is used with individually projected/positioned/centered data)
83  DrawingContextPRoperty_ViewportOriginX,
84  DrawingContextPRoperty_ViewportOriginY,
85  DrawingContextPRoperty_ViewportWidth,
86  DrawingContextPRoperty_ViewportHeight,
87  DrawingContextPRoperty_X_Origin,
88  DrawingContextPRoperty_Y_Origin,
89  DrawingContextPRoperty_SceneRotationAngle,
90  DrawingContextPRoperty_DoNotSkipSprites,
91  DrawingContextPRoperty_TextAntiAliasing, // 2d_graphics_consts.h enum AntiAliasingMode
92  DrawingContextPRoperty_GraphicContext, // sdk::vis::scene::IGraphicContext
93  DrawingContextPRoperty_NorthUp,
94  DrawingContextProperty_UnitsContext, // Units context
95  DrawingContextPRoperty_DoNotUseAlpha, // do not use alpha (transparency) channel
96 };
97 
98 enum DisplaySettingsEnum {
99  kDisplay_Contrast = 0,
100  kDisplay_Backlight,
101  kDisplay_Brightness,
102 };
103 
104 enum LayoutProperty {
105  LayoutProperty_Anchor,
106  LayoutProperty_X_offset,
107  LayoutProperty_Y_offset,
108 };
109 
110 enum SymbolSetCatalogProperty {
111  kSymbolSetCatalogProperty_FontCacheOn,
112 };
113 
114 class IMatrix3X2Container : public ISDKComponent {
115 public:
117  virtual SDKResult SDK_CALLTYPE IsIdentity() throw() = 0;
118 
120  virtual SDKResult SDK_CALLTYPE GetMatrixValues(
121  float& _11, float& _12, float& _21, float& _22, float& _31, float& _32) throw() = 0;
122 
123  SDK_IMPLEMENT_IID(IMatrix3X2Container)
124  SDK_END_INTERFACE(IMatrix3X2Container)
125 };
126 SDK_DECLARE_IID(IMatrix3X2Container)
127 
128 class IDrawingContext : public ISDKProperties {
129 public:
130  SDK_IMPLEMENT_IID(IDrawingContext)
131  SDK_END_INTERFACE(IDrawingContext)
132 };
133 SDK_DECLARE_IID(IDrawingContext)
134 
135 class ILayoutInfo : public ISDKProperties {
136 public:
137  SDK_IMPLEMENT_IID(ILayoutInfo)
138  SDK_END_INTERFACE(ILayoutInfo)
139 };
140 SDK_DECLARE_IID(ILayoutInfo)
141 
142 class ISymbolSetCatalogFactory : public ISDKComponent {
145 public:
147  virtual SDKResult SDK_CALLTYPE CreateCatalog(
148  ISymbolSetCatalogSP& new_catalog) throw() = 0;
149 
151  virtual SDKResult SDK_CALLTYPE GetCurrentCatalog(
152  ISymbolSetCatalogSP& catalog) const throw() = 0;
153 
155  virtual SDKResult SDK_CALLTYPE ReleaseCurrentCatalogIfLast() throw() = 0;
156 
157  SDK_IMPLEMENT_IID(ISymbolSetCatalogFactory)
158  SDK_END_INTERFACE(ISymbolSetCatalogFactory)
159 };
160 SDK_DECLARE_IID(ISymbolSetCatalogFactory)
161 
166 public:
173  virtual SDKResult SDK_CALLTYPE RegisterSymbolSet(
174  const SDKString& dir_path,
175  const sdk::base::SDKStreamSP& in_xsdl,
176  SDKString& symbol_set_name) throw() = 0;
177 
180  virtual SDKResult SDK_CALLTYPE Clear() throw() = 0;
181 
185  virtual SDKResult SDK_CALLTYPE GetVersion(
186  const SDKString& symbol_set_name,
187  SDKUInt16& ver_major, SDKUInt16& ver_minor) throw() = 0;
188 
194  virtual SDKResult SDK_CALLTYPE GetSymbolCollection(
195  ISymbolCollectionSP& symbols) throw() = 0;
196 
203  virtual SDKResult SDK_CALLTYPE GetPaletteManager(
204  IPaletteManagerSP& palette_manager) throw() = 0;
205 
211  virtual SDKResult SDK_CALLTYPE GetSymbolSetId(
212  const SDKString& symbol_set_name,
213  SDLResourceID& id) throw() = 0;
214 
220  virtual SDKResult SDK_CALLTYPE GetSymbolGeometryType(
221  const SDLResourceID id,
222  SymbolGeometryType& geom_type) throw() = 0;
223 
229  virtual SDKResult SDK_CALLTYPE GetSymbolType(
230  const SDLResourceID id,
231  SymbolType& type) throw() = 0;
232 
239  virtual SDKResult SDK_CALLTYPE GetColorId(
240  const SDLResourceID symbol_set_id,
241  const SDKString& color_name,
242  SDLColorID& id) throw() = 0;
243 
250  virtual SDKResult SDK_CALLTYPE GetSymbolId(
251  const SDLResourceID symbol_set_id,
252  const SDKString& symbol_name,
253  SDLResourceID& id) throw() = 0;
254 
261  virtual SDKResult SDK_CALLTYPE GetSymbolName(
262  const SDLResourceID symbol_set_id,
263  const SDLResourceID id,
264  SDKString& symbol_name) throw() = 0;
265 
274  virtual SDKResult SDK_CALLTYPE GetSymbolParameterId(
275  const SDLResourceID symbol_set_id,
276  const SDLResourceID symbol_id,
277  const SDKString& parameter_name,
278  SDLResourceID& id) throw() = 0;
279 
285  virtual SDKResult SDK_CALLTYPE CreateScript(
286  ISDLScriptSP& script) throw() = 0;
287 
295  virtual SDKResult SDK_CALLTYPE RegisterSymbol(
296  SDLResourceID& id,
297  const SDKString& symbol_set_name,
298  const SDKString& script_name,
299  const sdk::base::SDKStreamSP& p_code) throw() = 0;
300 
306  virtual SDKResult SDK_CALLTYPE GetSymbol(
307  const SDLResourceID& symbol_id,
308  sdk::base::SDKStreamSP& p_code) throw() = 0;
309 
310 
319  virtual SDKResult SDK_CALLTYPE ParseCommand(
320  const SDLResourceID symbol_set_id,
321  const SDKString& command,
322  SDLResourceID& id,
323  sdk::base::SDKStreamSP& params_stream) throw() = 0;
324 
326  virtual SDKResult SDK_CALLTYPE CreateSymbolizer(
327  ISymbolizerSP& symbolizer) throw() = 0;
328 
330  virtual SDKResult SDK_CALLTYPE GetID(
331  SDKUInt32& id) throw() = 0;
332 
339  virtual SDKResult SDK_CALLTYPE GetSymbolInfo(
340  const SDLResourceID symbol_set_id,
341  const SDLResourceID id,
342  SDKString& symbol_info) throw() = 0;
343 
344 
352  virtual SDKResult SDK_CALLTYPE CreateScriptFromXSDL(
353  SDLResourceID& id,
354  const SDKString& symbol_set_name,
355  const sdk::base::SDKStreamSP& xsdl) throw() = 0;
356 
357  SDK_IMPLEMENT_IID(ISymbolSetCatalog)
358  SDK_END_INTERFACE(ISymbolSetCatalog)
359 };
360 SDK_DECLARE_IID(ISymbolSetCatalog)
361 
362 class IPaletteManager : public ISDKComponent {
365 public:
369  virtual SDKResult SDK_CALLTYPE EnumPaletteNames(
370  IEnumSDKStringSP& palette_names) throw() = 0;
371 
378  virtual SDKResult SDK_CALLTYPE GetPalette(
379  const SDKString& palette_name,
380  IPaletteSP& palette) throw() = 0;
381 
390  virtual SDKResult SDK_CALLTYPE GetColor(
391  const SDKString& palette_name,
392  const SDKString& symbol_set_name,
393  const SDKString& color_name,
394  SDKUInt32& argb) throw() = 0;
395 
403  virtual SDKResult SDK_CALLTYPE SetColor(
404  const SDKString& palette_name,
405  const SDKString& symbol_set_name,
406  const SDKString& color_name,
407  SDKUInt32 argb) throw() = 0;
408 
416  virtual SDKResult SDK_CALLTYPE RegisterPalette(
417  const SDKString& palette_name,
418  //float gamma,
419  SDLResourceID& id) throw() = 0;
420 
421 
430  virtual SDKResult SDK_CALLTYPE GetDisplaySettingValue(
431  const SDKString& symbol_set_name,
432  const SDKString& palette_name,
433  DisplaySettingsEnum value_id,
434  SDKAny& value) const throw() = 0;
435 
443  virtual SDKResult SDK_CALLTYPE SetDisplaySettingValue(
444  const SDKString& symbol_set_name,
445  const SDKString& palette_name,
446  DisplaySettingsEnum value_id,
447  const SDKAny& value) throw() = 0;
448 
458  virtual SDKResult SDK_CALLTYPE GetColorProperty(
459  const SDKString& symbol_set_name,
460  const SDKString& color_name,
461  const SDKPropertyID& id,
462  SDKAny& value) throw() = 0;
463 
464  SDK_IMPLEMENT_IID(IPaletteManager)
465  SDK_END_INTERFACE(IPaletteManager)
466 };
467 SDK_DECLARE_IID(IPaletteManager)
468 
469 class IPalette : public ISDKComponent {
472 public:
476  virtual SDKResult SDK_CALLTYPE EnumColorNames(
477  IEnumSDKStringSP& color_names) throw() = 0;
478 
484  virtual SDKResult SDK_CALLTYPE GetColor(
485  const SDKString& color_name,
486  SDKUInt32& argb) throw() = 0;
487 
492  virtual SDKResult SDK_CALLTYPE SetColor(
493  const SDKString& color_name,
494  SDKUInt32 argb) throw() = 0;
495 
496  SDK_IMPLEMENT_IID(IPalette)
497  SDK_END_INTERFACE(IPalette)
498 };
499 SDK_DECLARE_IID(IPalette)
500 
501 class ISymbolCollection : public ISDKComponent {
504 public:
511  virtual SDKResult SDK_CALLTYPE EnumSymbolParameterNames(
512  const SDKString& symbol_set_name,
513  const SDKString& symbol_name,
514  EnumSDKStringSP& parameter_names) throw() = 0;
515 
520  virtual SDKResult SDK_CALLTYPE EnumSymbolNames(
521  const SDKString* symbol_set_name,
522  EnumSDKStringSP& symbol_set_names) throw() = 0;
523 
527  virtual SDKResult SDK_CALLTYPE EnumSymbolSetNames(
528  EnumSDKStringSP& symbol_set_names) throw() = 0;
529 
530  SDK_IMPLEMENT_IID(ISymbolCollection)
531  SDK_END_INTERFACE(ISymbolCollection)
532 };
533 SDK_DECLARE_IID(ISymbolCollection)
534 
535 class ISymbolizer : public ISDKComponent {
538 public:
550  virtual SDKResult SDK_CALLTYPE CreateVisualObject(
551  IVisualObjectSP& vo,
552  SDKUInt16 symbol_id,
553  const sdk::gfx::RenderTargetSP& target,
554  float symbol_scale,
555  const sdk::base::SDKStreamSP& params) throw() = 0;
556 
566  virtual SDKResult SDK_CALLTYPE CombineVisualObjects(
567  IVisualObjectSP& parent_vo,
568  IVisualObjectSP& child_vo,
569  AnchorType anchor,
570  float x_offset, float y_offset) throw() = 0;
571 
573  virtual SDKResult SDK_CALLTYPE DrawVisualObject(
574  const IVisualObjectSP& vo,
575  const sdk::gfx::RenderTargetSP& target,
576  const ISDKComponentSP& geometry,
577  const SDKMatrix3X2& transformation_matrix,
578  const IDrawingContextSP& context) throw() = 0;
579 
581  virtual SDKResult SDK_CALLTYPE Interpret(
582  const sdk::base::SDKStreamSP& p_code_stream,
583  const sdk::gfx::RenderTargetSP& target,
584  float symbol_scale,
585  const sdk::base::SDKStreamSP& params,
586  const ISDKComponentSP& geometry,
587  const SDKMatrix3X2& transformation_matrix,
588  const IDrawingContextSP& context) throw() = 0;
589 
591  virtual SDKResult SDK_CALLTYPE SetCurrentPalette(
592  const SDKString& palette_name) throw() = 0;
593 
595  virtual SDKResult SDK_CALLTYPE DisplaySymbol(
596  SDKUInt16 symbol_id,
597  const ISDKComponentSP& geometry,
598  const sdk::gfx::RenderTargetSP& target,
599  const SDKMatrix3X2& transformation_matrix,
600  float scale,
601  const sdk::base::SDKStreamSP& params) throw() = 0;
602 
604  virtual SDKResult SDK_CALLTYPE GetSymbolMetrics(
605  SDKSizeF& size,
606  SDKPointF2D& origin,
607  SDKUInt16 symbol_id,
608  const sdk::gfx::RenderTargetSP& target,
609  float scale,
610  const sdk::base::SDKStreamSP& params) throw() = 0;
611 
613  virtual SDKResult SDK_CALLTYPE CreateSprite(
614  SDKUInt16 symbol_id,
615  sdk::vis::scene::ITextureSP& texture,
616  SDKPointF2D& org,
617  const sdk::vis::scene::IGraphicContextSP& scene_context,
618  float scale,
619  const sdk::base::SDKStreamSP& params) throw() = 0;
620 
622  virtual SDKResult SDK_CALLTYPE CreateLayout(
623  const IVisualObjectSP& vo,
624  const float scale_factor,
625  ILayoutMemberSP& layout_owner) throw() = 0;
626 
628  SDK_IMPLEMENT_IID(ISymbolizer)
629  SDK_END_INTERFACE(ISymbolizer)
630 };
631 SDK_DECLARE_IID(ISymbolizer)
632 
633 class ILayoutMember : public ISDKComponent {
636 public:
641  virtual SDKResult SDK_CALLTYPE Relayout(
642  const sdk::gfx::RenderTargetSP& target) throw() = 0;
643 
645  virtual SDKResult SDK_CALLTYPE GetMetrics(
646  SDKSizeF& size,
647  SDKPointF2D& origin) throw() = 0;
648 
657  virtual SDKResult SDK_CALLTYPE AttachMember(
658  IVisualObjectSP& vo,
659  AnchorType anchor,
660  float x_offset, float y_offset,
661  ILayoutMemberSP& member) throw() = 0;
662 
668  virtual SDKResult SDK_CALLTYPE GetVisualObject(
669  IVisualObjectSP& vo) throw() = 0;
670 
675  virtual SDKResult SDK_CALLTYPE GetLayoutInfo(
676  ILayoutInfoSP& info) throw() = 0;
677 
684  virtual SDKResult SDK_CALLTYPE GetOwner(
685  IVisualObjectSP& owner) throw() = 0;
686 
693  virtual SDKResult SDK_CALLTYPE GetMembers(
694  ILayoutMembersCollectionSP& members) throw() = 0;
695 
697  SDK_IMPLEMENT_IID(ILayoutMember)
698  SDK_END_INTERFACE(ILayoutMember)
699 };
700 SDK_DECLARE_IID(ILayoutMember)
701 
702 class ILayoutMembersCollection : public ISDKComponent {
705 public:
707  virtual SDKResult SDK_CALLTYPE Count(SDKUInt32& count) const throw() = 0;
708 
717  virtual SDKResult SDK_CALLTYPE GetMember(
718  SDKUInt32 index,
719  ILayoutMemberSP& memeber) throw() = 0;
720 
721  SDK_IMPLEMENT_IID(ILayoutMembersCollection)
722  SDK_END_INTERFACE(ILayoutMembersCollection)
723 };
724 SDK_DECLARE_IID(ILayoutMembersCollection)
725 
726 
727 } // namespace sdl
728 } // namespace vis
729 } // namespace sdk
730 
731 #endif // SDL_INTERFACE_H_
sdk::vis::sdl::IPaletteManager
Provides access to members that manage registered palettes.
Definition: sdl_interface.h:364
sdk::vis::sdl::SymbolGeometryType
SymbolGeometryType
Defines the symbol geometry type.
Definition: sdl_interface.h:71
sdk::vis::sdl::SymbolType
SymbolType
Defines the symbol type.
Definition: sdl_interface.h:57
base_types.h
SDK base types.
sdk::vis::sdl::SymbolType_Icon
@ SymbolType_Icon
Icon.
Definition: sdl_interface.h:59
sdk::vis::sdl::SDLColorID
SDKUInt32 SDLColorID
Definition of the color identifier type.
Definition: sdl_interface.h:51
sdk::vis::sdl::k_SDL_InvalidID
const SDKUInt16 k_SDL_InvalidID
Definition of the symbol identifier invalid value.
Definition: sdl_interface.h:50
sdk::vis::sdl::SymbolType_Brush
@ SymbolType_Brush
Solid brush.
Definition: sdl_interface.h:61
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::vis::sdl::SDLResourceID
SDKUInt16 SDLResourceID
Definition of the resource identifier type.
Definition: sdl_interface.h:49
2d_render_target_interface.h
Generic 2D render target (allows to render 2D images)
sdk::vis::sdl::SymbolType_ComplexPen
@ SymbolType_ComplexPen
Complex pen.
Definition: sdl_interface.h:64
2d_geometry_path_interface.h
Describes interface for 2D geometry path, which supports the edit operations.
sdk::vis::sdl::SymbolType_MultiText
@ SymbolType_MultiText
Text at multiple position.
Definition: sdl_interface.h:66
properties_interface.h
Object generic properties interface.
sdk::vis::sdl::SymbolType_Text
@ SymbolType_Text
Text.
Definition: sdl_interface.h:60
sdk_string_handler.h
Wrappers and helper functions for SDKString.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
texture_interface.h
Definition of graphic texture interfaces.
stream_interface.h
Generic data stream interface.
SDKRefPtr
A smart pointer class for managing SDK components interface pointers.
Definition: sdk_ref_ptr.h:23
sdk::vis::sdl::SymbolGeometryType_Unknown
@ SymbolGeometryType_Unknown
Unknown type.
Definition: sdl_interface.h:72
sdl.h
SDL base definitions.
sdk::vis::sdl::SymbolGeometryType_MultiPoint
@ SymbolGeometryType_MultiPoint
Multi-point.
Definition: sdl_interface.h:76
sdk_component_interface.h
Common base SDK interfaces.
graphic_context_interface.h
Definition of graphic context interfaces.
SDKPointF2D
Single 2D point.
Definition: geometry_base_types.h:33
sdk::vis::sdl::SymbolGeometryType_Areal
@ SymbolGeometryType_Areal
Area.
Definition: sdl_interface.h:75
platform.h
Describes the platform constants.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::vis::sdl::k_SDL_InvalidColorID
const SDLColorID k_SDL_InvalidColorID
Definition of the symbol identifier invalid value.
Definition: sdl_interface.h:52
sdk::vis::sdl::SymbolGeometryType_Linear
@ SymbolGeometryType_Linear
Line.
Definition: sdl_interface.h:74
sdk::vis::sdl::SymbolType_Unknown
@ SymbolType_Unknown
Unknown type.
Definition: sdl_interface.h:58
sdk::vis::sdl::SymbolType_MultiIcon
@ SymbolType_MultiIcon
Icon at multiple position.
Definition: sdl_interface.h:65
sdk::vis::sdl::SymbolType_Pen
@ SymbolType_Pen
Simple or combined pen.
Definition: sdl_interface.h:63
sdk::vis::sdl::SymbolGeometryType_Point
@ SymbolGeometryType_Point
Point.
Definition: sdl_interface.h:73
enum_interface.h
Describes a basic enumeration interfaces.
sdk::vis::sdl::ISymbolSetCatalog
Provides access to members that manage the global symbol set catalog. The symbol set catalog contains...
Definition: sdl_interface.h:165
sdk::vis::sdl::SymbolType_ComplexBrush
@ SymbolType_ComplexBrush
Complex or hatch brush.
Definition: sdl_interface.h:62
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
SDKSizeF
SizeF.
Definition: geometry_base_types.h:1111