From 1b5e22617d60408f56c0f4651037cf87f1fc2454 Mon Sep 17 00:00:00 2001 From: ellson Date: Thu, 27 Jul 2006 00:05:34 +0000 Subject: [PATCH] - restore usershapes in -Tfig - move XFIG_FORMAT3.2.txt to a more useful location now that figgen.c has gone --- lib/common/XFIG_FORMAT3.2.txt | 534 ---------------------------------- 1 file changed, 534 deletions(-) delete mode 100644 lib/common/XFIG_FORMAT3.2.txt diff --git a/lib/common/XFIG_FORMAT3.2.txt b/lib/common/XFIG_FORMAT3.2.txt deleted file mode 100644 index 573eb6ab2..000000000 --- a/lib/common/XFIG_FORMAT3.2.txt +++ /dev/null @@ -1,534 +0,0 @@ -This specification document was obtained from: - http://duke.usask.ca/~macphed/soft/fig/FORMAT3.2.txt -on 4 April 2006 by ellson@graphviz.org -=========================================================================== - -/* - * FIG : Facility for Interactive Generation of figures - * Copyright (c) 1985 by Supoj Sutanthavibul - * Parts Copyright (c) 1994 by Brian V. Smith - * Parts Copyright (c) 1991 by Paul King - * Parts Copyright (c) 1995 by C. Blanc and C. Schlick - * - * The X Consortium, and any party obtaining a copy of these files from - * the X Consortium, directly or indirectly, is granted, free of charge, a - * full and unrestricted irrevocable, world-wide, paid up, royalty-free, - * nonexclusive right and license to deal in this software and - * documentation files (the "Software"), including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons who receive - * copies from any such party to do so, with the only requirement being - * that this copyright notice remain intact. This license includes without - * limitation a license to do the foregoing actions under any patents of - * the party supplying this software to the X Consortium. - */ - -The new components in protocol 3.2 are the paper size, magnification, -single/multiple page indicator and transparent color for GIF export in the -header. - -The other modification between version 3.1 and version 3.2 of the -protocol is the mathematical model used for splines. The new version -uses X-splines which allows the user to mix interpolation and approximation -points in a same curve. More precisely, it means that an X-spline curve -is neither an interpolated spline nor an approximated one, it is BOTH -(the behaviour of each point is controlled by one single parameter -called "shape factor"). For additional information about X-splines, see: - - "X-Splines: A Spline Model Designed for the End User" - by C. Blanc and C. Schlick, Proceedings of SIGGRAPH'95 - -Caveat: Because spline models of previous versions (quadratic B-splines -and Bezier with hidden points) are no longer supported, curves that are -present in version 3.1 and older files are automatically converted to -X-splines. This translation is only an approximation process. It means -that the converted curves are not exactly the same as the original ones. -Though the translation usually provides almost identical curves, some -hand-fitting may be needed in some pathological cases. - -------------------------------------------------------------------------------- -Description of the Fig Format Follows -------------------------------------------------------------------------------- - -(1) The very first line is a comment line containing the name and version: - #FIG 3.2 - - The character # at the first column of a line indicates that the line - is a comment line which will be ignored. - -(2) The first non-comment line consists of the following: - - string orientation ("Landscape" or "Portrait") - string justification ("Center" or "Flush Left") - string units ("Metric" or "Inches") - string papersize ("Letter", "Legal", "Ledger", "Tabloid", - "A", "B", "C", "D", "E", - "A4", "A3", "A2", "A1", "A0" and "B5") - float magnification (export and print magnification, %) - string multiple-page ("Single" or "Multiple" pages) - int transparent color (color number for transparent color for GIF - export. -2=None, -1=background, 0-31 for - standard colors or 32- for user colors) - int resolution coord_system (Fig units/inch and coordinate system: - 1: origin at lower left corner (NOT USED) - 2: upper left) - - Fig_resolution is the resolution of the figure in the file. - Xfig will always write the file with a resolution of 1200ppi so it - will scale the figure upon reading it in if its resolution is different - from 1200ppi. Pixels are assumed to be square. - - Xfig will read the orientation string and change the canvas to match - either the Landscape or Portrait mode of the figure file. - - The units specification is self-explanatory. - - The coordinate_system variable is ignored - the origin is ALWAYS the - upper-left corner. - - ** Coordinates are given in "fig_resolution" units. - ** Line thicknesses are given in 80-ths of an inch ("display units"). - ** dash-lengths/dot-gaps are given in 80-ths of an inch. - - -(3) The rest of the file contains various objects. An object can be one - of six classes (or types). - - 0) Color pseudo-object. - 1) Arc. - 2) Ellipse which is a generalization of circle. - 3) Polyline which includes polygon and box. - 4) Spline which includes - closed/open approximated/interpolated/x-spline spline. - 5) Text. - 6) Compound object which is composed of one or more objects. - - In the following elaboration on object formats, every value of fig - output are separated by blank characters or new line ('\n'). The - value of the unused parameters will be -1. - - Some fields are described as "enumeration type" or "bit vector"; the - values which these fields can take are defined in the header file object.h. - The pen_style field is unused. - These values may be defined in some future version of Fig. - - The two color fields (pen and fill; pen only, for texts) are - defined as follows: - - -1 = Default - 0 = Black - 1 = Blue - 2 = Green - 3 = Cyan - 4 = Red - 5 = Magenta - 6 = Yellow - 7 = White - 8-11 = four shades of blue (dark to lighter) - 12-14 = three shades of green (dark to lighter) - 15-17 = three shades of cyan (dark to lighter) - 18-20 = three shades of red (dark to lighter) - 21-23 = three shades of magenta (dark to lighter) - 24-26 = three shades of brown (dark to lighter) - 27-30 = four shades of pink (dark to lighter) - 31 = Gold - - values from 32 to 543 (512 total) are user colors and - are defined in color pseudo-objects (type 0) - - For WHITE color, the area fill field is defined as follows: - - -1 = not filled - 0 = black - ... values from 1 to 19 are shades of grey, from darker to lighter - 20 = white - 21-40 not used - 41-56 see patterns for colors, below - - For BLACK or DEFAULT color, the area fill field is defined as follows: - - -1 = not filled - 0 = white - ... values from 1 to 19 are shades of grey, from lighter to darker - 20 = black - 21-40 not used - 41-56 see patterns for colors, below - - For all other colors, the area fill field is defined as follows: - - -1 = not filled - 0 = black - ... values from 1 to 19 are "shades" of the color, from darker to lighter. - A shade is defined as the color mixed with black - 20 = full saturation of the color - ... values from 21 to 39 are "tints" of the color from the color to white. - A tint is defined as the color mixed with white - 40 = white - 41 = 30 degree left diagonal pattern - 42 = 30 degree right diagonal pattern - 43 = 30 degree crosshatch - 44 = 45 degree left diagonal pattern - 45 = 45 degree right diagonal pattern - 46 = 45 degree crosshatch - 47 = bricks - 48 = circles - 49 = horizontal lines - 50 = vertical lines - 51 = crosshatch - 52 = fish scales - 53 = small fish scales - 54 = octagons - 55 = horizontal "tire treads" - 56 = vertical "tire treads" - - The depth field is defined as follows: - - 0 ... 999 where larger value means object is deeper than (under) - objects with smaller depth - - The line_style field is defined as follows: - - -1 = Default - 0 = Solid - 1 = Dashed - 2 = Dotted - 3 = Dash-dotted - 4 = Dash-double-dotted - 5 = Dash-triple-dotted - - The style_val field is defined as the length, in 1/80 inches, of the on/off - dashes for dashed lines, and the distance between the dots, in 1/80 inches, - for dotted lines. - - The join_style field is defined FOR LINES only as follows: - - 0 = Miter (the default in xfig 2.1 and earlier) - 1 = Bevel - 2 = Round - - The cap_style field is defined FOR LINES, OPEN SPLINES and ARCS only as follows: - - 0 = Butt (the default in xfig 2.1 and earlier) - 1 = Round - 2 = Projecting - - The arrow_type field is defined for LINES, ARCS and OPEN SPLINES - only as follows: - - 0 = Stick-type (the default in xfig 2.1 and earlier) - 1 = Closed triangle: - |\ - | \ - | \ - | / - | / - |/ - 2 = Closed with "indented" butt: - |\ - \ \ - \ \ - \ \ - / / - / / - / / - |/ - 3 = Closed with "pointed" butt: - |\ - / \ - / \ - / \ - \ / - \ / - \ / - |/ - - The arrow_style field is defined for LINES, ARCS and OPEN SPLINES - only as follows: - - 0 = Hollow (actually filled with white) - 1 = Filled with pen_color - -(3.0) OBJECT DEFINITION: - - (3.1) Color Pseudo-objects (user-defined colors) - This is used to define arbitrary colors beyond the 32 standard colors. - The color objects must be defined before any other Fig objects. - - First line: - type name (brief description) - ---- ---- ------------------- - int object_code (always 0) - int color_number (color number, from 32-543 (512 total)) - hex string rgb values (hexadecimal string describing red, - green and blue values (e.g. #330099) ) - - (3.2) ARC - - First line: - type name (brief description) - ---- ---- ------------------- - int object_code (always 5) - int sub_type (0: pie-wedge (closed) - 1: open ended arc) - int line_style (enumeration type) - int line_thickness (1/80 inch) - int pen_color (enumeration type, pen color) - int fill_color (enumeration type, fill color) - int depth (enumeration type) - int pen_style (pen style, not used) - int area_fill (enumeration type, -1 = no fill) - float style_val (1/80 inch) - int cap_style (enumeration type) - int direction (0: clockwise, 1: counterclockwise) - int forward_arrow (0: no forward arrow, 1: on) - int backward_arrow (0: no forward arrow, 1: on) - float center_x, center_y (center of the arc) - int x1, y1 (Fig units, the 1st point the user entered) - int x2, y2 (Fig units, the 2nd point) - int x3, y3 (Fig units, the last point) - - Forward arrow line (Optional; absent if forward_arrow is 0): - type name (brief description) - ---- ---- ------------------- - int arrow_type (enumeration type) - int arrow_style (enumeration type) - float arrow_thickness (1/80 inch) - float arrow_width (Fig units) - float arrow_height (Fig units) - - Backward arrow line (Optional; absent if backward_arrow is 0): - type name (brief description) - ---- ---- ------------------- - int arrow_type (enumeration type) - int arrow_style (enumeration type) - float arrow_thickness (1/80 inch) - float arrow_width (Fig units) - float arrow_height (Fig units) - - (3.3) COMPOUND - - A line with object code 6 signifies the start of a compound. - There are four more numbers on this line which indicate the - upper left corner and the lower right corner of the bounding - box of this compound. A line with object code -6 signifies - the end of the compound. Compound may be nested. - - First line: - type name (brief description) - ---- ---- ------------------- - int object_code (always 6) - int upperleft_corner_x (Fig units) - int upperleft_corner_y (Fig units) - int lowerright_corner_x (Fig units) - int lowerright_corner_y (Fig units) - - Subsequent lines: - objects - . - . - - Last line: - -6 - - (3.4) ELLIPSE - - First line: - type name (brief description) - ---- ---- ------------------- - int object_code (always 1) - int sub_type (1: ellipse defined by radii - 2: ellipse defined by diameters - 3: circle defined by radius - 4: circle defined by diameter) - int line_style (enumeration type) - int thickness (1/80 inch) - int pen_color (enumeration type, pen color) - int fill_color (enumeration type, fill color) - int depth (enumeration type) - int pen_style (pen style, not used) - int area_fill (enumeration type, -1 = no fill) - float style_val (1/80 inch) - int direction (always 1) - float angle (radians, the angle of the x-axis) - int center_x, center_y (Fig units) - int radius_x, radius_y (Fig units) - int start_x, start_y (Fig units; the 1st point entered) - int end_x, end_y (Fig units; the last point entered) - - (3.5) POLYLINE - - First line: - type name (brief description) - ---- ---- ------------------- - int object_code (always 2) - int sub_type (1: polyline - 2: box - 3: polygon - 4: arc-box) - 5: imported-picture bounding-box) - int line_style (enumeration type) - int thickness (1/80 inch) - int pen_color (enumeration type, pen color) - int fill_color (enumeration type, fill color) - int depth (enumeration type) - int pen_style (pen style, not used) - int area_fill (enumeration type, -1 = no fill) - float style_val (1/80 inch) - int join_style (enumeration type) - int cap_style (enumeration type, only used for POLYLINE) - int radius (1/80 inch, radius of arc-boxes) - int forward_arrow (0: off, 1: on) - int backward_arrow (0: off, 1: on) - int npoints (number of points in line) - - Forward arrow line: same as ARC object - - Backward arrow line: same as ARC object - - Points line: - type name (brief description) - ---- ---- ------------------- - int x1, y1 (Fig units) - int x2, y2 (Fig units) - . - . - int xnpoints ynpoints (this will be the same as the 1st - point for polygon and box) - - PIC line: - type name (brief description) - ---- ---- ------------------- - boolean flipped orientation = normal (0) or flipped (1) - char file[] name of picture file to import - - (3.6) SPLINE - - First line: - type name (brief description) - ---- ---- ------------------- - int object_code (always 3) - int sub_type (0: opened approximated spline - 1: closed approximated spline - 2: opened interpolated spline - 3: closed interpolated spline - 4: opened x-spline - 5: closed x-spline) - int line_style (See the end of this section) - int thickness (1/80 inch) - int pen_color (enumeration type, pen color) - int fill_color (enumeration type, fill color) - int depth (enumeration type) - int pen_style (pen style, not used) - int area_fill (enumeration type, -1 = no fill) - float style_val (1/80 inch) - int cap_style (enumeration type, only used for open splines) - int forward_arrow (0: off, 1: on) - int backward_arrow (0: off, 1: on) - int npoints (number of control points in spline) - - Forward arrow line: same as ARC object - - Backward arrow line: same as ARC object - - Points line: same as POLYLINE object - - Control points line : - - There is one shape factor for each point. The value of this factor - must be between -1 (which means that the spline is interpolated at - this point) and 1 (which means that the spline is approximated at - this point). The spline is always smooth in the neighbourhood of a - control point, except when the value of the factor is 0 for which - there is a first-order discontinuity (i.e. angular point). - - (3.7) TEXT - type name (brief description) - ---- ---- ------------------- - int object (always 4) - int sub_type (0: Left justified - 1: Center justified - 2: Right justified) - int color (enumeration type) - int depth (enumeration type) - int pen_style (enumeration , not used) - int font (enumeration type) - float font_size (font size in points) - float angle (radians, the angle of the text) - int font_flags (bit vector) - float height (Fig units) - float length (Fig units) - int x, y (Fig units, coordinate of the origin - of the string. If sub_type = 0, it is - the lower left corner of the string. - If sub_type = 1, it is the lower - center. Otherwise it is the lower - right corner of the string.) - char string[] (ASCII characters; starts after a blank - character following the last number and - ends before the sequence '\001'. This - sequence is not part of the string. - Characters above octal 177 are - represented by \xxx where xxx is the - octal value. This permits fig files to - be edited with 7-bit editors and sent - by e-mail without data loss. - Note that the string may contain '\n'.) - - The font_flags field is defined as follows: - - Bit Description - - 0 Rigid text (text doesn't scale when scaling compound objects) - 1 Special text (for LaTeX) - 2 PostScript font (otherwise LaTeX font is used) - 3 Hidden text - - The font field is defined as follows: - - For font_flags bit 2 = 0 (LaTeX fonts): - - 0 Default font - 1 Roman - 2 Bold - 3 Italic - 4 Sans Serif - 5 Typewriter - - For font_flags bit 2 = 1 (PostScript fonts): - - -1 Default font - 0 Times Roman - 1 Times Italic - 2 Times Bold - 3 Times Bold Italic - 4 AvantGarde Book - 5 AvantGarde Book Oblique - 6 AvantGarde Demi - 7 AvantGarde Demi Oblique - 8 Bookman Light - 9 Bookman Light Italic - 10 Bookman Demi - 11 Bookman Demi Italic - 12 Courier - 13 Courier Oblique - 14 Courier Bold - 15 Courier Bold Oblique - 16 Helvetica - 17 Helvetica Oblique - 18 Helvetica Bold - 19 Helvetica Bold Oblique - 20 Helvetica Narrow - 21 Helvetica Narrow Oblique - 22 Helvetica Narrow Bold - 23 Helvetica Narrow Bold Oblique - 24 New Century Schoolbook Roman - 25 New Century Schoolbook Italic - 26 New Century Schoolbook Bold - 27 New Century Schoolbook Bold Italic - 28 Palatino Roman - 29 Palatino Italic - 30 Palatino Bold - 31 Palatino Bold Italic - 32 Symbol - 33 Zapf Chancery Medium Italic - 34 Zapf Dingbats -- 2.40.0