ZMF4Parser.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 a part of the libzmf 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 ZMF4PARSER_H_INCLUDED
11 #define ZMF4PARSER_H_INCLUDED
12 
13 #include <librevenge/librevenge.h>
14 #include "libzmf_utils.h"
15 #include "ZMF4Header.h"
16 #include "ZMFCollector.h"
17 #include "ZMFTypes.h"
18 #include <functional>
19 #include <vector>
20 #include <map>
21 #include <boost/optional.hpp>
22 
23 namespace libzmf
24 {
25 
27 {
28  // disable copying
29  ZMF4Parser(const ZMF4Parser &other) = delete;
30  ZMF4Parser &operator=(const ZMF4Parser &other) = delete;
31 
32 public:
33  ZMF4Parser(const RVNGInputStreamPtr &input, librevenge::RVNGDrawingInterface *painter);
34  bool parse();
35 
36 private:
37  enum class ObjectType
38  {
39  UNKNOWN,
40  FILL,
42  PEN,
43  SHADOW,
44  ARROW,
45  FONT,
46  PARAGRAPH,
47  TEXT,
48  BITMAP,
49  PAGE_START,
50  GUIDELINES,
51  PAGE_END,
53  LAYER_END,
56  RECTANGLE,
57  ELLIPSE,
58  POLYGON,
59  CURVE,
60  IMAGE,
61  TEXT_FRAME,
62  TABLE,
64  GROUP_END
65  };
66 
67  struct ObjectHeader
68  {
70  uint32_t size;
71  uint32_t nextObjectOffset;
72  boost::optional<uint32_t> id;
73  uint32_t refObjCount;
75 
77  : type()
78  , size(0)
79  , nextObjectOffset(0)
80  , id()
81  , refObjCount(0)
83  { }
84  };
85 
86  struct ObjectRef
87  {
88  uint32_t id;
89  uint32_t tag;
90  };
91 
92  static ObjectType parseObjectType(uint8_t type);
93 
95 
96  std::vector<ObjectRef> readObjectRefs();
97 
98  boost::optional<Fill> getFillByRefId(uint32_t id);
99  boost::optional<Pen> getPenByRefId(uint32_t id);
100  boost::optional<Shadow> getShadowByRefId(uint32_t id);
101  boost::optional<Transparency> getTransparencyByRefId(uint32_t id);
102  boost::optional<Font> getFontByRefId(uint32_t id);
103  boost::optional<ParagraphStyle> getParagraphStyleByRefId(uint32_t id);
104  boost::optional<Text> getTextByRefId(uint32_t id);
105  boost::optional<Image> getImageByRefId(uint32_t id);
106  ArrowPtr getArrowByRefId(uint32_t id);
107 
108  Style readStyle();
109 
110  Point readPoint();
112 
114 
115  void readCurveSectionTypes(std::vector<CurveType> &sectionTypes);
116  std::vector<Curve> readCurveComponents(std::function<Point()> readPointFunc);
117 
118  Color readColor();
119  Gradient readGradient(uint32_t type);
120 
121  void readPreviewBitmap();
122 
123  void readDocumentSettings();
124  void readPage();
125  void readLayer(const ObjectHeader &layerStartObjHeader);
126 
127  void readPen();
128  void readFill();
129  void readTransparency();
130  void readShadow();
131 
132  void readArrow();
133 
134  void readBitmap();
135 
136  void readImage();
137 
138  void readFont();
139  void readParagraphStyle();
140  void readText();
141 
142  void readTextFrame();
143 
144  void readCurve();
145  void readRectangle();
146  void readEllipse();
147  void readPolygon();
148 
149  void readTable();
150 
152  uint32_t m_inputLength;
153 
155 
157 
159 
161 
163 
164  std::map<uint32_t, Pen> m_pens;
165  std::map<uint32_t, Fill> m_fills;
166  std::map<uint32_t, Transparency> m_transparencies;
167  std::map<uint32_t, Shadow> m_shadows;
168  std::map<uint32_t, ArrowPtr> m_arrows;
169 
170  std::map<uint32_t, Image> m_images;
171 
172  std::map<uint32_t, Font> m_fonts;
173  std::map<uint32_t, ParagraphStyle> m_paragraphStyles;
174  std::map<uint32_t, Text> m_texts;
175 };
176 
177 }
178 
179 #endif // ZMF4PARSER_H_INCLUDED
180 
181 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libzmf::Font
Definition: ZMFTypes.h:270
libzmf::ZMFCollector::endDocument
void endDocument()
Definition: ZMFCollector.cpp:339
libzmf::BoundingBox::points
const std::vector< Point > & points() const
Definition: ZMFTypes.cpp:108
libzmf::BMIParser::header
const BMIHeader & header() const
Definition: BMIParser.cpp:432
ZMF4Header.h
libzmf::ZMF4Parser::ObjectType::GUIDELINES
@ GUIDELINES
libzmf::GradientType::FLEXIBLE
@ FLEXIBLE
libzmf::GradientType::RECTANGULAR
@ RECTANGULAR
libzmf::ZMF4Header
Definition: ZMF4Header.h:18
libzmf::ZMF4Parser::ObjectType::TRANSPARENCY
@ TRANSPARENCY
libzmf::ZMF4Parser::ObjectType::DOCUMENT_SETTINGS
@ DOCUMENT_SETTINGS
libzmf::ZMF4Parser::ObjectType::CURVE
@ CURVE
libzmf::ZMF4Parser::readLayer
void readLayer(const ObjectHeader &layerStartObjHeader)
Definition: ZMF4Parser.cpp:594
libzmf::Pen::dashDistance
double dashDistance
Definition: ZMFTypes.h:148
libzmf::Shadow::color
Color color
Definition: ZMFTypes.h:251
libzmf::Font::name
librevenge::RVNGString name
Definition: ZMFTypes.h:272
libzmf::ZMF4Parser::readPolygon
void readPolygon()
Definition: ZMF4Parser.cpp:1280
libzmf::ZMF4Parser::ObjectHeader::id
boost::optional< uint32_t > id
Definition: ZMF4Parser.h:72
libzmf::Style::transparency
boost::optional< Transparency > transparency
Definition: ZMFTypes.h:262
libzmf::ZMFCollector::endGroup
void endGroup()
Definition: ZMFCollector.cpp:414
libzmf::ZMF4Parser::ObjectType::PAGE_END
@ PAGE_END
libzmf::ZMF4Parser::operator=
ZMF4Parser & operator=(const ZMF4Parser &other)=delete
libzmf::ImageFill::image
Image image
Definition: ZMFTypes.h:220
libzmf::Style::shadow
boost::optional< Shadow > shadow
Definition: ZMFTypes.h:263
libzmf::ZMF4Parser::readParagraphStyle
void readParagraphStyle()
Definition: ZMF4Parser.cpp:1061
libzmf::LineCapType::FLAT
@ FLAT
libzmf::Text
Definition: ZMFTypes.h:333
libzmf::getLength
unsigned long getLength(const RVNGInputStreamPtr &input)
Definition: libzmf_utils.cpp:198
libzmf::Shadow::angle
double angle
Definition: ZMFTypes.h:249
libzmf::Font::fill
boost::optional< Fill > fill
Definition: ZMFTypes.h:276
libzmf::skip
void skip(const RVNGInputStreamPtr &input, unsigned long numBytes)
Definition: libzmf_utils.cpp:175
libzmf::ZMF4Parser::m_input
const RVNGInputStreamPtr m_input
Definition: ZMF4Parser.h:151
libzmf::Curve
Definition: ZMFTypes.h:86
libzmf::ZMFCollector::collectImage
void collectImage(const librevenge::RVNGBinaryData &image, const Point &topLeft, double width, double height, double rotation, bool mirrorHorizontal, bool mirrorVertical)
Definition: ZMFCollector.cpp:800
libzmf::HorizontalAlignment::BLOCK
@ BLOCK
libzmf::ZMFCollector::startPage
void startPage(const ZMFPageSettings &pageSettings)
Definition: ZMFCollector.cpp:352
libzmf::ZMF4Parser::m_pens
std::map< uint32_t, Pen > m_pens
Definition: ZMF4Parser.h:164
libzmf::BMIParser::readImage
Image readImage()
Parse the bitmap and convert it to PNG.
Definition: BMIParser.cpp:379
libzmf::VerticalAlignment::MIDDLE
@ MIDDLE
libzmf::ZMFCollector::collectTextObject
void collectTextObject(const Text &text, const Point &topLeft, double width, double height, VerticalAlignment align, double rotation)
Definition: ZMFCollector.cpp:599
libzmf::ZMF4Parser::ObjectType::POLYGON
@ POLYGON
libzmf::BoundingBox
Definition: ZMFTypes.h:46
libzmf::GradientStop::offset
double offset
Definition: ZMFTypes.h:174
libzmf::ZMF4Parser::ObjectType::IMAGE
@ IMAGE
libzmf::ZMFCollector::startGroup
void startGroup()
Definition: ZMFCollector.cpp:407
ZMFTypes.h
libzmf::ZMFCollector::collectEllipse
void collectEllipse(const Point &c, double rx, double ry, double rotation)
Definition: ZMFCollector.cpp:448
libzmf::ZMF4Parser::parse
bool parse()
Definition: ZMF4Parser.cpp:72
libzmf::ZMF4Parser::readPage
void readPage()
Definition: ZMF4Parser.cpp:533
libzmf::ZMF4Parser::m_inputLength
uint32_t m_inputLength
Definition: ZMF4Parser.h:152
libzmf::ZMF4Parser::ObjectRef::tag
uint32_t tag
Definition: ZMF4Parser.h:89
libzmf::Table::width
double width
Definition: ZMFTypes.h:380
libzmf::ZMF4Parser::ObjectHeader::refListStartOffset
uint32_t refListStartOffset
Definition: ZMF4Parser.h:74
libzmf::Style::pen
boost::optional< Pen > pen
Definition: ZMFTypes.h:260
libzmf::ParagraphStyle::lineSpacing
double lineSpacing
Definition: ZMFTypes.h:314
libzmf::ZMF4Parser::m_header
ZMF4Header m_header
Definition: ZMF4Parser.h:156
libzmf::ZMF4Parser::ObjectHeader::nextObjectOffset
uint32_t nextObjectOffset
Definition: ZMF4Parser.h:71
libzmf::ZMF4Parser::m_pageSettings
ZMFPageSettings m_pageSettings
Definition: ZMF4Parser.h:158
libzmf::BMIParser
Definition: BMIParser.h:23
libzmf::ZMFCollector::startLayer
void startLayer()
Definition: ZMFCollector.cpp:385
libzmf::ArrowPtr
std::shared_ptr< Arrow > ArrowPtr
Definition: ZMFTypes.h:139
libzmf::ZMF4Parser::readPen
void readPen()
Definition: ZMF4Parser.cpp:772
libzmf::ZMF4Parser
Definition: ZMF4Parser.h:26
libzmf::ZMF4Parser::getFillByRefId
boost::optional< Fill > getFillByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:237
libzmf::ZMF4Parser::ObjectType::ARROW
@ ARROW
libzmf::Gradient
Definition: ZMFTypes.h:191
libzmf::ImageFill::tile
bool tile
Definition: ZMFTypes.h:221
libzmf::readS32
int32_t readS32(const RVNGInputStreamPtr &input, bool bigEndian)
Definition: libzmf_utils.cpp:149
libzmf::ZMF4Parser::ObjectType::PAGE_START
@ PAGE_START
libzmf::ZMFCollector::endPage
void endPage()
Definition: ZMFCollector.cpp:375
libzmf::ZMF4Parser::ObjectType
ObjectType
Definition: ZMF4Parser.h:37
libzmf::readU16
uint16_t readU16(const RVNGInputStreamPtr &input, bool bigEndian)
Definition: libzmf_utils.cpp:101
libzmf::ZMFCollector::collectPath
void collectPath(const std::vector< Curve > &curves)
Definition: ZMFCollector.cpp:424
libzmf::ZMF4Parser::m_shadows
std::map< uint32_t, Shadow > m_shadows
Definition: ZMF4Parser.h:167
libzmf::Pen::lineCapType
LineCapType lineCapType
Definition: ZMFTypes.h:145
libzmf::ZMF4Parser::ObjectType::RECTANGLE
@ RECTANGLE
libzmf::ZMF4Parser::m_images
std::map< uint32_t, Image > m_images
Definition: ZMF4Parser.h:170
libzmf::ZMF4Header::startBitmapOffset
uint32_t startBitmapOffset() const
Definition: ZMF4Header.cpp:62
libzmf::GradientType::CONICAL
@ CONICAL
libzmf::ZMF4Parser::ObjectHeader::refObjCount
uint32_t refObjCount
Definition: ZMF4Parser.h:73
libzmf::RVNGInputStreamPtr
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
Definition: libzmf_utils.h:80
libzmf::ZMF4Parser::m_currentObjectHeader
ObjectHeader m_currentObjectHeader
Definition: ZMF4Parser.h:162
libzmf::Shadow
Definition: ZMFTypes.h:246
libzmf::ZMF4Parser::readPoint
Point readPoint()
Definition: ZMF4Parser.cpp:313
libzmf::ZMFCollector
Definition: ZMFCollector.h:21
libzmf::ZMF4Parser::ObjectType::TEXT_FRAME
@ TEXT_FRAME
libzmf::Point
Definition: ZMFTypes.h:24
libzmf::HorizontalAlignment::RIGHT
@ RIGHT
libzmf::Font::isItalic
bool isItalic
Definition: ZMFTypes.h:275
libzmf::ZMF4Parser::m_pageNumber
int m_pageNumber
Definition: ZMF4Parser.h:160
libzmf::ZMF4Parser::m_fills
std::map< uint32_t, Fill > m_fills
Definition: ZMF4Parser.h:165
libzmf::Point::x
double x
Definition: ZMFTypes.h:26
libzmf::ZMF4Parser::ObjectType::GROUP_END
@ GROUP_END
libzmf::Point::y
double y
Definition: ZMFTypes.h:27
libzmf::Color::blue
uint8_t blue
Definition: ZMFTypes.h:101
libzmf::ZMF4Parser::ObjectType::TEXT
@ TEXT
libzmf::Curve::sectionTypes
std::vector< CurveType > sectionTypes
Definition: ZMFTypes.h:89
libzmf::ZMF4Parser::ObjectType::ELLIPSE
@ ELLIPSE
libzmf::ZMF4Parser::ObjectType::GROUP_START
@ GROUP_START
libzmf::Arrow
Definition: ZMFTypes.h:129
libzmf::ZMF4Parser::m_collector
ZMFCollector m_collector
Definition: ZMF4Parser.h:154
libzmf::readU32
uint32_t readU32(const RVNGInputStreamPtr &input, bool bigEndian)
Definition: libzmf_utils.cpp:117
libzmf::ZMF4Parser::getShadowByRefId
boost::optional< Shadow > getShadowByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:247
libzmf::Color::red
uint8_t red
Definition: ZMFTypes.h:99
libzmf::Pen::color
Color color
Definition: ZMFTypes.h:143
libzmf::ZMFCollector::collectPolygon
void collectPolygon(const Point &c, double rx, double ry, uint32_t peaksCount, const Curve &peak, double rotation, bool mirrorHorizontal, bool mirrorVertical)
Definition: ZMFCollector.cpp:535
libzmf::ImageFill::tileWidth
double tileWidth
Definition: ZMFTypes.h:222
libzmf::LineCapType::POINTED
@ POINTED
libzmf::Color::green
uint8_t green
Definition: ZMFTypes.h:100
BMIParser.h
libzmf::ZMF4Parser::ObjectType::BITMAP
@ BITMAP
libzmf::ZMF4Parser::ObjectType::FONT
@ FONT
libzmf::ZMFCollector::collectTable
void collectTable(const Table &table)
Definition: ZMFCollector.cpp:730
libzmf::ZMF4Parser::ObjectRef::id
uint32_t id
Definition: ZMF4Parser.h:88
libzmf
Definition: BMIHeader.cpp:13
libzmf::ZMF4Parser::ObjectHeader::size
uint32_t size
Definition: ZMF4Parser.h:70
libzmf::Gradient::angle
double angle
Definition: ZMFTypes.h:195
libzmf::ZMF4Parser::getTextByRefId
boost::optional< Text > getTextByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:267
libzmf::LineJoinType::BEVEL
@ BEVEL
libzmf::ZMF4Parser::readImage
void readImage()
Definition: ZMF4Parser.cpp:997
libzmf::ZMFPageSettings
Definition: ZMFTypes.h:389
libzmf::ZMF4Parser::m_paragraphStyles
std::map< uint32_t, ParagraphStyle > m_paragraphStyles
Definition: ZMF4Parser.h:173
libzmf::ZMF4Parser::ObjectType::COLOR_PALETTE
@ COLOR_PALETTE
libzmf::ZMFCollector::setStyle
void setStyle(const Style &style)
Definition: ZMFCollector.cpp:419
libzmf::readU8
uint8_t readU8(const RVNGInputStreamPtr &input, bool)
Definition: libzmf_utils.cpp:89
libzmf::ZMF4Parser::ObjectType::PEN
@ PEN
libzmf::Curve::points
std::vector< Point > points
Definition: ZMFTypes.h:88
libzmf::ZMFCollector::startDocument
void startDocument()
Definition: ZMFCollector.cpp:327
libzmf::Pen::lineJoinType
LineJoinType lineJoinType
Definition: ZMFTypes.h:146
libzmf::VerticalAlignment::TOP
@ TOP
libzmf::ZMF4Parser::getFontByRefId
boost::optional< Font > getFontByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:257
libzmf::Table::topLeftPoint
Point topLeftPoint
Definition: ZMFTypes.h:382
libzmf::ZMF4Parser::m_transparencies
std::map< uint32_t, Transparency > m_transparencies
Definition: ZMF4Parser.h:166
libzmf::Table::height
double height
Definition: ZMFTypes.h:381
libzmf::readNBytes
const unsigned char * readNBytes(const RVNGInputStreamPtr &input, const unsigned long numBytes)
Definition: libzmf_utils.cpp:162
libzmf::LineCapType::BUTT
@ BUTT
libzmf::ZMF4Parser::readTextFrame
void readTextFrame()
Definition: ZMF4Parser.cpp:1196
libzmf::Font::outline
boost::optional< Pen > outline
Definition: ZMFTypes.h:277
libzmf::Gradient::type
GradientType type
Definition: ZMFTypes.h:193
libzmf::Curve::closed
bool closed
Definition: ZMFTypes.h:90
libzmf::ZMF4Parser::ObjectType::UNKNOWN
@ UNKNOWN
libzmf::ZMF4Parser::readObjectRefs
std::vector< ObjectRef > readObjectRefs()
Definition: ZMF4Parser.cpp:201
ZMF_ALMOST_ZERO
#define ZMF_ALMOST_ZERO(m)
Definition: libzmf_utils.h:33
libzmf::ZMF4Parser::m_arrows
std::map< uint32_t, ArrowPtr > m_arrows
Definition: ZMF4Parser.h:168
libzmf::ZMF4Parser::readTable
void readTable()
Definition: ZMF4Parser.cpp:1323
libzmf::ParagraphStyle::font
Font font
Definition: ZMFTypes.h:316
libzmf::ZMF4Parser::ObjectType::PARAGRAPH
@ PARAGRAPH
libzmf::Pen::isInvisible
bool isInvisible
Definition: ZMFTypes.h:151
libzmf::ParagraphStyle::alignment
HorizontalAlignment alignment
Definition: ZMFTypes.h:315
libzmf::ZMF4Parser::ObjectType::LAYER_END
@ LAYER_END
libzmf::CurveType::LINE
@ LINE
libzmf::Pen::dashPattern
std::vector< double > dashPattern
Definition: ZMFTypes.h:147
libzmf::ZMF4Parser::readDocumentSettings
void readDocumentSettings()
Definition: ZMF4Parser.cpp:507
libzmf::appendCharacters
void appendCharacters(librevenge::RVNGString &text, const unsigned char *characters, uint32_t size, const char *encoding)
Definition: libzmf_utils.cpp:219
libzmf::ZMF4Parser::readFill
void readFill()
Definition: ZMF4Parser.cpp:678
libzmf::um2in
double um2in(T micrometers)
Definition: libzmf_utils.h:134
libzmf::Pen::startArrow
ArrowPtr startArrow
Definition: ZMFTypes.h:149
libzmf::ImageFill
Definition: ZMFTypes.h:218
libzmf::readFloat
float readFloat(const RVNGInputStreamPtr &input, bool bigEndian)
Definition: libzmf_utils.cpp:154
libzmf::ZMFCollector::endLayer
void endLayer()
Definition: ZMFCollector.cpp:397
NO_ID
#define NO_ID
Definition: ZMF4Parser.cpp:16
libzmf::VerticalAlignment::BOTTOM
@ BOTTOM
libzmf::seek
void seek(const RVNGInputStreamPtr &input, const unsigned long pos)
Definition: libzmf_utils.cpp:182
libzmf::ZMF4Parser::getArrowByRefId
ArrowPtr getArrowByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:277
libzmf::ZMF4Parser::readShadow
void readShadow()
Definition: ZMF4Parser.cpp:888
libzmf::LineJoinType::MITER
@ MITER
libzmf::ZMF4Parser::readCurve
void readCurve()
Definition: ZMF4Parser.cpp:1233
libzmf::ZMF4Parser::ZMF4Parser
ZMF4Parser(const ZMF4Parser &other)=delete
libzmf::ZMF4Parser::m_fonts
std::map< uint32_t, Font > m_fonts
Definition: ZMF4Parser.h:172
libzmf_utils.h
libzmf::Style::fill
boost::optional< Fill > fill
Definition: ZMFTypes.h:261
libzmf::Transparency
Definition: ZMFTypes.h:232
libzmf::ZMF4Parser::ObjectType::FILL
@ FILL
libzmf::Pen
Definition: ZMFTypes.h:141
libzmf::GradientStop::color
Color color
Definition: ZMFTypes.h:173
libzmf::ZMF4Parser::readObjectHeader
ObjectHeader readObjectHeader()
Definition: ZMF4Parser.cpp:164
libzmf::HorizontalAlignment::CENTER
@ CENTER
libzmf::Color
Definition: ZMFTypes.h:97
libzmf::GradientStop
Definition: ZMFTypes.h:171
libzmf::ZMF4Parser::ObjectHeader::ObjectHeader
ObjectHeader()
Definition: ZMF4Parser.h:76
libzmf::ZMF4Header::isSupported
bool isSupported() const
Definition: ZMF4Header.cpp:47
libzmf::Font::isBold
bool isBold
Definition: ZMFTypes.h:274
libzmf::ZMF4Parser::ObjectType::LAYER_START
@ LAYER_START
libzmf::GradientType::LINEAR
@ LINEAR
libzmf::ZMF4Parser::ObjectType::SHADOW
@ SHADOW
libzmf::ZMF4Parser::getTransparencyByRefId
boost::optional< Transparency > getTransparencyByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:252
ZMF4Parser.h
libzmf::GradientType::CROSS
@ CROSS
libzmf::ZMF4Header::startContentOffset
uint32_t startContentOffset() const
Definition: ZMF4Header.cpp:57
libzmf::HorizontalAlignment::LEFT
@ LEFT
libzmf::Transparency::color
Color color
Definition: ZMFTypes.h:234
libzmf::Pen::width
double width
Definition: ZMFTypes.h:144
libzmf::ZMF4Parser::readText
void readText()
Definition: ZMF4Parser.cpp:1123
libzmf::ZMF4Parser::readUnscaledPoint
Point readUnscaledPoint()
Definition: ZMF4Parser.cpp:320
libzmf::ZMF4Parser::readTransparency
void readTransparency()
Definition: ZMF4Parser.cpp:749
libzmf::CurveType::BEZIER_CURVE
@ BEZIER_CURVE
libzmf::Table
Definition: ZMFTypes.h:376
libzmf::ZMF4Parser::ObjectHeader::type
ObjectType type
Definition: ZMF4Parser.h:69
libzmf::Shadow::opacity
double opacity
Definition: ZMFTypes.h:250
libzmf::HorizontalAlignment::FULL
@ FULL
libzmf::Shadow::offset
Point offset
Definition: ZMFTypes.h:248
libzmf::ZMF4Parser::getParagraphStyleByRefId
boost::optional< ParagraphStyle > getParagraphStyleByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:262
libzmf::ParagraphStyle
Definition: ZMFTypes.h:312
libzmf::LineCapType::ROUND
@ ROUND
libzmf::Gradient::center
Point center
Definition: ZMFTypes.h:196
libzmf::ZMF4Parser::readEllipse
void readEllipse()
Definition: ZMF4Parser.cpp:1256
libzmf::Font::size
double size
Definition: ZMFTypes.h:273
libzmf::ZMF4Parser::readGradient
Gradient readGradient(uint32_t type)
Definition: ZMF4Parser.cpp:432
libzmf::ZMF4Parser::ObjectRef
Definition: ZMF4Parser.h:86
libzmf::Text::paragraphs
std::vector< Paragraph > paragraphs
Definition: ZMFTypes.h:335
libzmf::ZMF4Parser::parseObjectType
static ObjectType parseObjectType(uint8_t type)
Definition: ZMF4Parser.cpp:104
libzmf::Table::columns
std::vector< Column > columns
Definition: ZMFTypes.h:379
libzmf::LineJoinType::ROUND
@ ROUND
libzmf::ZMF4Parser::ObjectHeader
Definition: ZMF4Parser.h:67
libzmf::GradientType::RADIAL
@ RADIAL
libzmf::ZMF4Parser::readCurveSectionTypes
void readCurveSectionTypes(std::vector< CurveType > &sectionTypes)
Definition: ZMF4Parser.cpp:356
libzmf::ZMF4Parser::readCurveComponents
std::vector< Curve > readCurveComponents(std::function< Point()> readPointFunc)
Definition: ZMF4Parser.cpp:379
libzmf::ZMF4Parser::readStyle
Style readStyle()
Definition: ZMF4Parser.cpp:283
libzmf::ZMF4Parser::readPreviewBitmap
void readPreviewBitmap()
Definition: ZMF4Parser.cpp:498
libzmf::ZMF4Parser::getImageByRefId
boost::optional< Image > getImageByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:272
libzmf::Pen::endArrow
ArrowPtr endArrow
Definition: ZMFTypes.h:150
libzmf::ZMF4Parser::readFont
void readFont()
Definition: ZMF4Parser.cpp:1028
libzmf::Gradient::stops
std::vector< GradientStop > stops
Definition: ZMFTypes.h:194
libzmf::ZMF4Parser::readColor
Color readColor()
Definition: ZMF4Parser.cpp:423
libzmf::ZMF4Parser::readBitmap
void readBitmap()
Definition: ZMF4Parser.cpp:961
libzmf::ImageFill::tileHeight
double tileHeight
Definition: ZMFTypes.h:223
libzmf::Style
Definition: ZMFTypes.h:258
libzmf::ZMF4Parser::m_texts
std::map< uint32_t, Text > m_texts
Definition: ZMF4Parser.h:174
ZMFCollector.h
libzmf::Table::rows
std::vector< Row > rows
Definition: ZMFTypes.h:378
libzmf::ZMF4Header::load
bool load(const RVNGInputStreamPtr &input)
Definition: ZMF4Header.cpp:27
libzmf::ZMF4Parser::getPenByRefId
boost::optional< Pen > getPenByRefId(uint32_t id)
Definition: ZMF4Parser.cpp:242
libzmf::ZMF4Parser::readRectangle
void readRectangle()
Definition: ZMF4Parser.cpp:1244
libzmf::ZMF4Parser::ObjectType::TABLE
@ TABLE
ZMF_DEBUG_MSG
#define ZMF_DEBUG_MSG(M)
Definition: libzmf_utils.h:57
libzmf::GenericException
Definition: libzmf_utils.h:148
libzmf::ZMF4Parser::readArrow
void readArrow()
Definition: ZMF4Parser.cpp:940
libzmf::ZMFCollector::collectArc
void collectArc(const Point &c, double rx, double ry, double beginAngle, double endAngle, bool closed, double rotation)
Definition: ZMFCollector.cpp:468
libzmf::ZMF4Parser::readBoundingBox
BoundingBox readBoundingBox()
Definition: ZMF4Parser.cpp:327

Generated for libzmf by doxygen 1.8.17