blob: 9563e27fa62b134972f5a844b6c6b8b4d716570f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#ifndef CSCHECK_HH
#define CSCHECK_HH
#include <efont/t1interp.hh>
#include <lcdf/point.hh>
#include <lcdf/vector.hh>
class ErrorHandler;
class CharstringChecker : public Efont::CharstringInterp { public:
CharstringChecker();
CharstringChecker(const Vector<double> &weight_vec);
bool error(int, int);
bool callothersubr();
bool type1_command(int);
bool check(const Efont::CharstringContext &, ErrorHandler *);
private:
ErrorHandler *_errh;
Point _cp;
bool _started;
bool _flex;
bool _cp_exists;
bool _hstem;
bool _hstem3;
bool _vstem;
bool _vstem3;
bool _just_flexed;
Vector<double> _h_hstem;
Vector<double> _h_vstem;
Vector<double> _h_hstem3;
Vector<double> _h_vstem3;
void stem(double, double, const char *);
void check_stem3(const char *);
void moveto(double, double, bool cp_exists = true);
void rmoveto(double, double);
void rlineto(double, double);
void rrcurveto(double, double, double, double, double, double);
};
#endif
|