2.0 KiB
Shape Tooling
The Shape API allows:
- Shape tables to be read in the standard binary format;
- Shape tables to be generated from "source" in three formats;
- Shape tables to be written to the standard binary format;
- Shapes and shape tables can be written to a text or image graphical representation.
API Notes
The shape table is represented by the ShapeTable
class which has static read
methods.
To generate a shape table from "source" use the ShapeGenerator
class.
The ShapeTable
object holds a list of Shape
s. A Shape
can be converted to a VectorShape
(up, down, left, right, plot/no plot) or to a BitmapShape
with the Shape#toVector()
and
Shape#toBitmap()
methods.
Shape source
These samples define the same shape as given by Applesoft BASIC Programmer's Reference Manual - a box.
Shape source - bitmap format
To introduce a bitmap shape, use the .bitmap
directive.
The bitmap defines an XY grid of plot/no-plot zones. An origin may be specified and if not specified defaults to (0,0).
Notes:
x
= plot.
= no plot; used to clarify image regions+
= origin, no plot (assumed to be upper-left if unspecified)*
= origin. plot- whitespace is ignored
Sample:
.bitmap
.xxx.
x...x
x.+.x
x...x
.xxx.
Shape source - long vector format
To introduce a long vector shape, use the .long
directive.
Notes:
move
[up
|down
|left
|right
] = move vectorplot
[up
|down
|left
|right
] = plot vector- whitespace is ignored
- case insensitive
- accepts a numerical argument for repetition
.long
movedown 2
plotleft 2
moveup
plotup 3
moveright
plotright 3
movedown
plotdown 3
moveleft
plotleft
Shape source - short vector format
To introduce a short vector shape, use the .short
directive.
Notes:
u
,d
,l
,r
= move vectorU
,D
,L
,R
= plot vector- whitespace is ignored
- case sensitive
.short
dd
LL
uUUU
rRRR
dDDD
lL