summaryrefslogtreecommitdiff
path: root/Build/source/utils/lcdf-typetools/mmpfb/myfont.hh
blob: 9b29a9f4111e7018add971fc75bb91f6fda26103 (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