NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
gl2d_texts_calculator_interface.h
Go to the documentation of this file.
1 #ifndef SDK_GL2D_TEXTS_CALCULATOR_INTERFACE_H_
12 #define SDK_GL2D_TEXTS_CALCULATOR_INTERFACE_H_
13 #pragma once
14 
15 #include <base/inc/platform.h>
16 #include <base/inc/base_types.h>
17 #include <base/inc/sdk_component_base.h>
19 #include <visualizationlayer/inc/vis_const.h>
20 
21 #include "gl2d_text_interface.h"
22 
23 SDK_GL2D_BEGIN_NAMESPACE
24 
27 
31 {
32 };
33 
37 class IGL2DTextsCalculator : public ISDKProperties
38 {
39  public:
41  virtual void SDK_CALLTYPE Dump() const throw() = 0;
42 
44  virtual IGL2DCanvasSP SDK_CALLTYPE GetParent() const throw() = 0;
45 
47  virtual GL2DFontID SDK_CALLTYPE GetFontID() const throw() = 0;
49  virtual float SDK_CALLTYPE GetFontSize() const throw() = 0;
50 
63 protected:
64  virtual SDKResult SDK_CALLTYPE MeasureText(const GL2DTextType& text_type,
65  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
66  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
67  const SDKString& text_string, const float& border_width,
68  const GL2DTextReadingDirection& reading_direction, const bool& as_latin1,
69  SDKRectF2D& text_rect) const throw() = 0;
70 
71 public:
73  inline SDKResult SDK_CALLTYPE MeasureSimpleText_LTR(
74  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
75  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
76  const SDKString& text_string, SDKRectF2D& text_rect) const
77  {
78  return MeasureText(kGL2DTextType_Simple, text_position, text_transform,
79  pivot_point, pivot_point_offset, text_string, 0.0f, kGL2DReadDir_LTR,
80  false, text_rect);
81  }
82  inline SDKResult SDK_CALLTYPE MeasureSimpleText_LTR(
83  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
84  const SDKString& text_string, SDKRectF2D& text_rect) const
85  {
86  const SDKPointF2D kZeroPPOffset = { 0.0f, 0.0f };
87  return MeasureSimpleText_LTR(text_position, text_transform,
88  kGL2DTextPivotPoint_Default, kZeroPPOffset, text_string, text_rect);
89  }
90 
92  inline SDKResult SDK_CALLTYPE MeasureSimpleText_RTL(
93  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
94  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
95  const SDKString& text_string, SDKRectF2D& text_rect) const
96  {
97  return MeasureText(kGL2DTextType_Simple, text_position, text_transform,
98  pivot_point, pivot_point_offset, text_string, 0.0f,
99  kGL2DReadDir_RTL, false, text_rect);
100  }
101  inline SDKResult SDK_CALLTYPE MeasureSimpleText_RTL(
102  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
103  const SDKString& text_string, SDKRectF2D& text_rect) const
104  {
105  const SDKPointF2D kZeroPPOffset = { 0.0f, 0.0f };
106  return MeasureSimpleText_RTL(text_position, text_transform,
107  kGL2DTextPivotPoint_Default, kZeroPPOffset, text_string, text_rect);
108  }
109 
111  inline SDKResult SDK_CALLTYPE MeasureBorderedText_LTR(
112  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
113  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
114  const SDKString& text_string, const float& border_width, SDKRectF2D& text_rect) const
115  {
116  return MeasureText(kGL2DTextType_Bordered, text_position, text_transform,
117  pivot_point, pivot_point_offset, text_string, border_width,
118  kGL2DReadDir_LTR, false, text_rect);
119  }
120  inline SDKResult SDK_CALLTYPE MeasureBorderedText_LTR(
121  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
122  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
123  const SDKString& text_string, SDKRectF2D& text_rect) const
124  {
125  const float kUseDefBorderWidth = -1.0f;
126  return MeasureBorderedText_LTR(text_position, text_transform, pivot_point,
127  pivot_point_offset, text_string, kUseDefBorderWidth, text_rect);
128  }
129  inline SDKResult SDK_CALLTYPE MeasureBorderedText_LTR(
130  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
131  const SDKString& text_string, SDKRectF2D& text_rect) const
132  {
133  const SDKPointF2D kZeroPPOffset = { 0.0f, 0.0f };
134  return MeasureBorderedText_LTR(text_position, text_transform,
135  kGL2DTextPivotPoint_Default, kZeroPPOffset, text_string, text_rect);
136  }
137 
139  inline SDKResult SDK_CALLTYPE MeasureBorderedText_RTL(
140  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
141  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
142  const SDKString& text_string, const float& border_width, SDKRectF2D& text_rect) const
143  {
144  return MeasureText(kGL2DTextType_Bordered, text_position, text_transform,
145  pivot_point, pivot_point_offset, text_string, border_width,
146  kGL2DReadDir_RTL, false, text_rect);
147  }
148  inline SDKResult SDK_CALLTYPE MeasureBorderedText_RTL(
149  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
150  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
151  const SDKString& text_string, SDKRectF2D& text_rect) const
152  {
153  const float kUseDefBorderWidth = -1.0f;
154  return MeasureBorderedText_RTL(text_position, text_transform, pivot_point,
155  pivot_point_offset, text_string, kUseDefBorderWidth, text_rect);
156  }
157  inline SDKResult SDK_CALLTYPE MeasureBorderedText_RTL(
158  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
159  const SDKString& text_string, SDKRectF2D& text_rect) const
160  {
161  const SDKPointF2D kZeroPPOffset = { 0.0f, 0.0f };
162  return MeasureBorderedText_RTL(text_position, text_transform,
163  kGL2DTextPivotPoint_Default, kZeroPPOffset, text_string, text_rect);
164  }
165 
167  inline SDKResult SDK_CALLTYPE MeasureLatin1Text(
168  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
169  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
170  const SDKString& text_string, SDKRectF2D& text_rect) const
171  {
172  return MeasureText(kGL2DTextType_Simple, text_position, text_transform,
173  pivot_point, pivot_point_offset, text_string, 0.0f, kGL2DReadDir_LTR,
174  true, text_rect);
175  }
176  inline SDKResult SDK_CALLTYPE MeasureLatin1Text(
177  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
178  const SDKString& text_string, SDKRectF2D& text_rect) const
179  {
180  const SDKPointF2D kZeroPPOffset = { 0.0f, 0.0f };
181  return MeasureLatin1Text(text_position, text_transform,
182  kGL2DTextPivotPoint_Default, kZeroPPOffset, text_string, text_rect);
183  }
184 
187  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
188  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
189  const SDKString& text_string, const float& border_width,
190  SDKRectF2D& text_rect) const
191  {
192  return MeasureText(kGL2DTextType_Bordered, text_position, text_transform,
193  pivot_point, pivot_point_offset, text_string, border_width,
194  kGL2DReadDir_LTR, true, text_rect);
195  }
196  inline SDKResult SDK_CALLTYPE MeasureLatin1BorderedText(
197  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
198  const GL2DTextPivotPoint& pivot_point, const SDKPointF2D& pivot_point_offset,
199  const SDKString& text_string, SDKRectF2D& text_rect) const
200  {
201  const float kUseDefBorderWidth = -1.0f;
202  return MeasureLatin1BorderedText(text_position, text_transform,
203  pivot_point, pivot_point_offset, text_string, kUseDefBorderWidth, text_rect);
204  }
205  inline SDKResult SDK_CALLTYPE MeasureLatin1BorderedText(
206  const SDKPointF2D& text_position, const SDKMatrix3X2& text_transform,
207  const SDKString& text_string, SDKRectF2D& text_rect) const
208  {
209  const SDKPointF2D kZeroPPOffset = { 0.0f, 0.0f };
210  return MeasureLatin1BorderedText(text_position, text_transform,
211  kGL2DTextPivotPoint_Default, kZeroPPOffset, text_string, text_rect);
212  }
213 
214  SDK_IMPLEMENT_IID(IGL2DTextsCalculator)
215  SDK_END_INTERFACE(IGL2DTextsCalculator)
216 };
217 SDK_DECLARE_IID(IGL2DTextsCalculator)
218 
219 SDK_GL2D_END_NAMESPACE
220 
221 #endif // SDK_GL2D_TEXTS_CALCULATOR_INTERFACE_H_
IGL2DTextsCalculator
Set of utilities to perform several tasks regarding texts, like calculations of text size,...
Definition: gl2d_texts_calculator_interface.h:37
IGL2DTextsCalculator::MeasureBorderedText_RTL
SDKResult SDK_CALLTYPE MeasureBorderedText_RTL(const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, const float &border_width, SDKRectF2D &text_rect) const
Measures Bordered right-to-left text.
Definition: gl2d_texts_calculator_interface.h:139
base_types.h
SDK base types.
IGL2DTextsCalculator::MeasureBorderedText_LTR
SDKResult SDK_CALLTYPE MeasureBorderedText_LTR(const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, const float &border_width, SDKRectF2D &text_rect) const
Measures Bordered left-to-right text.
Definition: gl2d_texts_calculator_interface.h:111
IGL2DTextsCalculator::MeasureLatin1BorderedText
SDKResult SDK_CALLTYPE MeasureLatin1BorderedText(const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, const float &border_width, SDKRectF2D &text_rect) const
Measures Latin1 bordered text.
Definition: gl2d_texts_calculator_interface.h:186
properties_interface.h
Object generic properties interface.
GL2DTextPivotPoint
GL2DTextPivotPoint
GL2D Text type.
Definition: gl2d_text_interface.h:60
IGL2DTextsCalculator::MeasureText
virtual SDKResult SDK_CALLTYPE MeasureText(const GL2DTextType &text_type, const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, const float &border_width, const GL2DTextReadingDirection &reading_direction, const bool &as_latin1, SDKRectF2D &text_rect) const =0
Measures given text (calculates appropriate text rectangle) text_position - Text position text_transf...
SDKRectF2D
2D Rectangle
Definition: geometry_base_types.h:1295
IGL2DTextsCalculator::Dump
virtual void SDK_CALLTYPE Dump() const =0
Dumps given object.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
GL2DTextsCalculatorPropertyIDs
GL2DTextsCalculatorPropertyIDs
Generic GL2D Texts Calculator properties.
Definition: gl2d_texts_calculator_interface.h:30
IGL2DTextsCalculator::MeasureSimpleText_LTR
SDKResult SDK_CALLTYPE MeasureSimpleText_LTR(const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, SDKRectF2D &text_rect) const
Measures Simple (non-Latin1) left-to-right text.
Definition: gl2d_texts_calculator_interface.h:73
IGL2DTextsCalculator::GetFontID
virtual GL2DFontID SDK_CALLTYPE GetFontID() const =0
Returns Font ID to use for texts calculations.
gl2d_text_interface.h
GL2D Text object.
IGL2DTextsCalculator::MeasureSimpleText_RTL
SDKResult SDK_CALLTYPE MeasureSimpleText_RTL(const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, SDKRectF2D &text_rect) const
Measures Simple (non-Latin1) right-to-left text.
Definition: gl2d_texts_calculator_interface.h:92
IGL2DTextsCalculator::GetFontSize
virtual float SDK_CALLTYPE GetFontSize() const =0
Returns Font Size to use for texts calculations.
SDKPointF2D
Single 2D point.
Definition: geometry_base_types.h:33
GL2DTextType
GL2DTextType
GL2D Text type.
Definition: gl2d_text_interface.h:43
platform.h
Describes the platform constants.
GL2DFontID
SDKUInt32 GL2DFontID
Font ID.
Definition: gl2d_font_interface.h:29
GL2DTextReadingDirection
GL2DTextReadingDirection
GL2D Text reading direction.
Definition: gl2d_text_interface.h:124
IGL2DCanvas
GL2D Canvas to use to drawing NOTE! Create/Draw functionality was moved to appropriate GL2D Canvas Fu...
Definition: gl2d_canvas_interface.h:435
IGL2DTextsCalculator::MeasureLatin1Text
SDKResult SDK_CALLTYPE MeasureLatin1Text(const SDKPointF2D &text_position, const SDKMatrix3X2 &text_transform, const GL2DTextPivotPoint &pivot_point, const SDKPointF2D &pivot_point_offset, const SDKString &text_string, SDKRectF2D &text_rect) const
Measures Latin1 text.
Definition: gl2d_texts_calculator_interface.h:167
IGL2DTextsCalculator::GetParent
virtual IGL2DCanvasSP SDK_CALLTYPE GetParent() const =0
Returns parent canvas object.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.