Yoix / YDAT Drawing Directives from Yoix Source Code Comments
//
// Here's a brief and incomplete summary of the drawing directives.
// Our goal is to conform with the directives described here:
// http://www.graphviz.org/pub/scm/graphviz2/doc/info/output.html#d:xdot
//
// E xcenter ycenter width height
// Fill an ellispe
//
// e xcenter ycenter width height
// Draw an ellipse
//
// P n x1 y1 x2 y2 ... xn yn
// Fill the polygon connecting the n points, where n
// must be greater than 2. The first and last points
// points are automatically connected if necessary.
//
// p n x1 y1 x2 y2 ... xn yn
// Draw the polygon (the outline) connecting the n points,
// where n must be greater than 2. The first and last
// points are automatically connected if necessary, so
// this isn't quite the same as the L command.
//
// P 2 xcenter yxcenter width height
// Fill a rectangle (instance of polygon described above)
//
// p 2 xcenter yxcenter width height
// Draw a rectangle (instance of polygon described above)
//
// L n x1 y1 x2 y2 ... xn yn
// Draw a line connecting the n point
//
// B n x1 y1 x2 y2 x3 y3 ... xn yn
// Draw a Bezier spline that starts at (x1, y1) ends at
// (xn, yn) and is described by the remaining points. The
// value of n must be at least 4 and (n - 1) must also be
// divisible by 3. If you set the filled attribute (see
// the "A 1 filled" description below) before the spline
// and the path will be automatically closed, which means
// the shape described by the S command will be completely
// outlined when it's used as a node.
//
// b n x1 y1 x2 y2 x3 y3 ... xn yn
// Fill a Bezier spline that starts at (x1, y1) ends at
// (xn, yn) and is described by the remaining points. The
// value of n must be at least 4 and (n - 1) must also be
// divisible by 3. If you set the filled attribute (see
// the "A 1 filled" description below) before the spline
// and the path will be automatically closed, which means
// the shape described by the S command will be completely
// outlined when it's used as a node.
//
// T x y justification width n -[n chars]
// Place n characters at (x, y) using justification (-1
// means left justified, 0 means centered, and 1 means
// right justified) to control the positioning relative
// to (x, y). The width argument is currently unused but
// must be supplied (any number works). The n characters
// of the text that's draw must be introduced by the -
// character.
//
// C n -[n chars]
// Set the fill color. The color value can be a text name
// (e.g., red), or an RGB spec starting with a pound-sign
// and with each color specified by a 2 hex characters
// (e.g., #FF0000) or an RGBA spec (e.g., #FF0000F8) or
// an HSB spec with each value in the range 0 to 1 and
// separated by either a comma or a space character
// (e.g., 0.482 0.714 0.878 or 0.482,0.714,0.878)
//
// c n -[n chars]
// Set the line color. The color value can be a text name
// (e.g., red), or an RGB spec starting with a pound-sign
// and with each color specified by a 2 hex characters
// (e.g., #FF0000) or an RGBA spec (e.g., #FF0000F8) or
// an HSB spec with each value in the range 0 to 1 and
// separated by either a comma or a space character
// (e.g., 0.482 0.714 0.878 or 0.482,0.714,0.878)
//
// F s n -[n chars]
// Set the font to size s and as specified (e.g., F 12 14 -Helvetica-Bold)
//
// S n -[n chars]
// Set the style as specified (e.g., S 15 -setlinewidth(3))
//
// ====== below here are not used by graphviz, but we use them ======
//
// < label related commands >
// The delimiters sever to bracket one or more commands
// that are supposed to be grouped together and handled
// as a label. Bracketing a single T command is allowed,
// and you'll see it in many of our examples, but it's
//
// w n
// Switch to subpath n. Currently only used by edges and
// in that case 0 is the main path, 1 is the head, and 2
// is the tail.
//
// x n x1 y1 ... xn yn
// Position infomation specified a n 2-D points.
//
// n n x1 ... xn
// N n x1 ... xn
// Numeric info specified by n numbers. An upper-case N
// can also signal a numeric value. Only understood within
// an attribute spec (see below).
//
// s n -[n chars]
// S n -[n chars]
// String info speficied by n characters. An upper-case S
// can also signal a string value. Only understood within
// an attribute spec (see below).
//
// t n -[n chars]
// Tip text.
//
// a n n-fields
// A n n-fields
// Attribute information specified with n fields. A one
// field attribute is a flag value, a two field
// attribute is a name-value pair (e.g. a 2 length n 1 25 or
// a 2 title s 11 -hello world). An upper-case A can also signal
// an attribute.
//
// An incomplete list of attribute examples follow:
//
// A 1 bold
// Text is drawn in a bold font (equivalent to: S 4 -bold)
//
// A 1 italic
// Text is drawn in an italic font (equivalent to: S 6 -italic)
//
// A 1 dashed
// Lines and curves are drawn dashed rather than solid
// (which is the default) or dotted. (equivalent to: S 6 -dashed)
//
// A 1 dotted
// Lines and curves are drawn dotted rather than solid
// (which is the default) or dashed. (equivalent to: S 6 -dotted)
//
// A 1 solid
// Lines and curves are drawn solid (this is the default)
// rather than dashed or dotted. (equivalent to S 5 -solid)
//
// A 1 filled
// Unnecessary when you use P or E commands, but it may
// be useful when a node is described by a spline using
// the B command. Would also work for the L command, but
// seems unnecessary because you might as well have used
// the P command. (equivalent to: S 6 -filled)
//
// A 2 color N 3 red green blue
// Pick the color specified by the red, green, and blue
// components, which must be integers in the range 0 to
// 255 inclusive. (equivalent to: C 7 -#FF0088 or c 7 -#FF0088,
// [the color value is just an example])
//
// A 2 fontname s n -[n chars]
// Changes the font used to draw text from the default,
// which is Times-Roman to the font named by the n chars
// that immediately follow the - character. (can be
// subsumed by a "F" reference).
//
// A 2 fontsize N 1 pointsize
// Changes the size of the font used to draw characters
// to pointsize (the default is 14, but your graph and
// all the text are always scaled to fit into the space
// that's available). (can be subsumed by a "F" reference).
//
// A 2 fontcolor N 3 red green blue
// Sets the color used to draw text, which is black by
// default, to the color specified by the red, green,
// and blue components, which must be integers in the
// range 0 to 255 inclusive. (can just use a "c" reference)
//
// A 2 setlinewidth N 1 num
// Lines and curves are drawn num units wide (where 1 is
// the default). (equivalent to: S 15 -setlinewidth(1))
//
Yoix is a registered trademark of AT&T Intellectual Property.
|