summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/stemdb.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/stemdb.h')
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/stemdb.h210
1 files changed, 0 insertions, 210 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/stemdb.h b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/stemdb.h
deleted file mode 100644
index 83a02842a6a..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/stemdb.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright (C) 2005-2008 by George Williams */
-/*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
-
- * The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _STEMDB_H_
-# define _STEMDB_H_
-
-# include "pfaedit.h"
-
-typedef struct glyphdata {
- SplineFont *sf;
- BlueData bd;
- int fuzz;
- SplineChar *sc;
- int layer;
- int emsize;
- int order2;
- int has_slant;
- BasePoint slant_unit;
- int ccnt;
- int *contourends;
- int realcnt; /* Includes control points, excludes implied points */
- int norefpcnt; /* Does not include points in glyphs with references */
- int pcnt; /* Includes control points, includes implied points */
- struct pointdata *points; /* Entries corresponding to control points are empty */
- int stemcnt;
- struct stemdata *stems;
- int linecnt;
- struct linedata *lines;
- struct stembundle *hbundle;
- struct stembundle *vbundle;
- struct stembundle *ibundle;
-
- /* Temporary values, quickly freed */
- int mcnt;
- struct monotonic *ms;
- struct monotonic **space;
- int scnt;
- Spline **sspace;
- struct st *stspace;
- DBounds size;
- struct pointdata **pspace;
- struct segment {
- double start, end, sbase, ebase;
- int curved, scurved, ecurved;
- } *lspace, *rspace, *bothspace, *activespace;
-
- int only_hv;
-} GlyphData;
-
-typedef struct pointdata {
- SplinePoint *sp;
- SplineSet *ss;
- int ttfindex; /* normally same as sp->ttfindex, but needed for offcurve points */
- BasePoint base; /* normally same as sp->me, but needed for offcurve points */
- BasePoint nextunit, prevunit; /* unit vectors pointing in the next/prev directions */
- struct linedata *nextline, *prevline; /* any other points lying on approximately the same line */
- Spline *nextedges[2], *prevedges[2]; /* There should always be a matching spline, which may end up as part of a stem, and may not */
- Spline *bothedge;
- double next_e_t[2], prev_e_t[2]; /* Location on other edge where our normal hits it */
- double both_e_t;
- int next_e_cnt, prev_e_cnt;
- double next_dist[2], prev_dist[2]; /* Distance from the point to the matching edge */
- struct stemdata **nextstems, **prevstems;
- int *next_is_l, *prev_is_l;
- int nextcnt, prevcnt;
- double nextlen, prevlen;
- int value; /* Temporary value, used to compare points assigned to the same edge and determine which one can be used as a reference point*/
- unsigned int nextlinear: 1;
- unsigned int nextzero: 1;
- unsigned int prevlinear: 1;
- unsigned int prevzero: 1;
- unsigned int colinear: 1;
- unsigned int symetrical_h: 1; /* Are next & prev symetrical? */
- unsigned int symetrical_v: 1; /* Are next & prev symetrical? */
- unsigned int next_hor: 1;
- unsigned int next_ver: 1;
- unsigned int prev_hor: 1;
- unsigned int prev_ver: 1;
- unsigned int ticked: 1;
- uint8 touched, affected;
- uint8 x_extr, y_extr;
- uint8 x_corner, y_corner;
- BasePoint newpos;
- BasePoint newnext, newprev;
- BasePoint posdir; /* If point has been positioned in 1 direction, this is that direction */
- double projection; /* temporary value */
-} PointData;
-
-typedef struct linedata {
- BasePoint unit;
- BasePoint online;
- uint8 is_left;
- int pcnt;
- double length;
- struct pointdata **points;
-} LineData;
-
-typedef struct stemdata {
- BasePoint unit; /* Unit vector pointing in direction of stem */
- BasePoint l_to_r; /* Unit vector pointing from left to right (across stem) */
- BasePoint left; /* a point on one side of the stem (not necissarily left, even for vertical stems) */
- BasePoint right; /* and one on the other */
- BasePoint newunit; /* Unit vector after repositioning (e. g. in Metafont routines) */
- BasePoint newleft, newright;/* Left and right edges after repositioning */
- int leftidx, rightidx; /* TTF indices of the left and right key points */
- struct pointdata *keypts[4];/* Uppest and lowest points on left and right edges. Used for positioning diagonal stems */
- double lmin, lmax, rmin, rmax;
- double width;
- int chunk_cnt; /* number of separate point-pairs on this stem */
- struct stem_chunk {
- struct stemdata *parent;
- struct pointdata *l;
- struct pointdata *r;
- uint8 lpotential, rpotential;
- uint8 lnext, rnext; /* are we using the next/prev side of the left/right points */
- uint8 ltick, rtick;
- uint8 stub;
- uint8 stemcheat; /* It's not a real stem, but it's something we'd like PostScript to hint for us */
- uint8 is_ball; /* Specifies if this chunk marks the opposite sides of a ball terminal (useful for TTF instructions) */
- int l_e_idx, r_e_idx; /* Which of the opposed edges assigned to the left and right points corresponds to this chunk */
- } *chunks;
- int activecnt;
- struct segment *active;
- uint8 toobig; /* Stem is fatter than tall, unlikely to be a real stem */
- uint8 positioned;
- uint8 ticked;
- uint8 ghost;
- uint8 bbox;
- uint8 ldone, rdone;
- uint8 italic;
- int blue; /* Blue zone a ghost hint is attached to */
- double len, clen; /* Length of linear segments. clen adds "length" of curved bits */
- struct stembundle *bundle;
- int lpcnt, rpcnt; /* Count of points assigned to left and right edges of this stem */
- struct linedata *leftline, *rightline;
- struct stemdata *master, *next_c_m, *prev_c_m;
- int confl_cnt;
- int dep_cnt;
- int serif_cnt;
- struct dependent_stem {
- struct stemdata *stem;
- uint8 lbase;
- char dep_type; /* can be 'a' (align), 'i' (interpolate), 'm' (move) or 's' (serif) */
- } *dependent; /* Lists other stems dependent from the given stem */
- struct dependent_serif {
- struct stemdata *stem;
- double width; /* The distance from an edge of the main stem to the opposite edge of the serif stem */
- uint8 lbase;
- uint8 is_ball;
- } *serifs; /* Lists serifs and other elements protruding from the base stem */
-} StemData;
-
-typedef struct vchunk {
- struct stem_chunk *chunk;
- double dist;
- int parallel;
- int value;
-} VChunk;
-
-struct stembounds {
- struct stembounds *next;
- struct stemdata *stem;
- double tstart, tend;
- uint8 isr;
-};
-
-struct splinesteminfo {
- Spline *s;
- struct stembounds *sb;
-};
-
-typedef struct stembundle {
- BasePoint unit; /* All these stems are parallel, pointing in unit direction */
- BasePoint l_to_r; /* Axis along which these stems are ordered (normal to unit) */
- BasePoint bp; /* Base point for measuring by l_to_r (stem->lpos,rpos) */
- int cnt; /* Number of stems in the bundle */
- struct stemdata **stemlist;
-} StemBundle;
-
-extern struct glyphdata *GlyphDataBuild(SplineChar *sc, int layer, BlueData *bd, int use_existing);
-extern struct glyphdata *GlyphDataInit(SplineChar *sc, int layer, double em_size, int only_hv);
-extern struct glyphdata *StemInfoToStemData( struct glyphdata *gd,StemInfo *si,int is_v );
-extern struct glyphdata *DStemInfoToStemData( struct glyphdata *gd,DStemInfo *dsi );
-extern int IsStemAssignedToPoint( struct pointdata *pd,struct stemdata *stem,int is_next );
-extern void GlyphDataFree(struct glyphdata *gd);
-
-#endif /* _STEMDB_H_ */