Syntax for the Simple Vector Format (SVF) v1.1
<identifier> identifier is a symbol which is defined elsewhere
<identifier> identifier which hasn't been fully implemented yet
Identifier a constant
"string" a literal string
[<identifier>] <identifier> is optional
{<identifier>} <identifier> may appear 0 or more times
<id1> + <id2> <id1> followed directly by <id2>
<id1> | <id2> either <id1> or <id2>
<SVF file> = <intro> + <header> + <body>
<intro> = "SVFv" + <version number> + NullTerminator
<version number> = {"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "."}
<header> = {<header item>}
<body> = {<command>}
<header item> = <name> | <extents> | <layer table> | <color table> | <background> |
<transparent> | <notify table> | <imagewidth> | <transform> | <flags>
<name> = Name + <null terminated string>
<extents> = Extents + <xmin> + <ymin> + <xmax> + <ymax>
<layer table> = LayerTable + <number of entries> + {<state> + <null terminated string>}
<color table> = ColorTable + <number of entries> + {<red> + <green> + <blue>}
<background> = Background + <color>
<transparent> = Transparent + <color>
<notify table> = NotifyTable + <number of zoomin entries> + <number of zoomout entries> +
{<name> + <imagewidth>} + {<name> + <imagewidth>}
<imagewidth> = Width + <millimeters>
<transform> = Transform + <scale> + <basex> + <basey>
<flags> = Flags + <flag>
<command> = <point> | <moveto> | <lineto> | <polyline> | <relmoveto> |
<rellineto> | <relpolyline> | <rectangle> | <circle> | <arc> |
<bezier> | <text> | <text height> | <setcolor> | <setlayer> | <penwidth> |
<fillmode> | <data> | <set1dlinkinfo> | <set2dlinkinfo> | <invisible>
<point> = Point + <x> + <y>
<moveto> = MoveTo + <x> + <y>
<lineto> = LineTo + <x> + <y>
<polyline> = Polyline + <number of points> + {<x> + <y>}
<relmoveto> = RelMoveTo + <xoffset> + <yoffset>
<rellineto> = RelLineTo + <xoffset> + <yoffset>
<relpolyline> = RelPolyline + <number of points> + {<xoffset> + <yoffset>}
<rectangle> = Rectangle + <width> + <height>
<circle> = Circle + <radius>
<arc> = Arc + <radius> + <startangle> + <endangle>
<bezier> = Bezier + <x> + <y> + <x> + <y> + <x> + <y>
<text> = Text + <width> + <null terminated string>
<text height> = TextHeight + <height>
<setcolor> = SetColor + <color>
<setlayer> = SetLayer + <layer>
<penwidth> = SetPenWidth + <width>
<fillmode> = FillMode + <fill>
<data> = Data + <number of bytes> + {<byte>}
<set1dlinkinfo> = 1dLink + <null terminated string> + <null terminated string>
<set2dlinkinfo> = 2dLink + <null terminated string> + <null terminated string>
<invisible> = Invisible
<xmin/ymin/xmax/ymax> <x/y> <radius> <startangle> <endangle> <height> <width> <millimeters>
if the corresponding command is a 1 byte command, these numbers range from 0 to 255
if the corresponding command is a 2 byte command, these numbers range from 0 to 65535
<offset> <xoffset> <yoffset>
if the corresponding command is a 1 byte command, these numbers range from -128 to 127
if the corresponding command is a 2 byte command, these numbers range from -32768 to 32767
<scale> <basex> <basey>
often these values correspond to the 8 byte version of the command,
but may also be 1 or 2 byte commands
<number of bytes> <number of entries> <number of points>
1 or 2 bytes depending on the command length
note that the number of items following it depends on this value
<color> <layer>
1 or 2 byte index into the appropriate table depending on command length.
index starts with 0.
<red> <green> <blue>
range from 0 to 255. 0 being black and 255 being pure red, green, or blue.
<state> <fill>
0 if off, 1 if on.
<flag>
0 default. 1 - entities within a layer can be rearranged while displaying for optimization.
<null terminated string>
printable character values followed by NullTerminator
<byte>
any value from 0 to 255
NullTerminator = 0
Name = 1
Extents = 2
ColorTable = 3
Background = 4
LayerTable = 5
Width = 7
NotifyTable = 8
Transparent = 9
Transform = 10
Flags = 11
Point = 16
MoveTo = 17
LineTo = 18
Polyline = 19
RelMoveTo = 20
RelLineTo = 21
RelPolyline = 22
Rectangle = 23
Circle = 24
Arc = 25
Bezier = 26
Text = 27
TextHeight = 28
SetColor = 29
SetLayer = 30
SetPenWidth = 31
FillMode = 32
Data = 34
1dLink = 35
2dLink = 36
Invisible = 37
Related pages...
SVF Technical Information
SVF Specification
HTML Syntax for hyperlinks and embedding SVF images in HTML documents
Return to Softsource Home Page
scotts@softsource.com