NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
scene_viewports_interface.h
1 
10 #ifndef SDK_VIS_SCENE_2D_VIEWPORTS_INTERFACE_H_
11 #define SDK_VIS_SCENE_2D_VIEWPORTS_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>
22 
23 namespace sdk {
24 namespace vis {
25 namespace scene {
26 
27 FWD_DECL_INTERFACE(IScene2DViewportBase);
28 FWD_DECL_INTERFACE(IScene2DViewportSimple);
29 FWD_DECL_INTERFACE(IScene2DViewportFloating);
30 
33 enum Scene2DViewportTypes
34 {
35  kScene2DViewportType_Base,
36  kScene2DViewportType_Simple,
37  kScene2DViewportType_Floating,
38 };
39 
43 {
44 public:
46  virtual SDKResult SDK_CALLTYPE SetBounds(const SDKRectF2D& viewport_bounds) throw() = 0;
48  virtual SDKResult SDK_CALLTYPE GetBounds(SDKRectF2D& viewport_bounds) const throw() = 0;
49 
51  virtual SDKResult SDK_CALLTYPE SetTransform(const SDKMatrix4X4& transform) throw() = 0;
53  virtual SDKResult SDK_CALLTYPE GetTransform(SDKMatrix4X4& transform) const throw() = 0;
55  virtual SDKResult SDK_CALLTYPE GetTransformInv(SDKMatrix4X4& transform_inv) const throw() = 0;
56 
58  virtual SDKResult SDK_CALLTYPE Clone(IScene2DViewportBaseSP& cloned_viewport) const throw() = 0;
59 
60  SDK_IMPLEMENT_IID(IScene2DViewportBase)
61  SDK_END_INTERFACE(IScene2DViewportBase)
62 };
63 SDK_DECLARE_IID(IScene2DViewportBase)
64 
68 {
69 public:
71  virtual SDKResult SDK_CALLTYPE SetTranslate(float dx, float dy, const SDKPointF2D* pivot) throw() = 0;
73  virtual SDKResult SDK_CALLTYPE GetTranslate(float* dx, float* dy, SDKPointF2D* pivot) throw() = 0;
75  virtual SDKResult SDK_CALLTYPE SetRotate(float angle_deg, const SDKPointF2D* pivot) throw() = 0;
77  virtual SDKResult SDK_CALLTYPE GetRotate(float* angle_deg, SDKPointF2D* pivot) throw() = 0;
79  virtual SDKResult SDK_CALLTYPE SetScale(float ratio, const SDKPointF2D* pivot) throw() = 0;
81  virtual SDKResult SDK_CALLTYPE GetScale(float* ratio, SDKPointF2D* pivot) throw() = 0;
83  virtual SDKResult SDK_CALLTYPE ClearTransformations() throw() = 0;
84 
85  SDK_IMPLEMENT_IID(IScene2DViewportSimple)
86  SDK_END_INTERFACE(IScene2DViewportSimple)
87 };
88 SDK_DECLARE_IID(IScene2DViewportSimple)
89 
93 {
94 public:
96  virtual SDKResult SDK_CALLTYPE PushTranslate(float dx, float dy, const SDKPointF2D* pivot) throw() = 0;
98  virtual SDKResult SDK_CALLTYPE PushRotate(float angle_deg, const SDKPointF2D* pivot) throw() = 0;
100  virtual SDKResult SDK_CALLTYPE PushScale(float ratio, const SDKPointF2D* pivot) throw() = 0;
102  virtual SDKResult SDK_CALLTYPE ClearTransformations() throw() = 0;
103 
104  SDK_IMPLEMENT_IID(IScene2DViewportFloating)
105  SDK_END_INTERFACE(IScene2DViewportFloating)
106 };
107 SDK_DECLARE_IID(IScene2DViewportFloating)
108 
109 } // namespace scene
110 } // namespace vis
111 } // namespace sdk
112 
113 #endif // SDK_VIS_SCENE_2D_VIEWPORTS_INTERFACE_H_
base_types.h
SDK base types.
sdk::vis::scene::IScene2DViewportSimple::SetRotate
virtual SDKResult SDK_CALLTYPE SetRotate(float angle_deg, const SDKPointF2D *pivot)=0
Rotates viewport round pivot or center if pivot is not provided.
sdk::vis::scene::IScene2DViewportSimple::GetTranslate
virtual SDKResult SDK_CALLTYPE GetTranslate(float *dx, float *dy, SDKPointF2D *pivot)=0
Returns viewport translate parameters.
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::vis::scene::IScene2DViewportBase::GetTransformInv
virtual SDKResult SDK_CALLTYPE GetTransformInv(SDKMatrix4X4 &transform_inv) const =0
Returns inverted scene viewport transformation matrix.
properties_interface.h
Object generic properties interface.
sdk::vis::scene::IScene2DViewportSimple::SetTranslate
virtual SDKResult SDK_CALLTYPE SetTranslate(float dx, float dy, const SDKPointF2D *pivot)=0
Translates viewport.
sdk::vis::scene::IScene2DViewportBase::GetBounds
virtual SDKResult SDK_CALLTYPE GetBounds(SDKRectF2D &viewport_bounds) const =0
Returns scene viewport bounds.
sdk::vis::scene::IScene2DViewportBase::SetTransform
virtual SDKResult SDK_CALLTYPE SetTransform(const SDKMatrix4X4 &transform)=0
Sets scene viewport transformation matrix.
SDKRectF2D
2D Rectangle
Definition: geometry_base_types.h:1295
sdk::vis::scene::IScene2DViewportBase::SetBounds
virtual SDKResult SDK_CALLTYPE SetBounds(const SDKRectF2D &viewport_bounds)=0
Sets scene viewport bounds.
sdk::vis::scene::IScene2DViewportSimple::ClearTransformations
virtual SDKResult SDK_CALLTYPE ClearTransformations()=0
Clears all viewport transformations.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::vis::scene::IScene2DViewportBase::Clone
virtual SDKResult SDK_CALLTYPE Clone(IScene2DViewportBaseSP &cloned_viewport) const =0
Clones the given viewport.
sdk::ISDKProperties
Provides access to members that control the properties.
Definition: properties_interface.h:32
sdk::vis::scene::IScene2DViewportSimple::SetScale
virtual SDKResult SDK_CALLTYPE SetScale(float ratio, const SDKPointF2D *pivot)=0
Scales viewport from pivot or center if pivot is not provided.
sdk_component_interface.h
Common base SDK interfaces.
sdk::vis::scene::IScene2DViewportSimple::GetRotate
virtual SDKResult SDK_CALLTYPE GetRotate(float *angle_deg, SDKPointF2D *pivot)=0
Returns viewport rotate parameters.
sdk::vis::scene::IScene2DViewportFloating
2D Scene viewport component.
Definition: scene_viewports_interface.h:92
SDKPointF2D
Single 2D point.
Definition: geometry_base_types.h:33
platform.h
Describes the platform constants.
matrix_base_types.h
Matrix base definitions.
geometry_base_types.h
Geometry base types.
sdk::vis::scene::IScene2DViewportSimple::GetScale
virtual SDKResult SDK_CALLTYPE GetScale(float *ratio, SDKPointF2D *pivot)=0
Returns viewport scale parameters.
sdk::vis::scene::IScene2DViewportBase::GetTransform
virtual SDKResult SDK_CALLTYPE GetTransform(SDKMatrix4X4 &transform) const =0
Returns scene viewport transformation matrix.
sdk::vis::scene::IScene2DViewportBase
2D Scene viewport component.
Definition: scene_viewports_interface.h:42
sdk::vis::scene::IScene2DViewportSimple
2D Scene viewport component.
Definition: scene_viewports_interface.h:67
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.