FHTypes.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libfreehand project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef __FHTYPES_H__
11 #define __FHTYPES_H__
12 
13 #include <float.h>
14 #include <vector>
15 #include <map>
16 #include "FHPath.h"
17 #include "FHTransform.h"
18 
19 namespace libfreehand
20 {
21 
22 struct FHPageInfo
23 {
24  double m_minX;
25  double m_minY;
26  double m_maxX;
27  double m_maxY;
28  FHPageInfo() : m_minX(0.0), m_minY(0.0), m_maxX(0.0), m_maxY(0.0) {}
29 };
30 
31 struct FHBlock
32 {
33  unsigned m_layerListId;
35  FHBlock(unsigned layerListId) : m_layerListId(layerListId) {}
36 };
37 
38 struct FHTail
39 {
40  unsigned m_blockId;
41  unsigned m_propLstId;
42  unsigned m_fontId;
45 };
46 
47 struct FHList
48 {
49  unsigned m_listType;
50  std::vector<unsigned> m_elements;
52 };
53 
54 struct FHLayer
55 {
56  unsigned m_graphicStyleId;
57  unsigned m_elementsId;
58  unsigned m_visibility;
60 };
61 
62 struct FHGroup
63 {
64  unsigned m_graphicStyleId;
65  unsigned m_elementsId;
66  unsigned m_xFormId;
68 };
69 
71 {
72  unsigned m_graphicStyleId;
73  unsigned m_elementsId;
75 };
76 
78 {
79  unsigned m_paraStyleId;
80  unsigned m_textBlokId;
81  std::vector<std::pair<unsigned, unsigned> > m_charStyleIds;
83 };
84 
85 struct FHAGDFont
86 {
87  unsigned m_fontNameId;
88  unsigned m_fontStyle;
89  double m_fontSize;
91 };
92 
94 {
95  unsigned m_graphicStyleId;
96  unsigned m_xFormId;
97  unsigned m_tStringId;
98  unsigned m_vmpObjId;
99  double m_startX;
100  double m_startY;
101  double m_width;
102  double m_height;
103 
106  m_startX(0.0), m_startY(0.0), m_width(0.0), m_height(0.0) {}
107 };
108 
110 {
111 };
112 
114 {
115  unsigned m_textColorId;
116  double m_fontSize;
117  unsigned m_fontNameId;
118  unsigned m_fontId;
121  : m_textColorId(0), m_fontSize(12.0), m_fontNameId(0), m_fontId(0), m_horizontalScale(1.0) {}
122 };
123 
125 {
126  unsigned short m_red;
127  unsigned short m_green;
128  unsigned short m_blue;
130  : m_red(0), m_green(0), m_blue(0) {}
131  bool black() const
132  {
133  return !m_red && !m_green && !m_blue;
134  }
135 };
136 
138 {
139  unsigned short m_cyan;
140  unsigned short m_magenta;
141  unsigned short m_yellow;
142  unsigned short m_black;
144  : m_cyan(0), m_magenta(0), m_yellow(0), m_black(0xffff) {}
145 };
146 
148 {
149  unsigned m_baseColorId;
150  unsigned short m_tint;
152 };
153 
155 {
156  unsigned m_parentId;
157  std::map<unsigned, unsigned> m_elements;
159  : m_parentId(0), m_elements() {}
160 };
161 
163 {
164  unsigned m_colorId;
165  unsigned m_linePatternId;
166  unsigned m_startArrowId;
167  unsigned m_endArrowId;
168  double m_mitter;
169  double m_width;
172  m_endArrowId(0), m_mitter(0.0), m_width(0.0) {}
173 };
174 
176 {
177  unsigned m_colorId;
179 };
180 
182 {
183  unsigned m_color1Id;
184  unsigned m_color2Id;
185  double m_angle;
188 };
189 
191 {
192  unsigned m_color1Id;
193  unsigned m_color2Id;
194  double m_cx;
195  double m_cy;
198  : m_color1Id(0), m_color2Id(0), m_cx(0.5), m_cy(0.5), m_multiColorListId(0) {}
199 };
200 
202 {
203  unsigned m_colorId;
204  std::vector<unsigned char> m_pattern;
206 };
207 
209 {
210  unsigned m_offset;
211  unsigned m_fontNameId;
212  double m_fontSize;
213  unsigned m_fontStyle;
214  unsigned m_fontColorId;
215  unsigned m_textEffsId;
218  : m_offset(0), m_fontNameId(0), m_fontSize(12.0), m_fontStyle(0),
220 };
221 
223 {
224  unsigned m_offset;
226 };
227 
229 {
231  unsigned m_xFormId;
232  double m_startX;
233  double m_startY;
234  double m_width;
235  double m_height;
236  std::vector<FH3CharProperties> m_charProps;
237  std::vector<FH3ParaProperties> m_paraProps;
238  std::vector<unsigned char> m_characters;
240  : m_graphicStyleId(0), m_xFormId(0),
241  m_startX(0.0), m_startY(0.0), m_width(0.0), m_height(0.0),
243 };
244 
246 {
247  unsigned m_parentId;
248  unsigned m_attrId;
249  std::map<unsigned, unsigned> m_elements;
251 };
252 
254 {
255  unsigned m_parentId;
256  unsigned m_attrId;
258 };
259 
261 {
262  unsigned m_parentId;
263  unsigned m_filterId;
266 };
267 
269 {
270  unsigned m_dataSize;
271  std::vector<unsigned> m_elements;
273 };
274 
276 {
278  unsigned m_dataListId;
279  unsigned m_xFormId;
280  double m_startX;
281  double m_startY;
282  double m_width;
283  double m_height;
284  librevenge::RVNGString m_format;
287  m_startX(0.0), m_startY(0.0), m_width(0.0), m_height(0.0),
288  m_format() {}
289 };
290 
292 {
293  unsigned m_colorId;
294  double m_position;
296 };
297 
299 {
300  unsigned m_colorId;
301  double m_value;
302  unsigned m_mode;
303  FHLensFill() : m_colorId(0), m_value(0.0), m_mode(0) {}
304 };
305 
307 {
309  unsigned m_parentId;
310  unsigned m_list1Id;
311  unsigned m_list2Id;
312  unsigned m_list3Id;
314 };
315 
317 {
318  unsigned m_colorId;
320  bool m_inner;
322  double m_opacity;
323  double m_smoothness;
324  double m_angle;
326  : m_colorId(0), m_knockOut(false), m_inner(false),
327  m_distribution(0.0), m_opacity(1.0), m_smoothness(1.0), m_angle(45.0) {}
328 };
329 
331 {
332  unsigned m_colorId;
333  bool m_inner;
334  double m_width;
335  double m_opacity;
336  double m_smoothness;
339  : m_colorId(0), m_inner(false), m_width(0.0), m_opacity(1.0),
340  m_smoothness(1.0), m_distribution(0.0) {}
341 };
342 
344 {
345  unsigned m_xFormId;
346  unsigned m_groupId;
347  double m_scaleX;
348  double m_scaleY;
349  double m_offsetX;
350  double m_offsetY;
351  double m_angle;
353  : m_xFormId(0), m_groupId(0), m_scaleX(0.0), m_scaleY(0.0),
354  m_offsetX(0.0), m_offsetY(0.0), m_angle(0.0) {}
355 };
356 
358 {
359  unsigned m_nameId;
360  unsigned m_groupId;
361  unsigned m_dateTimeId;
363  unsigned m_listId;
365 };
366 
368 {
370  unsigned m_parentId;
371  unsigned m_symbolClassId;
374 };
375 
377 {
378  double m_xmin;
379  double m_ymin;
380  double m_xmax;
381  double m_ymax;
382  FHBoundingBox() : m_xmin(DBL_MAX), m_ymin(DBL_MAX), m_xmax(-DBL_MAX), m_ymax(-DBL_MAX) {}
384  : m_xmin(bBox.m_xmin), m_ymin(bBox.m_ymin), m_xmax(bBox.m_xmax), m_ymax(bBox.m_ymax) {}
385  void merge(const FHBoundingBox &bBox)
386  {
387  if (m_xmin > bBox.m_xmin) m_xmin = bBox.m_xmin;
388  if (m_xmin > bBox.m_xmax) m_xmin = bBox.m_xmax;
389  if (m_ymin > bBox.m_ymin) m_ymin = bBox.m_ymin;
390  if (m_ymin > bBox.m_ymax) m_ymin = bBox.m_ymax;
391  if (m_xmax < bBox.m_xmax) m_xmax = bBox.m_xmax;
392  if (m_xmax < bBox.m_xmin) m_xmax = bBox.m_xmin;
393  if (m_ymax < bBox.m_ymax) m_ymax = bBox.m_ymax;
394  if (m_ymax < bBox.m_ymin) m_ymax = bBox.m_ymin;
395  }
396  bool isValid() const
397  {
398  return ((m_xmin < m_xmax) && (m_ymin < m_ymax));
399  }
400 };
401 
402 } // namespace libfreehand
403 
404 #endif /* __FHTYPES_H__ */
405 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
std::vector< unsigned > m_elements
Definition: FHTypes.h:271
FHBlock(unsigned layerListId)
Definition: FHTypes.h:35
unsigned m_color1Id
Definition: FHTypes.h:192
unsigned m_color2Id
Definition: FHTypes.h:193
Definition: FHTypes.h:62
unsigned m_graphicStyleId
Definition: FHTypes.h:264
unsigned m_colorId
Definition: FHTypes.h:300
FHPageInfo()
Definition: FHTypes.h:28
unsigned m_dataSize
Definition: FHTypes.h:270
unsigned m_graphicStyleId
Definition: FHTypes.h:369
FWShadowFilter()
Definition: FHTypes.h:325
unsigned m_colorId
Definition: FHTypes.h:164
double m_height
Definition: FHTypes.h:102
unsigned m_elementsId
Definition: FHTypes.h:57
double m_width
Definition: FHTypes.h:234
FH3ParaProperties()
Definition: FHTypes.h:225
unsigned m_list2Id
Definition: FHTypes.h:311
double m_position
Definition: FHTypes.h:294
unsigned m_textBlokId
Definition: FHTypes.h:80
unsigned short m_magenta
Definition: FHTypes.h:140
FHRadialFill()
Definition: FHTypes.h:197
Definition: FHTypes.h:228
Definition: FHTypes.h:147
FHTileFill()
Definition: FHTypes.h:352
Definition: FHTypes.h:22
FHTintColor()
Definition: FHTypes.h:151
FHTail()
Definition: FHTypes.h:44
Definition: FHTypes.h:93
double m_angle
Definition: FHTypes.h:185
unsigned m_dateTimeId
Definition: FHTypes.h:361
Definition: FHTypes.h:201
std::vector< std::pair< unsigned, unsigned > > m_charStyleIds
Definition: FHTypes.h:81
bool m_inner
Definition: FHTypes.h:320
Definition: FHTypes.h:367
double m_horizontalScale
Definition: FHTypes.h:119
FH3CharProperties()
Definition: FHTypes.h:217
Definition: FHTypes.h:208
Definition: FHTypes.h:77
unsigned m_offset
Definition: FHTypes.h:210
FHAGDFont()
Definition: FHTypes.h:90
unsigned m_graphicStyleId
Definition: FHTypes.h:277
unsigned m_xFormId
Definition: FHTypes.h:96
Definition: FHTypes.h:222
FHNewBlend()
Definition: FHTypes.h:313
unsigned m_offset
Definition: FHTypes.h:224
FHGraphicStyle()
Definition: FHTypes.h:250
std::vector< unsigned char > m_characters
Definition: FHTypes.h:238
double m_offsetX
Definition: FHTypes.h:349
unsigned m_graphicStyleId
Definition: FHTypes.h:56
double m_ymin
Definition: FHTypes.h:379
double m_fontSize
Definition: FHTypes.h:116
bool m_knockOut
Definition: FHTypes.h:319
FHColorStop()
Definition: FHTypes.h:295
unsigned m_mode
Definition: FHTypes.h:302
FHCMYKColor()
Definition: FHTypes.h:143
unsigned m_colorId
Definition: FHTypes.h:332
Definition: FHTypes.h:113
unsigned m_listType
Definition: FHTypes.h:49
double m_height
Definition: FHTypes.h:283
double m_cy
Definition: FHTypes.h:195
double m_angle
Definition: FHTypes.h:324
unsigned m_linePatternId
Definition: FHTypes.h:165
unsigned m_color1Id
Definition: FHTypes.h:183
unsigned m_multiColorListId
Definition: FHTypes.h:196
Definition: FHTypes.h:162
Definition: FHTypes.h:260
FHFilterAttributeHolder()
Definition: FHTypes.h:265
double m_smoothness
Definition: FHTypes.h:336
FHAttributeHolder()
Definition: FHTypes.h:257
FHCompositePath()
Definition: FHTypes.h:74
bool isValid() const
Definition: FHTypes.h:396
double m_startY
Definition: FHTypes.h:281
double m_cx
Definition: FHTypes.h:194
unsigned m_parentId
Definition: FHTypes.h:262
Definition: FHTypes.h:154
unsigned m_xFormId
Definition: FHTypes.h:345
Definition: FHTypes.h:70
double m_maxY
Definition: FHTypes.h:27
bool black() const
Definition: FHTypes.h:131
unsigned m_baseColorId
Definition: FHTypes.h:149
unsigned m_colorId
Definition: FHTypes.h:203
double m_startX
Definition: FHTypes.h:99
double m_fontSize
Definition: FHTypes.h:89
unsigned m_filterId
Definition: FHTypes.h:263
double m_height
Definition: FHTypes.h:235
double m_scaleY
Definition: FHTypes.h:348
FHCharProperties()
Definition: FHTypes.h:120
unsigned m_symbolClassId
Definition: FHTypes.h:371
FHDataList()
Definition: FHTypes.h:272
FHTextObject()
Definition: FHTypes.h:104
double m_startX
Definition: FHTypes.h:280
double m_width
Definition: FHTypes.h:334
FHTransform m_xForm
Definition: FHTypes.h:372
std::vector< unsigned char > m_pattern
Definition: FHTypes.h:204
Definition: FHTypes.h:31
Definition: FHTypes.h:357
unsigned m_color2Id
Definition: FHTypes.h:184
Definition: FHTypes.h:181
Definition: FHTypes.h:330
unsigned m_fontStyle
Definition: FHTypes.h:88
unsigned m_blockId
Definition: FHTypes.h:40
double m_baselineShift
Definition: FHTypes.h:216
double m_mitter
Definition: FHTypes.h:168
double m_opacity
Definition: FHTypes.h:335
unsigned m_colorId
Definition: FHTypes.h:318
FHGroup()
Definition: FHTypes.h:67
FHBoundingBox(const FHBoundingBox &bBox)
Definition: FHTypes.h:383
unsigned m_vmpObjId
Definition: FHTypes.h:98
Definition: FHTypes.h:291
FHPageInfo m_pageInfo
Definition: FHTypes.h:43
unsigned m_parentId
Definition: FHTypes.h:247
unsigned m_graphicStyleId
Definition: FHTypes.h:230
unsigned m_colorId
Definition: FHTypes.h:293
unsigned m_fontId
Definition: FHTypes.h:118
FHSymbolClass()
Definition: FHTypes.h:364
librevenge::RVNGString m_format
Definition: FHTypes.h:284
unsigned m_list1Id
Definition: FHTypes.h:310
Definition: FHTypes.h:175
unsigned m_parentId
Definition: FHTypes.h:370
double m_angle
Definition: FHTypes.h:351
unsigned m_elementsId
Definition: FHTypes.h:65
unsigned m_endArrowId
Definition: FHTypes.h:167
std::vector< FH3ParaProperties > m_paraProps
Definition: FHTypes.h:237
double m_offsetY
Definition: FHTypes.h:350
FHList()
Definition: FHTypes.h:51
FHPropList()
Definition: FHTypes.h:158
FHImageImport()
Definition: FHTypes.h:285
Definition: FHTypes.h:137
unsigned m_xFormId
Definition: FHTypes.h:279
unsigned m_attrId
Definition: FHTypes.h:248
FHRGBColor()
Definition: FHTypes.h:129
FHLinearFill()
Definition: FHTypes.h:187
double m_fontSize
Definition: FHTypes.h:212
double m_minX
Definition: FHTypes.h:24
FWGlowFilter()
Definition: FHTypes.h:338
unsigned short m_tint
Definition: FHTypes.h:150
Definition: FHTypes.h:38
unsigned m_attrId
Definition: FHTypes.h:256
unsigned short m_cyan
Definition: FHTypes.h:139
FHLensFill()
Definition: FHTypes.h:303
unsigned short m_blue
Definition: FHTypes.h:128
Definition: FHTypes.h:376
unsigned m_fontColorId
Definition: FHTypes.h:214
double m_maxX
Definition: FHTypes.h:26
unsigned m_nameId
Definition: FHTypes.h:359
double m_startY
Definition: FHTypes.h:233
double m_startX
Definition: FHTypes.h:232
Definition: FHTypes.h:54
unsigned m_fontNameId
Definition: FHTypes.h:117
Definition: FHTypes.h:275
unsigned m_colorId
Definition: FHTypes.h:177
unsigned m_layerListId
Definition: FHTypes.h:33
Definition: FHTypes.h:245
double m_xmax
Definition: FHTypes.h:380
Definition: FHTypes.h:343
unsigned short m_green
Definition: FHTypes.h:127
double m_opacity
Definition: FHTypes.h:322
Definition: FHTransform.h:18
unsigned m_multiColorListId
Definition: FHTypes.h:186
FHLayer()
Definition: FHTypes.h:59
Definition: FHTypes.h:47
unsigned m_groupId
Definition: FHTypes.h:346
FHBasicLine()
Definition: FHTypes.h:170
Definition: FHTypes.h:316
double m_distribution
Definition: FHTypes.h:337
unsigned m_list3Id
Definition: FHTypes.h:312
double m_distribution
Definition: FHTypes.h:321
unsigned m_graphicStyleId
Definition: FHTypes.h:95
unsigned m_parentId
Definition: FHTypes.h:309
double m_value
Definition: FHTypes.h:301
double m_xmin
Definition: FHTypes.h:378
FHSymbolInstance()
Definition: FHTypes.h:373
FHBoundingBox()
Definition: FHTypes.h:382
unsigned m_groupId
Definition: FHTypes.h:360
Definition: FHTypes.h:298
unsigned m_textColorId
Definition: FHTypes.h:115
double m_scaleX
Definition: FHTypes.h:347
unsigned m_listId
Definition: FHTypes.h:363
unsigned m_fontStyle
Definition: FHTypes.h:213
unsigned m_xFormId
Definition: FHTypes.h:66
Definition: FHTypes.h:190
unsigned short m_red
Definition: FHTypes.h:126
Definition: FHTypes.h:85
unsigned short m_yellow
Definition: FHTypes.h:141
FHPatternFill()
Definition: FHTypes.h:205
Definition: FHTypes.h:124
unsigned m_graphicStyleId
Definition: FHTypes.h:308
Definition: FHTypes.h:268
unsigned m_tStringId
Definition: FHTypes.h:97
double m_width
Definition: FHTypes.h:169
unsigned m_fontNameId
Definition: FHTypes.h:87
double m_width
Definition: FHTypes.h:282
FHBlock()
Definition: FHTypes.h:34
double m_startY
Definition: FHTypes.h:100
unsigned m_graphicStyleId
Definition: FHTypes.h:72
bool m_inner
Definition: FHTypes.h:333
unsigned m_symbolLibraryId
Definition: FHTypes.h:362
unsigned m_textEffsId
Definition: FHTypes.h:215
std::map< unsigned, unsigned > m_elements
Definition: FHTypes.h:249
FHBasicFill()
Definition: FHTypes.h:178
FHParagraph()
Definition: FHTypes.h:82
unsigned m_parentId
Definition: FHTypes.h:156
void merge(const FHBoundingBox &bBox)
Definition: FHTypes.h:385
unsigned m_parentId
Definition: FHTypes.h:255
Definition: FHTypes.h:306
unsigned m_startArrowId
Definition: FHTypes.h:166
double m_width
Definition: FHTypes.h:101
FHDisplayText()
Definition: FHTypes.h:239
double m_smoothness
Definition: FHTypes.h:323
unsigned m_visibility
Definition: FHTypes.h:58
unsigned m_xFormId
Definition: FHTypes.h:231
unsigned m_dataListId
Definition: FHTypes.h:278
double m_ymax
Definition: FHTypes.h:381
unsigned m_fontNameId
Definition: FHTypes.h:211
unsigned m_propLstId
Definition: FHTypes.h:41
unsigned m_graphicStyleId
Definition: FHTypes.h:64
double m_minY
Definition: FHTypes.h:25
std::vector< unsigned > m_elements
Definition: FHTypes.h:50
std::vector< FH3CharProperties > m_charProps
Definition: FHTypes.h:236
unsigned m_elementsId
Definition: FHTypes.h:73
unsigned m_fontId
Definition: FHTypes.h:42
Definition: FHTypes.h:253
unsigned m_paraStyleId
Definition: FHTypes.h:79
unsigned short m_black
Definition: FHTypes.h:142
Definition: FHTypes.h:109
std::map< unsigned, unsigned > m_elements
Definition: FHTypes.h:157

Generated for libfreehand by doxygen 1.8.5