AT&T Home | AT&T Labs | Research
AT&T Labs, Inc. - Research

The Yoix® Scripting Language

Home | What's New | Grammar | Documentation | Download | License | YDAT | YWAIT | Byzgraf | FAQs

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.