OPTOPUS HELP

Updated 2015.01.16

[LENS EXAMPLES]

Script Language    Scripting

SCRIPT LANGUAGE

General Grammar

Each command is on one file line.
Any line that begins with any punctuation char is a comment, which is discarded.
Any text after required arguments is discarded comment. No delimiter is required.
The first word (case-insensitive) of a line is the command. Any arguments after the command word are separated by white-space or comma.

Commands

WINDOW x,y,cx,cy,rel,dx,dy = set drawing window and control dialog position. This is not normally included in a screencast but is to prepare for recording.
Arguments x, y, cx, and cy are the drawing window information; rel, dx, and dy are lens control dialog position information. x = -1 and cx = -1 skip window position or size change. If dialog position is missing or erroneous the dialog is not moved.
rel is INLT, INRT, INLB, INRB, OUTLT, OUTRT, OUTLB, or OUTRB. IN signifies that the dialog is inside the dialog, OUT that it is outside, i.e. that the position reference window is the screen. LT, RT, LB, and RB indicate the reference window corner destination for the dialog.
The dialog arguments, dx and dy tell how far the dialog is from the reference corner. Positive is inside. Negative moves the dialog outside the window.
Examples:
window 100,10,860,720,INRB,4,4

CANVASS xmax ymax = set the lens drawing maximum X and Y dimensions. To change Y and not X use 0 for X.

DELAY msec = delay between commands. Delay 0 restores normal speed, i.e. as fast as possible.
Delay is like a pragma. It doesn't do anything itself but affects the operation of subsequent commands.
Examples:
delay 100 ; sleep for .1 second after each drawing change type command.

STOP = stop immediately. This is primarily used in development to examine some script intermediate state.

PAUSE = suspend until user presses the script button.

SLEEP msec = Sleep for given number of msec, e.g. sleep 1000 for 1 second.
Unlike DELAY, this executes immediately and only one time.

REPEAT number = repeat the entire script for number of times or forever if no argument.

LOOP number and ENDLOOP = repeat the enclosed script section a number of times or forever if number is blank. e.g. loop 10 .... endloop

SKIP and ENDSKIP = skip over all lines after SKIP until ENDSKIP. For script development.

RINDEX index, where index is a floating point number (treated as double) defining the index of refraction of the lens material.

LENS ivx, ivy, evx, evy, depth, cfg = Draw lens. Only cfg can be ommitted, defaulting to CVCV.
Examples:
LENS 199,150,152,270,30,CVCV

FADE start_lens end_lens steps = Draw start_lens and step toward the end_lens with each lens parameter step equal to the range from start to end divided by steps The delay between steps is established by a preceding delay command. Fade itself has no specified delay.
Unlike Lens, cfg is not optional, as it is needed to establish token sequence. However, only cfg of the first lens is assigned. The second is a dummy place holder. It is not possible to fade from one cfg to another.
User stop request during fade is ignored until the fade finishes.
Examples:
Fade 208,150,150,350,30,CVCV 225,168,197,197,40,CVCV 10 In this case, ivx step is (225-208)/10 = 1.7, ivy step is 1.8, evx step is 4.7, evy step is 4.7. and depth step is 1.

WIDTH assigns lens width and/or change behavior.

TRACE BEAM or MULTIBEAM = trace paraxial beam or multiple beam angles through the lens.

SCRIPTING