summaryrefslogtreecommitdiff
path: root/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh')
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh96
1 files changed, 0 insertions, 96 deletions
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh
deleted file mode 100644
index dff5514772a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh
+++ /dev/null
@@ -1,96 +0,0 @@
-// -*- related-file-name: "../../libefont/t1bounds.cc" -*-
-#ifndef EFONT_T1BOUNDS_HH
-#define EFONT_T1BOUNDS_HH
-#include <efont/t1interp.hh>
-#include <lcdf/transform.hh>
-namespace Efont {
-
-class CharstringBounds : public CharstringInterp { public:
-
- CharstringBounds();
- CharstringBounds(const Transform&);
- CharstringBounds(const Transform&, const Vector<double>& weight_vec);
- ~CharstringBounds() { }
-
- const Point& width() const { return _width; }
- double x_width() const { return _width.x; }
- bool bb_known() const { return KNOWN(_lb.x); }
- double bb_left() const { return _lb.x; }
- double bb_top() const { return _rt.y; }
- double bb_right() const { return _rt.x; }
- double bb_bottom() const { return _lb.y; }
- const Point& bb_bottom_left() const { return _lb; }
- const Point& bb_top_right() const { return _rt; }
-
- void act_width(int, const Point&);
- void act_line(int, const Point&, const Point&);
- void act_curve(int, const Point&, const Point&, const Point&, const Point&);
- inline void mark(const Point&);
-
- void clear();
- bool char_bounds(const CharstringContext&, bool shift = true);
- void translate(double dx, double dy);
- inline Point transform(const Point& p) const;
-
- // output: [left, bottom, right, top]
- bool output(double bb[4], double& width, bool use_cur_width = false) const;
- static bool bounds(const CharstringContext&,
- double bounds[4], double& width);
- static bool bounds(const Transform&, const CharstringContext&,
- double bounds[4], double& width);
-
- private:
-
- Point _lb;
- Point _rt;
- Point _width;
- Transform _xf;
- Transform _nonfont_xf;
- const CharstringProgram* _last_xf_program;
-
- void set_xf(const CharstringProgram*);
-
- inline void xf_mark(const Point&);
- void xf_mark(const Bezier&);
-
- inline bool xf_inside(const Point&) const;
- inline bool xf_controls_inside(const Bezier&) const;
-
-};
-
-inline void CharstringBounds::xf_mark(const Point& p)
-{
- if (!KNOWN(_lb.x))
- _lb = _rt = p;
- if (p.x < _lb.x)
- _lb.x = p.x;
- else if (p.x > _rt.x)
- _rt.x = p.x;
- if (p.y < _lb.y)
- _lb.y = p.y;
- else if (p.y > _rt.y)
- _rt.y = p.y;
-}
-
-inline void CharstringBounds::mark(const Point& p)
-{
- xf_mark(p * _xf);
-}
-
-inline bool CharstringBounds::xf_inside(const Point& p) const
-{
- return p.x >= _lb.x && p.x <= _rt.x && p.y >= _lb.y && p.y <= _rt.y;
-}
-
-inline bool CharstringBounds::xf_controls_inside(const Bezier& b) const
-{
- return xf_inside(b.point(1)) && xf_inside(b.point(2));
-}
-
-inline Point CharstringBounds::transform(const Point& p) const
-{
- return p * _xf;
-}
-
-}
-#endif