summaryrefslogtreecommitdiff
path: root/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.hh
blob: ffe35668f9440e98d1309fca06aaddd3cb307eaa (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
#ifndef MYFONT_HH
#define MYFONT_HH
#include <efont/t1font.hh>
namespace Efont { class MultipleMasterSpace; }
class ErrorHandler;

class MyFont : public Efont::Type1Font { public:

    MyFont(Efont::Type1Reader &);
    ~MyFont();

    bool set_design_vector(Efont::MultipleMasterSpace *, const Vector<double> &, ErrorHandler * = 0);

    void interpolate_dicts(bool force_integers, ErrorHandler *);
    void interpolate_charstrings(int precision, ErrorHandler * = 0);

  private:

    typedef Vector<double> NumVector;

    int _nmasters;
    Vector<double> _weight_vector;

    void interpolate_dict_int(PermString, Dict, ErrorHandler *);
    void interpolate_dict_num(PermString, Dict, bool round_integer = false);
    void interpolate_dict_numvec(PermString, Dict, int round_mode = 0, bool executable = false);
    void kill_def(Efont::Type1Definition *, int which_dict = -1);

};

#endif