Back to index

tetex-bin  3.0
blues.h
Go to the documentation of this file.
00001 /* $XConsortium: blues.h,v 1.2 91/10/10 11:17:52 rws Exp $ */
00002 /* Copyright International Business Machines, Corp. 1991
00003  * All Rights Reserved
00004  * Copyright Lexmark International, Inc. 1991
00005  * All Rights Reserved
00006  * Portions Copyright (c) 1990 Adobe Systems Incorporated.
00007  * All Rights Reserved
00008  *
00009  * License to use, copy, modify, and distribute this software and its
00010  * documentation for any purpose and without fee is hereby granted,
00011  * provided that the above copyright notice appear in all copies and that
00012  * both that copyright notice and this permission notice appear in
00013  * supporting documentation, and that the name of IBM or Lexmark or Adobe
00014  * not be used in advertising or publicity pertaining to distribution of
00015  * the software without specific, written prior permission.
00016  *
00017  * IBM, LEXMARK, AND ADOBE PROVIDE THIS SOFTWARE "AS IS", WITHOUT ANY
00018  * WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
00019  * LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
00020  * PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  THE
00021  * ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE, INCLUDING
00022  * ANY DUTY TO SUPPORT OR MAINTAIN, BELONGS TO THE LICENSEE.  SHOULD ANY
00023  * PORTION OF THE SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM,
00024  * LEXMARK, OR ADOBE) ASSUMES THE ENTIRE COST OF ALL SERVICING, REPAIR AND
00025  * CORRECTION.  IN NO EVENT SHALL IBM, LEXMARK, OR ADOBE BE LIABLE FOR ANY
00026  * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
00027  * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
00028  * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00029  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00030  */
00031 
00032 #include "types.h"
00033 
00034 extern psobj *GetType1CharString();
00035  
00036 #define TOPLEFT 1
00037 #define BOTTOMRIGHT 2
00038  
00039 #define NUMBLUEVALUES 14
00040 #define NUMOTHERBLUES 10
00041 #define NUMFAMILYBLUES 14
00042 #define NUMFAMILYOTHERBLUES 10
00043 #define NUMSTEMSNAPH 12
00044 #define NUMSTEMSNAPV 12
00045 #define NUMSTDHW 1
00046 #define NUMSTDVW 1
00047  
00048 #define DEFAULTBOLDSTEMWIDTH 2.0
00049  
00050 #define MAXALIGNMENTZONES ((NUMBLUEVALUES+NUMOTHERBLUES)/2)
00051 #define DEFAULTBLUESCALE 0.039625
00052 #define DEFAULTBLUESHIFT 7
00053 #define DEFAULTBLUEFUZZ 1
00054 #define DEFAULTSTDHW 0
00055 #define DEFAULTSTDVW 0
00056 #define DEFAULTFORCEBOLD FALSE
00057 #define DEFAULTLANGUAGEGROUP 0
00058 #define DEFAULTRNDSTEMUP FALSE
00059 #define DEFAULTLENIV 4
00060 #define DEFAULTEXPANSIONFACTOR 0.06
00061  
00062 /* see Type 1 Font Format book for explanations of these values */
00063 /* Note that we're currently doing nothing for minfeature and password. */
00064 struct blues_struct {
00065         struct blues_struct *next;   /* ptr to next Blues structure in list */
00066         int numBlueValues;   /* # of BlueValues in following array */
00067         int BlueValues[NUMBLUEVALUES];
00068         int numOtherBlues;   /* # of OtherBlues values in following array */
00069         int OtherBlues[NUMOTHERBLUES];
00070         int numFamilyBlues;   /* # of FamilyBlues values in following array */
00071         int FamilyBlues[NUMFAMILYBLUES];
00072         int numFamilyOtherBlues; /* # of FamilyOtherBlues values in  */
00073         int FamilyOtherBlues[NUMFAMILYOTHERBLUES]; /* this array */
00074         DOUBLE BlueScale;
00075         int BlueShift;
00076         int BlueFuzz;
00077         DOUBLE StdHW;
00078         DOUBLE StdVW;
00079         int numStemSnapH;   /* # of StemSnapH values in following array */
00080         DOUBLE StemSnapH[NUMSTEMSNAPH];
00081         int numStemSnapV;   /* # of StemSnapV values in following array */
00082         DOUBLE StemSnapV[NUMSTEMSNAPV];
00083         int ForceBold;
00084         int LanguageGroup;
00085         int RndStemUp;
00086         int lenIV;
00087         DOUBLE ExpansionFactor;
00088 };
00089  
00090 /* the alignment zone structure -- somewhat similar to the stem structure */
00091 /* see Adobe Type1 Font Format book about the terms used in this structure */
00092 struct alignmentzone {
00093         int topzone;        /* TRUE if a topzone, FALSE if a bottom zone */
00094         DOUBLE bottomy, topy;       /* interval of this alignment zone */
00095 };