MSTTY Command Set

Object Manipulation
------ ------------
Begin     object {type}              < create new object
DElete    object                     < delete object subtree
End       object                     < end object definition
INstance  object {instance}          < create instance of object
DUplicate object {asobject}          < create copy of object
HIde      {=obj}                     < make object invisibile
MOdify    object                     < change ACTIVE object
REName    object {newname}           < change object name
SHow      {=obj}                     < make object visible
XFer      {object} newowner          < transfer to new parent

Geometric Transformations
--------- ---------------
Move      {=obj} xtran ytran ztran   < translation
Pivot     {=obj} X|Y|Z degrees       < rotatation about local axis
REset     {=obj}                     < reset(undo) transformations
Rotate    {=obj} X|Y|Z degrees       < rotate about global axis
Scale     {=obj} factor              < global scale
SHEar     {=obj} axis1 axis2 value   < shear in axis1 by value on axis2
STretch   {=obj} X|Y|Z factor        < single axis scale
XCOPy     {=obj|obj} obj2            < copy transformation to obj2
XCONcat   {=obj|obj} obj2            < concatenate trasformation onto obj2

Geometry Definition
-------------------
CONe                                 < polygonal cone
CUBe                                 < polygon cube
CYLinder                             < polygonal cylinder
PRIsm     n                          < n sided polygonal prism
PYramid                              < polygonal pyramid
SELlipse  a b                        < polygonal superelipsoid
SPHere                               < polygonal sphere
TRUncate {=obj} value                < Set tcone Y-axis truncation value

Object Properties
------ ----------
COlor     {=obj} r g b               < r,g,b are normalized (0.0 - 1.0)
CUll      {=obj} ON|OFf              < remove back faces
PHong     {=obj} ON|OFf              < phong (smooth) shading
PProperty {=obj} property value      < put property on property list
GProperty {=obj} property            < get property
DProperty {=obj} property            < delete property

Control
-------
RENder    {=obj}                     < render object & all its children
HELp                                 < display this file
NEws                                 < list news file
QUit                                 < exit program
TRace     {+|-}All|Render|Device|Object|DEFine|DAta|Scan

File operations
---------------
DUmp      {=obj} file {options}      < dump geometry to a file
RESTore   file                       < restore geometry from a file
REAd      device file                < read image onto device from file
WRite     device file                < write image from device to file

Status
------
ACTive                               < print active object path
CUrrent                              < <>
FRee                                 < print remaining free storage
GEtx      {=obj}                     < print composite transformation matrix
HUll      [=obj]                     < print local hull of object
PRint     {obj} {level}              < print object tree
XFOrm     {=obj}                     < print local transformation matrix

Camera Operations
------ ----------
ATTach    {=cam} device              < valid devices: AED, META, TTY,
					   HP, LIACOM, LIA1, RASTER, TEK, 'vfb'
CAMera    {=obj}                     < create a new camera <>
CENter    {=cam} x y                 < change center of projection
DISplay   {=cam} Wireframe|Scanconvert|Raytrace
				     < set type of rendering
FIlter    {=cam} r g b               < color of filter (0.0 - 1.0)
LENs      {=cam} degrees             < set lens angle of camera
VIEwport  {=cam} xleft ybottom xright ytop
				     < viewport of camera
Lights
------
INTensity {=obj} intensity           < light intensity
FLAps     {=obj} flap angle          < <>
LIght     {=light}                   < create a new light source

Device Operations
------ ----------
ANTialias indev outdev               < copy and antialias image
AOi       xl yb xr yt                < set "area of interest"
COPy      device1 device2 {oper}     < copy image from device1 to device2
DELDevice vfb                        < delete virtual frame buffer
FRAme     name resolution            < create virtual frame buffer (vfb)
OPTion    device option              < set device option
QDevice   device                     < inquire about device
RASTerop  oper device r g b          < apply raster operation to device
ZOom      indev outdev factor        < copy and zoom image

Macro and Meta commands
-----------------------
MACBegin  name {arg1 ... argn}       < begin macro defintion
MACEnd                               < end macro defintion
MACDel    name                       < delete macro
MACEDit   name                       < invoke editor on macro defintion
MACList                              < list all defined macro names
MACList   name1 {name2 ... namen}    < list defintion of named macros
MACSave   file                       < write all macros to file
MACSave   file {name1 ... namen}     < write named macros to file
EXecute   file {arg0 ... argn}       < execute command file
LOCal     var                        < define local variable
EXIt                                 < exit command file or macro execution
REPeat    n      command             < repeat command n times (&I)
FORsub    {=obj} command             < repeat command for each subobject (&Sub)
IF        value  command             < execute command if value is not 0.0
IFN       value  command             < execute command if value is     0.0
IFMac     name   command             < excute command if macro 'name' exists
IFNMac    name   command             < excute command if macro doesn't exist
IFOBj     object command             < exec command if object exists
IFNObj    object command             < exec command if object doesn't exists
IFDef     var    command             < exec command if variable defined
IFNDef    var    command             < exec command if variable not defined
TIME      on/off                     < set execution time monitoring
PF        n string                   < set PF key (327x terminals only)
QPF                                  < query PF key setings
SET       var expr                   < set arithmetic variable
SLEep     seconds                    < delay program execution
>         string                     < print error message (FSMS only)
>>        string                     < print message
?                                    < retrieve last command
?-n                                  < retrieve n'th last command
?pattern                             < retrieve last command matching pattern
=                                    < execute last command
=-n                                  < execute n'th last command
=pattern                             < execute last command matching pattern
?= or ==                             < display command history
!program                             < execute program
%program                             < execute program asynchronously
* comment                            < comment
{ command }                          < delay macro expansion until execution
				       e.g. forsub { pr &Sub }