Main Page
Namespaces
Classes
Files
File List
File Members
CommonParser.h
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* libcdr
3
* Version: MPL 1.1 / GPLv2+ / LGPLv2+
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License or as specified alternatively below. You may obtain a copy of
8
* the License at http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* Major Contributor(s):
16
* Copyright (C) 2012 Fridrich Strba <fridrich.strba@bluewin.ch>
17
*
18
*
19
* All Rights Reserved.
20
*
21
* For minor contributions see the git repository.
22
*
23
* Alternatively, the contents of this file may be used under the terms of
24
* either the GNU General Public License Version 2 or later (the "GPLv2+"), or
25
* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
26
* in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
27
* instead of those above.
28
*/
29
30
#ifndef __COMMONPARSER_H__
31
#define __COMMONPARSER_H__
32
33
#include "
CDRCollector.h
"
34
35
class
WPXInputSTream;
36
37
namespace
libcdr
38
{
39
40
enum
CoordinatePrecision
41
{
PRECISION_UNKNOWN
= 0,
PRECISION_16BIT
,
PRECISION_32BIT
};
42
43
class
CommonParser
44
{
45
public
:
46
CommonParser
(
CDRCollector
*collector);
47
virtual
~CommonParser
();
48
49
private
:
50
CommonParser
();
51
CommonParser
(
const
CommonParser
&);
52
CommonParser
&
operator=
(
const
CommonParser
&);
53
54
55
protected
:
56
double
readRectCoord
(WPXInputStream *input,
bool
bigEndian =
false
);
57
double
readCoordinate
(WPXInputStream *input,
bool
bigEndian =
false
);
58
unsigned
readUnsigned
(WPXInputStream *input,
bool
bigEndian =
false
);
59
unsigned
short
readUnsignedShort
(WPXInputStream *input,
bool
bigEndian =
false
);
60
int
readInteger
(WPXInputStream *input,
bool
bigEndian =
false
);
61
double
readAngle
(WPXInputStream *input,
bool
bigEndian =
false
);
62
63
void
outputPath
(
const
std::vector<std::pair<double, double> > &points,
const
std::vector<unsigned char> &types);
64
65
CDRCollector
*
m_collector
;
66
CoordinatePrecision
m_precision
;
67
};
68
}
// namespace libcdr
69
70
#endif // __COMMONPARSER_H__
71
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Generated for libcdr by
doxygen
1.8.1.2