Go to the documentation of this file.
10 #ifndef __CMXPARSER_H__
11 #define __CMXPARSER_H__
17 #include <librevenge-stream/librevenge-stream.h>
23 #define CMX_MASTER_INDEX_TABLE 1
24 #define CMX_PAGE_INDEX_TABLE 2
25 #define CMX_MASTER_LAYER_TABLE 3
26 #define CMX_PROCEDURE_INDEX_TABLE 4
27 #define CMX_BITMAP_INDEX_TABLE 5
28 #define CMX_ARROW_INDEX_TABLE 6
29 #define CMX_FONT_INDEX_TABLE 7
30 #define CMX_EMBEDDED_FILE_INDEX_TABLE 8
31 #define CMX_THUMBNAIL_SECTION 10
32 #define CMX_OUTLINE_DESCRIPTION_SECTION 15
33 #define CMX_LINE_STYLE_DESCRIPTION_SECTION 16
34 #define CMX_ARROWHEADS_DESCRIPTION_SECTION 17
35 #define CMX_SCREEN_DESCRIPTION_SECTION 18
36 #define CMX_PEN_DESCRIPTION_SECTION 19
37 #define CMX_DOT_DASH_DESCRIPTION_SECTION 20
38 #define CMX_COLOR_DESCRIPTION_SECTION 21
39 #define CMX_COLOR_CORRECTION_SECTION 22
40 #define CMX_PREVIEW_BOX_SECTION 23
110 bool parseRecords(librevenge::RVNGInputStream *input,
long size = -1,
unsigned level = 0);
116 bool parseRecord(librevenge::RVNGInputStream *input,
unsigned level = 0);
117 void readRecord(
unsigned fourCC,
unsigned &length, librevenge::RVNGInputStream *input);
118 void parseImage(librevenge::RVNGInputStream *input);
121 void readDisp(librevenge::RVNGInputStream *input);
122 void readPage(librevenge::RVNGInputStream *input);
123 void readProc(librevenge::RVNGInputStream *input);
124 void readRclr(librevenge::RVNGInputStream *input);
125 void readRotl(librevenge::RVNGInputStream *input);
126 void readRott(librevenge::RVNGInputStream *input);
127 void readRdot(librevenge::RVNGInputStream *input);
128 void readRpen(librevenge::RVNGInputStream *input);
129 void readIxtl(librevenge::RVNGInputStream *input);
130 void readIxef(librevenge::RVNGInputStream *input);
131 void readIxmr(librevenge::RVNGInputStream *input);
132 void readIxpg(librevenge::RVNGInputStream *input);
133 void readIxpc(librevenge::RVNGInputStream *input);
134 void readInfo(librevenge::RVNGInputStream *input);
135 void readData(librevenge::RVNGInputStream *input);
138 void readCommands(librevenge::RVNGInputStream *input,
unsigned length);
143 void readEllipse(librevenge::RVNGInputStream *input);
152 librevenge::RVNGString
readString(librevenge::RVNGInputStream *input);
153 bool readFill(librevenge::RVNGInputStream *input);
154 bool readLens(librevenge::RVNGInputStream *input);
161 CDRColor readColor(librevenge::RVNGInputStream *input,
unsigned char colorModel);
163 const unsigned *
_getOffsetByType(
unsigned short type,
const std::map<unsigned short, unsigned> &offsets);
179 #endif // __CMXPARSER_H__
unsigned short m_type
Definition: CMXParser.h:81
#define CMX_Tag_DescrSection_Color_Base
Definition: CMXDocumentStructure.h:138
double lineWidth
Definition: CDRTypes.h:118
#define CMX_Tag_RenderAttr_FillSpec_ColorBM
Definition: CMXDocumentStructure.h:119
void readIxef(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1994
uint8_t readU8(librevenge::RVNGInputStream *input, bool bigEndian=false)
Definition: libcdr_utils.cpp:163
Definition: CDRTypes.h:226
#define CMX_Tag_Ellips_EllipsSpecification
Definition: CMXDocumentStructure.h:76
void readBeginProcedure(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:919
double m_aspect
Definition: CMXParser.h:65
double m_angle
Definition: CMXParser.h:66
double getHeight() const
Definition: CDRTypes.h:38
bool readFill(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1061
CDRLineStyle getLineStyle(unsigned id)
Definition: CMXParser.cpp:2339
void readRpen(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1895
CDRBox readBBox(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:996
CMXOutline()
Definition: CMXParser.h:49
void readRectangle(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:830
#define CMX_Tag_BeginPage_PageSpecification
Definition: CMXDocumentStructure.h:31
#define CMX_PEN_DESCRIPTION_SECTION
Definition: CMXParser.h:36
CDRColor m_color
Definition: CDRTypes.h:64
unsigned char m_spec
Definition: CMXParser.h:73
#define CDR_FOURCC_cont
Definition: CDRDocumentStructure.h:39
double angle
Definition: CDRTypes.h:120
#define CMX_Tag_Rectangle_RectangleSpecification
Definition: CMXDocumentStructure.h:90
double m_scale
Definition: CMXParser.h:167
#define CMX_DOT_DASH_DESCRIPTION_SECTION
Definition: CMXParser.h:37
#define CMX_Tag_DescrSection_LineStyle
Definition: CMXDocumentStructure.h:156
unsigned char m_capAndJoin
Definition: CMXParser.h:74
void appendQuadraticBezierTo(double x1, double y1, double x, double y)
Definition: CDRPath.cpp:651
CDRTransform m_matrix
Definition: CMXParser.h:67
#define CMX_Tag_PolyCurve_PointList
Definition: CMXDocumentStructure.h:81
#define CMX_Tag_DrawImage_DrawImageSpecification
Definition: CMXDocumentStructure.h:70
#define CDR_FOURCC_page
Definition: CDRDocumentStructure.h:97
#define CMX_COLOR_DESCRIPTION_SECTION
Definition: CMXParser.h:38
#define CMX_Tag_RenderAttr_FillSpec
Definition: CMXDocumentStructure.h:107
CDRTransform readMatrix(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:966
#define CDR_FOURCC_RIFF
Definition: CDRDocumentStructure.h:105
#define CMX_Tag_EndTag
Definition: CMXDocumentStructure.h:165
const unsigned * _getOffsetByType(unsigned short type, const std::map< unsigned short, unsigned > &offsets)
Definition: CMXParser.cpp:339
#define CMX_Tag_DescrSection_Image_ImageData
Definition: CMXDocumentStructure.h:150
#define CDR_FOURCC_imag
Definition: CDRDocumentStructure.h:65
#define CMX_OUTLINE_DESCRIPTION_SECTION
Definition: CMXParser.h:32
#define CDR_FOURCC_ixtl
Definition: CDRDocumentStructure.h:73
Definition: CDRTypes.h:62
#define CDR_FOURCC_data
Definition: CDRDocumentStructure.h:42
#define CDR_DEBUG_MSG(M)
Definition: libcdr_utils.h:56
#define CMX_Tag_Ellips_RenderingAttr
Definition: CMXDocumentStructure.h:75
CMXParser & operator=(const CMXParser &)
#define CDR_FOURCC_ixpg
Definition: CDRDocumentStructure.h:72
#define CMX_Tag_RenderAttr_FillSpec_Texture
Definition: CMXDocumentStructure.h:121
bool readLens(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1017
void readIxtl(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1949
CDRColor getPaletteColor(unsigned id)
Definition: CMXParser.cpp:2212
#define CMX_Tag_RenderAttr_OutlineSpec
Definition: CMXDocumentStructure.h:105
CDRColor color
Definition: CDRTypes.h:121
void readRotl(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1838
#define CMX_EMBEDDED_FILE_INDEX_TABLE
Definition: CMXParser.h:30
double m_xmax
Definition: CMXParser.h:168
std::map< unsigned, unsigned > m_embeddedOffsets
Definition: CMXParser.h:101
Definition: CDRCollector.h:61
#define CMX_PAGE_INDEX_TABLE
Definition: CMXParser.h:24
#define CMX_BITMAP_INDEX_TABLE
Definition: CMXParser.h:27
CMXPen()
Definition: CMXParser.h:62
std::map< unsigned, unsigned > m_embeddedOffsetTypes
Definition: CMXParser.h:102
double m_angle
Definition: CDRTypes.h:75
std::unique_ptr< CDRBitmap > m_currentBitmap
Definition: CMXParser.h:174
#define CMX_Command_BeginPage
Definition: CMXDocumentStructure.h:173
#define CMX_Tag_Rectangle_RenderingAttr
Definition: CMXDocumentStructure.h:89
#define CDR_FOURCC_proc
Definition: CDRDocumentStructure.h:102
unsigned short m_screen
Definition: CMXParser.h:53
#define CMX_Tag_DescrSection_Image_ImageInfo
Definition: CMXDocumentStructure.h:146
void readIxpg(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:2031
static const int MAX_RECORD_DEPTH
Definition: CMXParser.cpp:32
Definition: CDRTypes.h:113
void readRott(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1789
unsigned m_nextInstructionOffset
Definition: CMXParser.h:170
unsigned short capsType
Definition: CDRTypes.h:116
void readIxmr(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:347
unsigned short joinType
Definition: CDRTypes.h:117
bool parseRecords(librevenge::RVNGInputStream *input, long size=-1, unsigned level=0)
Definition: CMXParser.cpp:83
double m_h
Definition: CDRTypes.h:29
std::map< unsigned, unsigned > m_arrowOffsets
Definition: CMXParser.h:100
unsigned m_compressedSize
Definition: CMXParser.h:84
CMXImageInfo m_currentImageInfo
Definition: CMXParser.h:172
int32_t readS32(librevenge::RVNGInputStream *input, bool bigEndian=false)
Definition: libcdr_utils.cpp:224
#define CDR_FOURCC_rclr
Definition: CDRDocumentStructure.h:108
Definition: CMXParser.h:47
#define CDR_FOURCC_ixef
Definition: CDRDocumentStructure.h:68
uint16_t readU16(librevenge::RVNGInputStream *input, bool bigEndian=false)
Definition: libcdr_utils.cpp:179
std::vector< CDRGradientStop > m_stops
Definition: CDRTypes.h:80
#define CMX_Command_Ellipse
Definition: CMXDocumentStructure.h:185
librevenge::RVNGString readString(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1006
void readData(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:2144
void readPolyCurve(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:589
unsigned short m_lineStyle
Definition: CMXParser.h:52
void readCommands(librevenge::RVNGInputStream *input, unsigned length)
Definition: CMXParser.cpp:416
Definition: CMXParser.h:77
unsigned m_colorValue
Definition: CDRTypes.h:56
#define CDR_FOURCC_ixmr
Definition: CDRDocumentStructure.h:70
unsigned short lineType
Definition: CDRTypes.h:115
#define CMX_Tag_PolyCurve_RenderingAttr
Definition: CMXDocumentStructure.h:80
std::map< unsigned, std::vector< unsigned > > m_dashArrays
Definition: CMXParser.h:94
Definition: CMXParser.h:105
int m_centerXOffset
Definition: CDRTypes.h:78
#define CMX_LINE_STYLE_DESCRIPTION_SECTION
Definition: CMXParser.h:33
CoordinatePrecision
Definition: CommonParser.h:24
void readDrawImage(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:769
int16_t readS16(librevenge::RVNGInputStream *input, bool bigEndian=false)
Definition: libcdr_utils.cpp:199
#define CMX_Tag_RenderAttr_FillSpec_Uniform
Definition: CMXDocumentStructure.h:109
void readCMXHeader(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:214
void readJumpAbsolute(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1649
std::map< unsigned, CMXPen > m_pens
Definition: CMXParser.h:96
std::vector< unsigned > dashArray
Definition: CDRTypes.h:122
Definition: CDRCollector.h:24
Definition: CDRTypes.h:24
CMXParserState()
Definition: CMXParser.h:89
#define CMX_Tag_DescrSection_Outline
Definition: CMXDocumentStructure.h:154
unsigned char m_mode
Definition: CDRTypes.h:74
double m_ymax
Definition: CMXParser.h:168
unsigned short m_arrowHeads
Definition: CMXParser.h:55
double getMinX() const
Definition: CDRTypes.h:42
#define CMX_Tag_DescrSection_Pen
Definition: CMXDocumentStructure.h:158
void appendClosePath()
Definition: CDRPath.cpp:666
double m_width
Definition: CMXParser.h:64
void parseImage(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:153
unsigned short m_pen
Definition: CMXParser.h:56
double getMinY() const
Definition: CDRTypes.h:46
unsigned m_fillIndex
Definition: CMXParser.h:169
#define CMX_Tag_JumpAbsolute_Offset
Definition: CMXDocumentStructure.h:78
#define CDR_FOURCC_rdot
Definition: CDRDocumentStructure.h:109
#define CMX_Tag_DescrSection_Dash
Definition: CMXDocumentStructure.h:141
void readRdot(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1734
#define CDR_FOURCC_rott
Definition: CDRDocumentStructure.h:113
unsigned m_size
Definition: CMXParser.h:83
void readRecord(unsigned fourCC, unsigned &length, librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:193
void appendArcTo(double rx, double ry, double rotation, bool longAngle, bool sweep, double x, double y)
Definition: CDRPath.cpp:656
Definition: CDRTypes.h:53
#define CMX_Command_DrawImage
Definition: CMXDocumentStructure.h:183
bool m_bigEndian
Definition: CMXParser.h:165
CDRColor readColor(librevenge::RVNGInputStream *input, unsigned char colorModel)
Definition: CMXParser.cpp:2220
Definition: CDRTypes.h:101
bool readRenderingAttributes(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1476
void readEllipse(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:664
std::map< unsigned, unsigned > m_bitmapOffsets
Definition: CMXParser.h:98
int m_edgeOffset
Definition: CDRTypes.h:77
void appendMoveTo(double x, double y)
Definition: CDRPath.cpp:636
Definition: CommonParser.h:25
#define CMX_Tag_BeginGroup_GroupSpecification
Definition: CMXDocumentStructure.h:25
Definition: CommonParser.h:27
Definition: CMXParser.h:60
double getWidth() const
Definition: CDRTypes.h:34
#define CDR_FOURCC_info
Definition: CDRDocumentStructure.h:67
unsigned short m_dashArray
Definition: CMXParser.h:57
#define CMX_Tag_RenderAttr_FillSpec_MonoBM
Definition: CMXDocumentStructure.h:117
Definition: CDRTypes.h:216
void readProc(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:480
Definition: CMXParser.h:87
unsigned short m_unit
Definition: CMXParser.h:166
#define CMX_PROCEDURE_INDEX_TABLE
Definition: CMXParser.h:26
CMXParserState & m_parserState
Definition: CMXParser.h:171
#define CMX_Tag_DrawImage_RenderingAttr
Definition: CMXDocumentStructure.h:69
#define CMX_Command_JumpAbsolute
Definition: CMXDocumentStructure.h:195
CMXImageInfo()
Definition: CMXParser.h:79
double m_ymin
Definition: CMXParser.h:168
Definition: CMXParser.h:70
double m_xmin
Definition: CMXParser.h:168
Definition: CommonParser.h:25
#define CMX_Tag_RenderAttr_FillSpec_Fountain_Base
Definition: CMXDocumentStructure.h:111
void readIxpc(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:2066
double m_offset
Definition: CDRTypes.h:65
bool parseRecord(librevenge::RVNGInputStream *input, unsigned level=0)
Definition: CMXParser.cpp:101
std::map< unsigned, unsigned > m_patternOffsets
Definition: CMXParser.h:99
#define CMX_Tag_BeginPage_Matrix
Definition: CMXDocumentStructure.h:32
#define M_PI
Definition: libcdr_utils.h:27
std::unique_ptr< CDRPattern > m_currentPattern
Definition: CMXParser.h:173
#define CMX_Command_PolyCurve
Definition: CMXDocumentStructure.h:196
Definition: CDRTypes.h:71
double readDouble(librevenge::RVNGInputStream *input, bool bigEndian=false)
Definition: libcdr_utils.cpp:249
#define CDR_FOURCC_rpen
Definition: CDRDocumentStructure.h:114
void appendLineTo(double x, double y)
Definition: CDRPath.cpp:641
#define CMX_Command_Rectangle
Definition: CMXDocumentStructure.h:201
void readRclr(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:1683
void readDisp(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:290
~CMXParser() override
Definition: CMXParser.cpp:79
#define CDR_FOURCC_rotl
Definition: CDRDocumentStructure.h:112
#define CDR_FOURCC_DISP
Definition: CDRDocumentStructure.h:44
double stretch
Definition: CDRTypes.h:119
double m_w
Definition: CDRTypes.h:28
#define CMX_Command_BeginLayer
Definition: CMXDocumentStructure.h:172
#define CDR_FOURCC_RIFX
Definition: CDRDocumentStructure.h:106
std::map< unsigned, CMXOutline > m_outlines
Definition: CMXParser.h:97
#define CMX_Tag_RenderAttr_LensSpec_Base
Definition: CMXDocumentStructure.h:126
unsigned short m_compression
Definition: CMXParser.h:82
double m_y
Definition: CDRTypes.h:27
#define CMX_Tag_BeginProcedure_ProcedureSpecification
Definition: CMXDocumentStructure.h:50
#define CMX_Command_BeginGroup
Definition: CMXDocumentStructure.h:171
std::map< unsigned, CMXLineStyle > m_lineStyles
Definition: CMXParser.h:95
int m_centerYOffset
Definition: CDRTypes.h:79
Definition: CommonParser.h:25
unsigned char m_type
Definition: CDRTypes.h:73
CMXLineStyle()
Definition: CMXParser.h:72
unsigned short m_colorModel
Definition: CDRTypes.h:55
unsigned long getRemainingLength(librevenge::RVNGInputStream *input)
Definition: libcdr_utils.cpp:301
uint32_t readU32(librevenge::RVNGInputStream *input, bool bigEndian=false)
Definition: libcdr_utils.cpp:204
void readBeginLayer(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:539
#define CDR_FOURCC_LIST
Definition: CDRDocumentStructure.h:80
std::map< unsigned, CDRColor > m_colorPalette
Definition: CMXParser.h:93
void readBeginGroup(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:542
#define CMX_Tag_RenderAttr_FillSpec_Fountain_Color
Definition: CMXDocumentStructure.h:112
unsigned short m_color
Definition: CMXParser.h:54
void readInfo(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:2103
#define CDR_FALLTHROUGH
Definition: libcdr_utils.h:44
Definition: CDRTypes.h:85
#define CDR_FOURCC_ixpc
Definition: CDRDocumentStructure.h:71
#define CMX_Tag_DescrSection_Color_ColorDescr
Definition: CMXDocumentStructure.h:139
void readBeginPage(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:490
double m_x
Definition: CDRTypes.h:26
void readPage(librevenge::RVNGInputStream *input)
Definition: CMXParser.cpp:470
Generated for libcdr by
doxygen 1.8.16