summaryrefslogtreecommitdiff
path: root/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh')
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh113
1 files changed, 0 insertions, 113 deletions
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh
deleted file mode 100644
index 360912a00d1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh
+++ /dev/null
@@ -1,113 +0,0 @@
-// -*- related-file-name: "../../libefont/pairop.cc" -*-
-#ifndef PAIROP_HH
-#define PAIROP_HH
-#include <efont/encoding.hh> /* get GlyphIndex */
-namespace Efont {
-
-enum PairOpDefs {
-
- opNoop = -1,
- opLigature = -2,
-
- opLigSimple = 0,
- opLigSaveLeft = 1,
- opLigSaveRight = 2,
- opLigPast1 = 4,
- opLigPast2 = 8,
-
- opAllblock = 0
-
-};
-
-
-typedef int PairOpIndex;
-
-
-class PairOp { public:
-
- PairOp() { }
- inline PairOp(GlyphIndex l, GlyphIndex r, int v, PairOpIndex nl);
- inline PairOp(GlyphIndex l, GlyphIndex r, GlyphIndex x, int kind, PairOpIndex nl);
-
- void noopify() { _val = opNoop; }
- void set_value(int val) { _val = val; }
-
- inline void set_next(PairOpIndex);
-
- bool is_lig() const { return _val <= opLigature; }
- bool is_kern() const { return _val >= 0; }
- bool is_noop() const { return _val == opNoop; }
- int lig_kind() const { assert(is_lig()); return -_val+opLigature; }
-
- GlyphIndex left() const { return _left; }
- GlyphIndex right() const { return _right; }
- GlyphIndex result() const { assert(is_lig()); return _result; }
- int value() const { return _val; }
- PairOpIndex next_left() const { return _next_left; }
-
- private:
-
- GlyphIndex _left;
- GlyphIndex _right;
- GlyphIndex _result;
- int _val;
-
- PairOpIndex _next_left;
-
-};
-
-
-class PairProgram { public:
-
- PairProgram() : _reversed(false) { }
- PairProgram(const PairProgram &);
-
- void reserve_glyphs(int);
-
- PairOpIndex find_left(GlyphIndex gi) const { return _left_map[gi]; }
- PairOpIndex find(GlyphIndex leftgi, GlyphIndex rightgi) const;
-
- int op_count() const { return _op.size(); }
- const PairOp &op(PairOpIndex i) const { return _op[i]; }
-
- // Return true if it's a duplicate.
- bool add_kern(GlyphIndex, GlyphIndex, int);
- bool add_lig(GlyphIndex, GlyphIndex, GlyphIndex, int kind = opLigSimple);
-
- void set_reversed(bool r) { _reversed = r; }
- void unreverse();
- void optimize();
-
- void print() const;
-
- private:
-
- bool _reversed;
- Vector<PairOpIndex> _left_map;
- Vector<PairOp> _op;
-
- inline const char *print_name(GlyphIndex) const;
-
- PairProgram &operator=(const PairProgram &) { assert(0); return *this; }
-
-};
-
-
-inline PairOp::PairOp(GlyphIndex l, GlyphIndex r, int v, PairOpIndex nl)
- : _left(l), _right(r), _result(), _val(v), _next_left(nl)
-{
-}
-
-inline PairOp::PairOp(GlyphIndex l, GlyphIndex r, GlyphIndex x, int kind,
- PairOpIndex nl)
- : _left(l), _right(r), _result(x), _val(opLigature - kind), _next_left(nl)
-{
-}
-
-inline void PairOp::set_next(PairOpIndex nl)
-{
- _next_left = nl;
-}
-
-}
-#endif