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
19namespace libfreehand
20{
21
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
31struct FHBlock
32{
33 unsigned m_layerListId;
35 FHBlock(unsigned layerListId) : m_layerListId(layerListId) {}
36};
37
38struct FHTab
39{
40 unsigned m_type;
41 double m_position;
42 FHTab() : m_type(0), m_position(0) {}
43};
44
45struct FHTail
46{
47 unsigned m_blockId;
48 unsigned m_propLstId;
49 unsigned m_fontId;
52};
53
54struct FHList
55{
56 unsigned m_listType;
57 std::vector<unsigned> m_elements;
59};
60
61struct FHLayer
62{
64 unsigned m_elementsId;
65 unsigned m_visibility;
67};
68
69struct FHGroup
70{
72 unsigned m_elementsId;
73 unsigned m_xFormId;
75};
76
78{
79 unsigned m_elementsId;
80 unsigned m_layerId;
82 unsigned m_shapeId;
83 unsigned m_textSize;
85};
86
88{
90 unsigned m_elementsId;
92};
93
95{
96 unsigned m_paraStyleId;
97 unsigned m_textBlokId;
98 std::vector<std::pair<unsigned, unsigned> > m_charStyleIds;
100};
101
103{
104 unsigned m_fontNameId;
105 unsigned m_fontStyle;
108};
109
111{
113 unsigned m_xFormId;
114 unsigned m_tStringId;
115 unsigned m_vmpObjId;
116 unsigned m_pathId;
117 double m_startX;
118 double m_startY;
119 double m_width;
120 double m_height;
121 unsigned m_beginPos;
122 unsigned m_endPos;
123 unsigned m_colNum;
124 unsigned m_rowNum;
125 double m_colSep;
126 double m_rowSep;
128
131 m_startX(0.0), m_startY(0.0), m_width(0.0), m_height(0.0), m_beginPos(0), m_endPos(0xffff),
132 m_colNum(1), m_rowNum(1), m_colSep(0.0), m_rowSep(0.0), m_rowBreakFirst(0) {}
133};
134
136{
137 std::map<unsigned,unsigned> m_idToIntMap; // id to enum, int map
138 std::map<unsigned,double> m_idToDoubleMap;
139 std::map<unsigned,unsigned> m_idToZoneIdMap;
141 {}
142 bool empty() const
143 {
144 return m_idToIntMap.empty() && m_idToDoubleMap.empty() && m_idToZoneIdMap.empty();
145 }
146};
147
149{
152 unsigned m_fontNameId;
153 unsigned m_fontId;
154 unsigned m_tEffectId;
155 std::map<unsigned,double> m_idToDoubleMap;
158};
159
161{
162 unsigned short m_red;
163 unsigned short m_green;
164 unsigned short m_blue;
166 : m_red(0), m_green(0), m_blue(0) {}
167 bool black() const
168 {
169 return !m_red && !m_green && !m_blue;
170 }
171};
172
174{
175 unsigned short m_cyan;
176 unsigned short m_magenta;
177 unsigned short m_yellow;
178 unsigned short m_black;
180 : m_cyan(0), m_magenta(0), m_yellow(0), m_black(0xffff) {}
181};
182
184{
186 unsigned short m_tint;
188};
189
191{
192 unsigned m_parentId;
193 std::map<unsigned, unsigned> m_elements;
195 : m_parentId(0), m_elements() {}
196};
197
199{
200 unsigned m_colorId;
203 unsigned m_endArrowId;
204 double m_mitter;
205 double m_width;
208 m_endArrowId(0), m_mitter(0.0), m_width(0.0) {}
209};
210
212{
213 unsigned m_colorId;
214 double m_percentPattern; // percentage of 1 in the pattern
215 double m_mitter;
216 double m_width;
218 : m_colorId(0), m_percentPattern(1), m_mitter(0.0), m_width(0.0) {}
219};
220
222{
223 std::vector<unsigned> m_ids;
224 std::vector<double> m_widths;
225 std::vector<double> m_params;
226 std::vector<double> m_angles;
228};
229
231{
232 unsigned m_colorId;
234};
235
237{
238 unsigned m_color1Id;
239 unsigned m_color2Id;
240 double m_angle;
243};
244
246{
247 unsigned m_color1Id;
248 unsigned m_color2Id;
249 double m_cx;
250 double m_cy;
253 : m_color1Id(0), m_color2Id(0), m_cx(0.5), m_cy(0.5), m_multiColorListId(0) {}
254};
255
257{
258 unsigned m_colorId;
259 std::vector<unsigned char> m_pattern;
261};
262
264{
265 unsigned m_offset;
266 unsigned m_fontNameId;
268 unsigned m_fontStyle;
270 unsigned m_textEffsId;
271 double m_leading; // -1 solid, -2 auto, >0 interline in point
277 : m_offset(0), m_fontNameId(0), m_fontSize(12.0), m_fontStyle(0),
279};
280
282{
283 unsigned m_offset;
285};
286
288{
289 unsigned m_nameId;
291 unsigned m_colorId[2];
293 {
294 for (unsigned int &i : m_colorId) i=0;
295 }
296};
298{
300 unsigned m_xFormId;
301 double m_startX;
302 double m_startY;
303 double m_width;
304 double m_height;
305 std::vector<FH3CharProperties> m_charProps;
307 std::vector<FH3ParaProperties> m_paraProps;
308 std::vector<unsigned char> m_characters;
311 m_startX(0.0), m_startY(0.0), m_width(0.0), m_height(0.0),
313};
314
316{
317 unsigned m_parentId;
318 unsigned m_attrId;
319 std::map<unsigned, unsigned> m_elements;
321};
322
324{
325 unsigned m_parentId;
326 unsigned m_attrId;
328};
329
331{
332 unsigned m_parentId;
333 unsigned m_filterId;
336};
337
339{
340 unsigned m_dataSize;
341 std::vector<unsigned> m_elements;
343};
344
346{
348 unsigned m_dataListId;
349 unsigned m_xFormId;
350 double m_startX;
351 double m_startY;
352 double m_width;
353 double m_height;
354 librevenge::RVNGString m_format;
357 m_startX(0.0), m_startY(0.0), m_width(0.0), m_height(0.0),
358 m_format() {}
359};
360
362{
363 unsigned m_colorId;
366};
367
369{
370 unsigned m_colorId;
371 double m_value;
372 unsigned m_mode;
373 FHLensFill() : m_colorId(0), m_value(0.0), m_mode(0) {}
374};
375
377{
379 unsigned m_parentId;
380 unsigned m_list1Id;
381 unsigned m_list2Id;
382 unsigned m_list3Id;
384};
385
387{
388 unsigned m_colorId;
392 double m_opacity;
394 double m_angle;
396 : m_colorId(0), m_knockOut(false), m_inner(false),
397 m_distribution(0.0), m_opacity(1.0), m_smoothness(1.0), m_angle(45.0) {}
398};
399
401{
402 unsigned m_colorId;
404 double m_width;
405 double m_opacity;
409 : m_colorId(0), m_inner(false), m_width(0.0), m_opacity(1.0),
410 m_smoothness(1.0), m_distribution(0.0) {}
411};
412
414{
415 unsigned m_xFormId;
416 unsigned m_groupId;
417 double m_scaleX;
418 double m_scaleY;
419 double m_offsetX;
420 double m_offsetY;
421 double m_angle;
423 : m_xFormId(0), m_groupId(0), m_scaleX(0.0), m_scaleY(0.0),
424 m_offsetX(0.0), m_offsetY(0.0), m_angle(0.0) {}
425};
426
428{
429 std::vector<double> m_dashes;
431 : m_dashes() {}
432};
433
435{
436 unsigned m_nameId;
437 unsigned m_groupId;
438 unsigned m_dateTimeId;
440 unsigned m_listId;
442};
443
445{
447 unsigned m_parentId;
451};
452
454{
455 double m_xmin;
456 double m_ymin;
457 double m_xmax;
458 double m_ymax;
459 FHBoundingBox() : m_xmin(DBL_MAX), m_ymin(DBL_MAX), m_xmax(-DBL_MAX), m_ymax(-DBL_MAX) {}
461 : m_xmin(bBox.m_xmin), m_ymin(bBox.m_ymin), m_xmax(bBox.m_xmax), m_ymax(bBox.m_ymax) {}
462 void merge(const FHBoundingBox &bBox)
463 {
464 if (m_xmin > bBox.m_xmin) m_xmin = bBox.m_xmin;
465 if (m_xmin > bBox.m_xmax) m_xmin = bBox.m_xmax;
466 if (m_ymin > bBox.m_ymin) m_ymin = bBox.m_ymin;
467 if (m_ymin > bBox.m_ymax) m_ymin = bBox.m_ymax;
468 if (m_xmax < bBox.m_xmax) m_xmax = bBox.m_xmax;
469 if (m_xmax < bBox.m_xmin) m_xmax = bBox.m_xmin;
470 if (m_ymax < bBox.m_ymax) m_ymax = bBox.m_ymax;
471 if (m_ymax < bBox.m_ymin) m_ymax = bBox.m_ymin;
472 }
473 bool isValid() const
474 {
475 return ((m_xmin < m_xmax) && (m_ymin < m_ymax));
476 }
477};
478
479} // namespace libfreehand
480
481#endif /* __FHTYPES_H__ */
482/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition FHCollector.h:23
Definition FHTypes.h:264
unsigned m_textEffsId
Definition FHTypes.h:270
double m_leading
Definition FHTypes.h:271
double m_wordSpacing
Definition FHTypes.h:273
double m_fontSize
Definition FHTypes.h:267
unsigned m_offset
Definition FHTypes.h:265
double m_baselineShift
Definition FHTypes.h:275
double m_horizontalScale
Definition FHTypes.h:274
unsigned m_fontColorId
Definition FHTypes.h:269
double m_letterSpacing
Definition FHTypes.h:272
FH3CharProperties()
Definition FHTypes.h:276
unsigned m_fontStyle
Definition FHTypes.h:268
unsigned m_fontNameId
Definition FHTypes.h:266
Definition FHTypes.h:282
unsigned m_offset
Definition FHTypes.h:283
FH3ParaProperties()
Definition FHTypes.h:284
Definition FHTypes.h:103
FHAGDFont()
Definition FHTypes.h:107
unsigned m_fontStyle
Definition FHTypes.h:105
double m_fontSize
Definition FHTypes.h:106
unsigned m_fontNameId
Definition FHTypes.h:104
Definition FHTypes.h:324
unsigned m_attrId
Definition FHTypes.h:326
unsigned m_parentId
Definition FHTypes.h:325
FHAttributeHolder()
Definition FHTypes.h:327
Definition FHTypes.h:231
unsigned m_colorId
Definition FHTypes.h:232
FHBasicFill()
Definition FHTypes.h:233
Definition FHTypes.h:199
FHBasicLine()
Definition FHTypes.h:206
double m_width
Definition FHTypes.h:205
unsigned m_startArrowId
Definition FHTypes.h:202
double m_mitter
Definition FHTypes.h:204
unsigned m_endArrowId
Definition FHTypes.h:203
unsigned m_linePatternId
Definition FHTypes.h:201
unsigned m_colorId
Definition FHTypes.h:200
Definition FHTypes.h:32
unsigned m_layerListId
Definition FHTypes.h:33
FHBlock(unsigned layerListId)
Definition FHTypes.h:35
FHBlock()
Definition FHTypes.h:34
Definition FHTypes.h:454
FHBoundingBox()
Definition FHTypes.h:459
void merge(const FHBoundingBox &bBox)
Definition FHTypes.h:462
double m_xmax
Definition FHTypes.h:457
FHBoundingBox(const FHBoundingBox &bBox)
Definition FHTypes.h:460
double m_xmin
Definition FHTypes.h:455
double m_ymax
Definition FHTypes.h:458
double m_ymin
Definition FHTypes.h:456
bool isValid() const
Definition FHTypes.h:473
Definition FHTypes.h:174
unsigned short m_magenta
Definition FHTypes.h:176
unsigned short m_yellow
Definition FHTypes.h:177
unsigned short m_cyan
Definition FHTypes.h:175
unsigned short m_black
Definition FHTypes.h:178
FHCMYKColor()
Definition FHTypes.h:179
Definition FHTypes.h:149
unsigned m_fontNameId
Definition FHTypes.h:152
unsigned m_textColorId
Definition FHTypes.h:150
std::map< unsigned, double > m_idToDoubleMap
Definition FHTypes.h:155
FHCharProperties()
Definition FHTypes.h:156
double m_fontSize
Definition FHTypes.h:151
unsigned m_tEffectId
Definition FHTypes.h:154
unsigned m_fontId
Definition FHTypes.h:153
Definition FHTypes.h:362
double m_position
Definition FHTypes.h:364
unsigned m_colorId
Definition FHTypes.h:363
FHColorStop()
Definition FHTypes.h:365
Definition FHTypes.h:88
FHCompositePath()
Definition FHTypes.h:91
unsigned m_graphicStyleId
Definition FHTypes.h:89
unsigned m_elementsId
Definition FHTypes.h:90
Definition FHTypes.h:222
FHCustomProc()
Definition FHTypes.h:227
std::vector< double > m_params
Definition FHTypes.h:225
std::vector< unsigned > m_ids
Definition FHTypes.h:223
std::vector< double > m_angles
Definition FHTypes.h:226
std::vector< double > m_widths
Definition FHTypes.h:224
Definition FHTypes.h:339
unsigned m_dataSize
Definition FHTypes.h:340
std::vector< unsigned > m_elements
Definition FHTypes.h:341
FHDataList()
Definition FHTypes.h:342
Definition FHTypes.h:298
std::vector< FH3CharProperties > m_charProps
Definition FHTypes.h:305
FHDisplayText()
Definition FHTypes.h:309
double m_height
Definition FHTypes.h:304
unsigned m_graphicStyleId
Definition FHTypes.h:299
std::vector< FH3ParaProperties > m_paraProps
Definition FHTypes.h:307
int m_justify
Definition FHTypes.h:306
std::vector< unsigned char > m_characters
Definition FHTypes.h:308
unsigned m_xFormId
Definition FHTypes.h:300
double m_startX
Definition FHTypes.h:301
double m_width
Definition FHTypes.h:303
double m_startY
Definition FHTypes.h:302
Definition FHTypes.h:331
FHFilterAttributeHolder()
Definition FHTypes.h:335
unsigned m_filterId
Definition FHTypes.h:333
unsigned m_graphicStyleId
Definition FHTypes.h:334
unsigned m_parentId
Definition FHTypes.h:332
Definition FHTypes.h:316
unsigned m_parentId
Definition FHTypes.h:317
unsigned m_attrId
Definition FHTypes.h:318
FHGraphicStyle()
Definition FHTypes.h:320
std::map< unsigned, unsigned > m_elements
Definition FHTypes.h:319
Definition FHTypes.h:70
unsigned m_xFormId
Definition FHTypes.h:73
unsigned m_elementsId
Definition FHTypes.h:72
FHGroup()
Definition FHTypes.h:74
unsigned m_graphicStyleId
Definition FHTypes.h:71
Definition FHTypes.h:346
double m_width
Definition FHTypes.h:352
double m_startX
Definition FHTypes.h:350
unsigned m_dataListId
Definition FHTypes.h:348
unsigned m_graphicStyleId
Definition FHTypes.h:347
unsigned m_xFormId
Definition FHTypes.h:349
double m_height
Definition FHTypes.h:353
FHImageImport()
Definition FHTypes.h:355
librevenge::RVNGString m_format
Definition FHTypes.h:354
double m_startY
Definition FHTypes.h:351
Definition FHTypes.h:62
unsigned m_elementsId
Definition FHTypes.h:64
unsigned m_graphicStyleId
Definition FHTypes.h:63
FHLayer()
Definition FHTypes.h:66
unsigned m_visibility
Definition FHTypes.h:65
Definition FHTypes.h:369
double m_value
Definition FHTypes.h:371
FHLensFill()
Definition FHTypes.h:373
unsigned m_colorId
Definition FHTypes.h:370
unsigned m_mode
Definition FHTypes.h:372
Definition FHTypes.h:428
std::vector< double > m_dashes
Definition FHTypes.h:429
FHLinePattern()
Definition FHTypes.h:430
Definition FHTypes.h:237
unsigned m_color2Id
Definition FHTypes.h:239
double m_angle
Definition FHTypes.h:240
unsigned m_color1Id
Definition FHTypes.h:238
FHLinearFill()
Definition FHTypes.h:242
unsigned m_multiColorListId
Definition FHTypes.h:241
Definition FHTypes.h:55
std::vector< unsigned > m_elements
Definition FHTypes.h:57
unsigned m_listType
Definition FHTypes.h:56
FHList()
Definition FHTypes.h:58
Definition FHTypes.h:377
unsigned m_list2Id
Definition FHTypes.h:381
FHNewBlend()
Definition FHTypes.h:383
unsigned m_parentId
Definition FHTypes.h:379
unsigned m_list1Id
Definition FHTypes.h:380
unsigned m_graphicStyleId
Definition FHTypes.h:378
unsigned m_list3Id
Definition FHTypes.h:382
Definition FHTypes.h:23
double m_minY
Definition FHTypes.h:25
FHPageInfo()
Definition FHTypes.h:28
double m_maxY
Definition FHTypes.h:27
double m_minX
Definition FHTypes.h:24
double m_maxX
Definition FHTypes.h:26
Definition FHTypes.h:136
std::map< unsigned, unsigned > m_idToIntMap
Definition FHTypes.h:137
std::map< unsigned, double > m_idToDoubleMap
Definition FHTypes.h:138
FHParagraphProperties()
Definition FHTypes.h:140
bool empty() const
Definition FHTypes.h:142
std::map< unsigned, unsigned > m_idToZoneIdMap
Definition FHTypes.h:139
Definition FHTypes.h:95
unsigned m_textBlokId
Definition FHTypes.h:97
unsigned m_paraStyleId
Definition FHTypes.h:96
FHParagraph()
Definition FHTypes.h:99
std::vector< std::pair< unsigned, unsigned > > m_charStyleIds
Definition FHTypes.h:98
Definition FHTypes.h:78
unsigned m_elementsId
Definition FHTypes.h:79
unsigned m_textSize
Definition FHTypes.h:83
unsigned m_displayTextId
Definition FHTypes.h:81
unsigned m_layerId
Definition FHTypes.h:80
unsigned m_shapeId
Definition FHTypes.h:82
FHPathText()
Definition FHTypes.h:84
Definition FHTypes.h:257
std::vector< unsigned char > m_pattern
Definition FHTypes.h:259
unsigned m_colorId
Definition FHTypes.h:258
FHPatternFill()
Definition FHTypes.h:260
Definition FHTypes.h:212
double m_mitter
Definition FHTypes.h:215
double m_width
Definition FHTypes.h:216
double m_percentPattern
Definition FHTypes.h:214
FHPatternLine()
Definition FHTypes.h:217
unsigned m_colorId
Definition FHTypes.h:213
Definition FHTypes.h:191
std::map< unsigned, unsigned > m_elements
Definition FHTypes.h:193
FHPropList()
Definition FHTypes.h:194
unsigned m_parentId
Definition FHTypes.h:192
Definition FHTypes.h:161
unsigned short m_red
Definition FHTypes.h:162
bool black() const
Definition FHTypes.h:167
FHRGBColor()
Definition FHTypes.h:165
unsigned short m_green
Definition FHTypes.h:163
unsigned short m_blue
Definition FHTypes.h:164
Definition FHTypes.h:246
double m_cy
Definition FHTypes.h:250
double m_cx
Definition FHTypes.h:249
FHRadialFill()
Definition FHTypes.h:252
unsigned m_color1Id
Definition FHTypes.h:247
unsigned m_multiColorListId
Definition FHTypes.h:251
unsigned m_color2Id
Definition FHTypes.h:248
Definition FHTypes.h:435
FHSymbolClass()
Definition FHTypes.h:441
unsigned m_symbolLibraryId
Definition FHTypes.h:439
unsigned m_nameId
Definition FHTypes.h:436
unsigned m_dateTimeId
Definition FHTypes.h:438
unsigned m_groupId
Definition FHTypes.h:437
unsigned m_listId
Definition FHTypes.h:440
Definition FHTypes.h:445
unsigned m_graphicStyleId
Definition FHTypes.h:446
unsigned m_symbolClassId
Definition FHTypes.h:448
FHSymbolInstance()
Definition FHTypes.h:450
unsigned m_parentId
Definition FHTypes.h:447
FHTransform m_xForm
Definition FHTypes.h:449
Definition FHTypes.h:288
unsigned m_colorId[2]
Definition FHTypes.h:291
unsigned m_nameId
Definition FHTypes.h:289
FHTEffect()
Definition FHTypes.h:292
unsigned m_shortNameId
Definition FHTypes.h:290
Definition FHTypes.h:39
unsigned m_type
Definition FHTypes.h:40
double m_position
Definition FHTypes.h:41
FHTab()
Definition FHTypes.h:42
Definition FHTypes.h:46
FHPageInfo m_pageInfo
Definition FHTypes.h:50
unsigned m_fontId
Definition FHTypes.h:49
unsigned m_blockId
Definition FHTypes.h:47
FHTail()
Definition FHTypes.h:51
unsigned m_propLstId
Definition FHTypes.h:48
Definition FHTypes.h:111
unsigned m_xFormId
Definition FHTypes.h:113
unsigned m_pathId
Definition FHTypes.h:116
double m_rowSep
Definition FHTypes.h:126
unsigned m_endPos
Definition FHTypes.h:122
unsigned m_beginPos
Definition FHTypes.h:121
double m_startY
Definition FHTypes.h:118
unsigned m_rowNum
Definition FHTypes.h:124
double m_height
Definition FHTypes.h:120
FHTextObject()
Definition FHTypes.h:129
double m_colSep
Definition FHTypes.h:125
unsigned m_vmpObjId
Definition FHTypes.h:115
unsigned m_colNum
Definition FHTypes.h:123
unsigned m_tStringId
Definition FHTypes.h:114
unsigned m_graphicStyleId
Definition FHTypes.h:112
unsigned m_rowBreakFirst
Definition FHTypes.h:127
double m_width
Definition FHTypes.h:119
double m_startX
Definition FHTypes.h:117
Definition FHTypes.h:414
double m_scaleY
Definition FHTypes.h:418
double m_offsetX
Definition FHTypes.h:419
double m_offsetY
Definition FHTypes.h:420
FHTileFill()
Definition FHTypes.h:422
double m_scaleX
Definition FHTypes.h:417
unsigned m_xFormId
Definition FHTypes.h:415
double m_angle
Definition FHTypes.h:421
unsigned m_groupId
Definition FHTypes.h:416
Definition FHTypes.h:184
unsigned m_baseColorId
Definition FHTypes.h:185
unsigned short m_tint
Definition FHTypes.h:186
FHTintColor()
Definition FHTypes.h:187
Definition FHTransform.h:19
Definition FHTypes.h:401
double m_opacity
Definition FHTypes.h:405
double m_distribution
Definition FHTypes.h:407
bool m_inner
Definition FHTypes.h:403
double m_width
Definition FHTypes.h:404
double m_smoothness
Definition FHTypes.h:406
unsigned m_colorId
Definition FHTypes.h:402
FWGlowFilter()
Definition FHTypes.h:408
Definition FHTypes.h:387
double m_smoothness
Definition FHTypes.h:393
unsigned m_colorId
Definition FHTypes.h:388
bool m_inner
Definition FHTypes.h:390
double m_angle
Definition FHTypes.h:394
FWShadowFilter()
Definition FHTypes.h:395
double m_opacity
Definition FHTypes.h:392
bool m_knockOut
Definition FHTypes.h:389
double m_distribution
Definition FHTypes.h:391

Generated for libfreehand by doxygen 1.9.7