summaryrefslogtreecommitdiff
path: root/print/pic2fig/files/patch-FORMAT3.2
diff options
context:
space:
mode:
authorAdam Weinberger <adamw@FreeBSD.org>2014-07-29 14:02:16 +0000
committerAdam Weinberger <adamw@FreeBSD.org>2014-07-29 14:02:16 +0000
commitba06c2d6a37dc081a3a8c5a01426a0a009428ca9 (patch)
tree7b1cdea9a21ff4ed307e29514e9d8286d9d83dfa /print/pic2fig/files/patch-FORMAT3.2
parentStage, and pull the patches into a sed command. (diff)
Rename p*/ patch-xy patches to reflect the files they modify.
Notes
Notes: svn path=/head/; revision=363322
Diffstat (limited to 'print/pic2fig/files/patch-FORMAT3.2')
-rw-r--r--print/pic2fig/files/patch-FORMAT3.2566
1 files changed, 566 insertions, 0 deletions
diff --git a/print/pic2fig/files/patch-FORMAT3.2 b/print/pic2fig/files/patch-FORMAT3.2
new file mode 100644
index 000000000000..183915b57501
--- /dev/null
+++ b/print/pic2fig/files/patch-FORMAT3.2
@@ -0,0 +1,566 @@
+--- FORMAT3.2.orig Wed Apr 3 10:27:14 2002
++++ FORMAT3.2 Wed Apr 3 10:27:14 2002
+@@ -0,0 +1,563 @@
++/*
++ * FIG : Facility for Interactive Generation of figures
++ * Copyright (c) 1985 by Supoj Sutanthavibul
++ * Parts Copyright (c) 1989-1999 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 preserved when the Fig file is read in.
++ The user may edit them with the popup editor.
++
++ The comment line(s) must immediately precede the object to which they
++ are associated. In the case of the "whole figure comments" mentioned
++ below, they immediately precede the (resolution,coord_system) line.
++
++(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. -3=background, -2=None, -1=Default,
++ 0-31 for standard colors or 32- for user colors)
++ # optional comment (An optional set of comments may be here,
++ which are associated with the whole figure)
++ 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 1/80 inch (0.3175mm) or 1 screen pixel.
++ When exporting to EPS, PostScript or any bitmap format (e.g. GIF), the
++ line thickness is reduced to 1/160 inch (0.159mm) to "lighten" the look.
++ ** 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)
++
++ Your X server may limit the number of colors to something less
++ than this, especially on a 8-bit PseudoColor visual, where
++ the number of usable colors will be 256 minus the number of colors
++ xfig preallocates for itself and the 32 standard colors (about 48).
++
++ 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 = horizontal bricks
++ 48 = vertical bricks
++ 49 = horizontal lines
++ 50 = vertical lines
++ 51 = crosshatch
++ 52 = horizontal "shingles" skewed to the right
++ 53 = horizontal "shingles" skewed to the left
++ 54 = vertical "shingles" skewed one way
++ 55 = vertical "shingles"skewed the other way
++ 56 = fish scales
++ 57 = small fish scales
++ 58 = circles
++ 59 = hexagons
++ 60 = octagons
++ 61 = horizontal "tire treads"
++ 62 = 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 = Round
++ 2 = Bevel
++
++ 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 (1: open ended arc
++ 2: pie-wedge (closed) )
++ 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: open approximated spline
++ 1: closed approximated spline
++ 2: open interpolated spline
++ 3: closed interpolated spline
++ 4: open 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):
++
++ (.ft value)
++ -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