CMXParser.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 libcdr 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 __CMXPARSER_H__
11 #define __CMXPARSER_H__
12 
13 #include <stdio.h>
14 #include <iostream>
15 #include <vector>
16 #include <map>
17 #include <librevenge-stream/librevenge-stream.h>
18 #include "CDRTypes.h"
19 #include "CommonParser.h"
20 
21 namespace libcdr
22 {
23 
24 class CDRCollector;
25 
26 class CMXParser : protected CommonParser
27 {
28 public:
29  explicit CMXParser(CDRCollector *collector);
30  virtual ~CMXParser();
31  bool parseRecords(librevenge::RVNGInputStream *input, long size = -1, unsigned level = 0);
32 
33 private:
34  CMXParser();
35  CMXParser(const CMXParser &);
36  CMXParser &operator=(const CMXParser &);
37  bool parseRecord(librevenge::RVNGInputStream *input, unsigned level = 0);
38  void readRecord(unsigned fourCC, unsigned &length, librevenge::RVNGInputStream *input);
39 
40  void readCMXHeader(librevenge::RVNGInputStream *input);
41  void readDisp(librevenge::RVNGInputStream *input, unsigned length);
42  void readCcmm(librevenge::RVNGInputStream *input, long &recordEnd);
43  void readPage(librevenge::RVNGInputStream *input, unsigned length);
44 
45  // Command readers
46  void readBeginPage(librevenge::RVNGInputStream *input);
47  void readBeginLayer(librevenge::RVNGInputStream *input);
48  void readBeginGroup(librevenge::RVNGInputStream *input);
49  void readPolyCurve(librevenge::RVNGInputStream *input);
50  void readEllipse(librevenge::RVNGInputStream *input);
51  void readRectangle(librevenge::RVNGInputStream *input);
52  void readJumpAbsolute(librevenge::RVNGInputStream *input);
53 
54  // Types readers
55  CDRTransform readMatrix(librevenge::RVNGInputStream *input);
56  CDRBox readBBox(librevenge::RVNGInputStream *input);
57  void readFill(librevenge::RVNGInputStream *input);
58 
59  // Complex types readers
60  void readRenderingAttributes(librevenge::RVNGInputStream *input);
61 
63  unsigned short m_unit;
64  double m_scale;
69  unsigned m_fillIndex;
71 };
72 
73 } // namespace libcdr
74 
75 #endif // __CMXPARSER_H__
76 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
void readRenderingAttributes(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:677
Definition: CommonParser.h:22
void readBeginPage(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:278
unsigned m_nextInstructionOffset
Definition: CMXParser.h:70
void readCcmm(librevenge::RVNGInputStream *input, long &recordEnd)
Definition: CMXParser.cpp:230
double m_xmax
Definition: CMXParser.h:65
Definition: CDRTypes.h:23
unsigned m_infoSectionOffset
Definition: CMXParser.h:67
void readPolyCurve(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:334
Definition: CDRTransforms.h:20
CMXParser & operator=(const CMXParser &)
void readRecord(unsigned fourCC, unsigned &length, librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:107
unsigned short m_unit
Definition: CMXParser.h:63
Definition: CMXParser.h:26
bool m_bigEndian
Definition: CMXParser.h:62
void readDisp(librevenge::RVNGInputStream *input, unsigned length)
Definition: CMXParser.cpp:189
void readJumpAbsolute(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:814
double m_ymin
Definition: CMXParser.h:65
bool parseRecords(librevenge::RVNGInputStream *input, long size=-1, unsigned level=0)
Definition: CMXParser.cpp:42
unsigned m_thumbnailOffset
Definition: CMXParser.h:68
void readEllipse(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:399
double m_ymax
Definition: CMXParser.h:65
void readPage(librevenge::RVNGInputStream *input, unsigned length)
Definition: CMXParser.cpp:236
unsigned m_indexSectionOffset
Definition: CMXParser.h:66
unsigned m_fillIndex
Definition: CMXParser.h:69
void readFill(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:619
CDRTransform readMatrix(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:588
void readRectangle(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:501
void readBeginGroup(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:330
CDRBox readBBox(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:609
bool parseRecord(librevenge::RVNGInputStream *input, unsigned level=0)
Definition: CMXParser.cpp:60
void readBeginLayer(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:327
virtual ~CMXParser()
Definition: CMXParser.cpp:38
double m_scale
Definition: CMXParser.h:64
double m_xmin
Definition: CMXParser.h:65
void readCMXHeader(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:131
Definition: CDRCollector.h:59

Generated for libcdr by doxygen 1.8.5