10.1.3.1 Floats
- Float Expressions
- FLOAT:
NUMERIC_TERM [SIGN NUMERIC_TERM]
- SIGN:
+ | -
- NUMERIC_TERM:
NUMERIC_FACTOR [MULT NUMERIC_FACTOR]
- MULT:
* | /
- NUMERIC_EXPRESSION:
FLOAT_LITERAL | FLOAT_IDENTIFIER | SIGN NUMERIC_EXPRESSION | FLOAT_FUNCTION | FLOAT_BUILT_IN_IDENT |
( FULL_EXPRESSION ) | ! NUMERIC_EXPRESSION | VECTOR.DOT_ITEM | FLOAT_FUNCTION_INVOCATION
- FLOAT_LITERAL:
[DIGIT...][.]DIGIT...[EXP[SIGN]DIGIT...]
- DIGIT:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- EXP:
e | E
- FLOAT_FUNCTION:
abs (FLOAT) | acos (FLOAT) | acosh (FLOAT) | asc (STRING) | asin (FLOAT) | asinh (FLOAT) |
atan (FLOAT) | atanh (FLOAT) | atan2 (FLOAT,FLOAT) | ceil (FLOAT) | cos (FLOAT) |
cosh (FLOAT) | defined (IDENTIFIER) | degrees (FLOAT) | dimensions (ARRAY_IDENTIFIER) |
dimension_size (ARRAY_IDENTIFIER,INT) | div (FLOAT,FLOAT) | exp (FLOAT) |
file_exists (STRING) | floor (FLOAT) | int (FLOAT) | ln (FLOAT) | log (FLOAT) |
max (FLOAT,FLOAT[,FLOAT]...) | min (FLOAT,FLOAT[,FLOAT]...) | mod (FLOAT,FLOAT) | pow (FLOAT,FLOAT) |
radians (FLOAT) | rand (FLOAT) | seed (FLOAT) | select (FLOAT,FLOAT,FLOAT,FLOAT) | sin (FLOAT) | sinh (FLOAT) | sqrt (FLOAT) |
strcmp (STRING,STRING) | strlen (STRING) | tan (FLOAT) | tanh (FLOAT) | val (STRING) |
vdot (VECTOR,VECTOR) | vlength (VECTOR)
- FLOAT_BUILT_IN_IDENT:
BOOLEAN_KEYWORD | clock | clock_delta | clock_on | final_clock | final_frame |
frame_number | image_height | image_width | initial_clock | initial_frame | pi | version
- BOOLEAN_KEYWORD:
true | yes | on | false | no | off
- FULL_EXPRESSION:
LOGICAL_EXPRESSION [? FULL_EXPRESSION : FULL_EXPRESSION]
- LOGICAL_EXPRESSION:
REL_TERM [LOGICAL_OPERATOR REL_TERM]
- LOGICAL_OPERATOR:
& | |
- REL_TERM:
FLOAT [REL_OPERATOR FLOAT]
- REL_OPERATOR:
< | <= | = | >= | > | !=
- DOT_ITEM:
x | y | z | t | u | v | red | green | blue | filter | transmit | gray
- INT:
FLOAT
- Any fractional part is discarded.
- BOOL:
BOOLEAN_KEYWORD | LOGICAL_EXPRESSION
-
Quick Reference Contents
10.1.3.2 Vectors
- Vector Expressions
- VECTOR:
VECTOR_TERM [SIGN VECTOR_TERM]
- VECTOR_TERM:
VECTOR_EXPRESSION [MULT VECTOR_EXPRESSION]
- VECTOR_EXPRESSION:
VECTOR_LITERAL | VECTOR_IDENTIFIER | SIGN VECTOR_EXPRESSION | VECTOR_FUNCTION | VECTOR_BUILT_IN_IDENT |
! VECTOR_EXPRESSION | FLOAT |
VECTOR_FUNCTION_INVOCATION |
COLOR_FUNCTION_INVOCATION |
SPLINE_INVOCATION
- VECTOR_LITERAL:
< FLOAT, FLOAT [, FLOAT [, FLOAT [, FLOAT ]]] >
- VECTOR_FUNCTION:
min_extent (OBJECT_IDENTIFIER) | max_extent (OBJECT_IDENTIFIER) |
trace (OBJECT_IDENTIFIER,VECTOR,VECTOR[,VECTOR_IDENTIFIER]) |
vaxis_rotate (VECTOR,VECTOR,FLOAT) | vcross (VECTOR,VECTOR) | vrotate (VECTOR,VECTOR) |
vnormalize (VECTOR) | vturbulence (FLOAT,FLOAT,FLOAT,VECTOR)
- VECTOR_BUILT_IN_IDENT:
x | y | z | t | u | v
Quick Reference Contents
10.1.3.3 Colors
- Color Expressions
- COLOR:
[color] COLOR_BODY | colour COLOR_BODY
- COLOR_BODY:
COLOR_VECTOR | COLOR_KEYWORD_GROUP | COLOR_IDENTIFIER
- COLOR_VECTOR:
rgb 3D_VECTOR | rgbf 4D_VECTOR | rgbt 4D_VECTOR | [rgbft] 5D_VECTOR
- COLOR_KEYWORD_GROUP:
[COLOR_IDENTIFIER] COLOR_KEYWORD_ITEMS
- COLOR_KEYWORD_ITEMS:
[red FLOAT] & [green FLOAT] & [blue FLOAT] & [filter FLOAT] & [transmit FLOAT]
Quick Reference Contents
10.1.3.4 User defined Functions
- User-Defined Functions
- USER_FUNCTION:
FLOAT_USER_FUNCTION | VECTOR_USER_FUNCTION | COLOR_USER_FUNCTION
- FLOAT_USER_FUNCTION:
function { FN_FLOAT } | function (IDENT_LIST) { FN_FLOAT } | function { pattern { PATTERN [PATTERN_MODIFIERS]} }
- IDENT_LIST:
IDENT_ITEM [, IDENT_LIST]
- The maximum number of parameter identifiers is 20. An identifier may not be repeated in the list.
- IDENT_ITEM:
x | y | z | u | v | PARAM_IDENTIFIER
- PATTERN:
MAP_PATTERN | brick [BRICK_ITEM] | checker | hexagon | object { LIST_OBJECT }
- VECTOR_USER_FUNCTION:
function { SPECIAL_VECTOR_FUNCTION }
- SPECIAL_VECTOR_FUNCTION:
TRANSFORM | SPLINE
- COLOR_USER_FUNCTION:
function { PIGMENT }
- Specify a float expression in a user-defined function:
- FN_FLOAT
LOGIC_AND [OR LOGIC_AND]
- OR:
|
- LOGIC_AND:
REL_TERM [AND REL_TERM]
- AND:
&
- REL_TERM:
TERM [REL_OPERATOR TERM]
- REL_OPERATOR:
< | <= | = | >= | > | !=
- TERM:
FACTOR [SIGN FACTOR]
- SIGN:
+ | -
- FACTOR:
MOD_EXPRESSION [MULT MOD_EXPRESSION]
- MULT:
* | /
- EXPRESSION:
FLOAT_LITERAL | FLOAT_IDENTIFIER | FN_FLOAT_FUNCTION | FLOAT_BUILT_IN_IDENT |
( FN_FLOAT ) | IDENT_ITEM | SIGN EXPRESSION |
VECTOR_FUNCTION_INVOCATION.FN_DOT_ITEM | COLOR_FUNCTION_INVOCATION.FN_DOT_ITEM |
FLOAT_FUNCTION_INVOCATION
- FN_DOT_ITEM:
DOT_ITEM | hf
- FN_FLOAT_FUNCTION:
abs (FN_FLOAT) | acos (FN_FLOAT)
| acosh (FN_FLOAT) | asc (STRING) |
asin (FN_FLOAT) | asinh (FN_FLOAT) |
atan (FN_FLOAT) | atanh (FN_FLOAT) |
atan2 (FN_FLOAT,FN_FLOAT) | ceil (FN_FLOAT) | cos (FN_FLOAT) | cosh (FN_FLOAT) | degrees (FN_FLOAT) | exp (FN_FLOAT) |
floor (FN_FLOAT) | int (FN_FLOAT) | ln (FN_FLOAT) | log (FN_FLOAT) | max (FN_FLOAT,FN_FLOAT[,FN_FLOAT]...) |
min (FN_FLOAT,FN_FLOAT[,FN_FLOAT]...) | mod (FN_FLOAT,FN_FLOAT) | pow (FN_FLOAT,FN_FLOAT) | prod (IDENTIFIER, FN_FLOAT, FN_FLOAT, FN_FLOAT) | radians (FN_FLOAT) | sin (FN_FLOAT) | sinh (FN_FLOAT) | sqrt (FN_FLOAT) | sum (IDENTIFIER, FN_FLOAT, FN_FLOAT, FN_FLOAT) |tan (FN_FLOAT) |
tanh (FN_FLOAT) | select (FN_FLOAT,FN_FLOAT,FN_FLOAT,FN_FLOAT)
- Create an identifier for a user-defined function:
- USER_FUNCTION_DECLARATION:
#declare FLOAT_FUNCTION_IDENTIFIER = FLOAT_USER_FUNCTION |
#local FLOAT_FUNCTION_IDENTIFIER = FLOAT_USER_FUNCTION |
#declare VECTOR_FUNCTION_IDENTIFIER = VECTOR_USER_FUNCTION |
#local VECTOR_FUNCTION_IDENTIFIER = VECTOR_USER_FUNCTION |
#declare COLOR_FUNCTION_IDENTIFIER = COLOR_USER_FUNCTION |
#local COLOR_FUNCTION_IDENTIFIER = COLOR_USER_FUNCTION
- Reference a user-defined function:
- FLOAT_FUNCTION_INVOCATION:
FLOAT_FUNCTION_IDENTIFIER (FN_PARAM_LIST)
- VECTOR_FUNCTION_INVOCATION:
VECTOR_FUNCTION_IDENTIFIER (FN_PARAM_LIST)
- COLOR_FUNCTION_INVOCATION:
COLOR_FUNCTION_IDENTIFIER (FN_PARAM_LIST)
- FN_PARAM_LIST:
FN_PARAM_ITEM [, FN_PARAM_LIST]
- FN_PARAM_ITEM:
x | y | z | u | v | FLOAT
Quick Reference Contents
10.1.3.5 Strings
- String Expressions
- STRING:
STRING_FUNCTION | STRING_IDENTIFIER | STRING_LITERAL
- STRING_FUNCTION:
chr (INT) | concat (STRING,STRING[,STRING]...) | str (FLOAT,INT,INT) | strlwr (STRING) |
strupr (STRING) | substr (STRING,INT,INT) | vstr (INT,VECTOR,STRING,INT,INT)
- STRING_LITERAL:
QUOTE [CHARACTER...] QUOTE
- Limited to 256 characters.
- QUOTE:
"
- CHARACTER:
- Any ASCII or Unicode character, depending on the charset setting in global_settings.
The following escape sequences might be useful when writing to files or message streams:
-
\a
- alarm
\b
- backspace
\f
- form feed
\n
- new line
\r
- carriage return
\t
- horizontal tab
\u
NNNN
- unicode character four-digit code
\v
- vertical tab
\\
- backslash
\'
- single quote
\"
- double quote
Quick Reference Contents
10.1.3.6 Arrays
- Define an array:
- ARRAY_DECLARATION:
#declare ARRAY_IDENTIFIER = array DIMENSION... [ARRAY_INITIALIZER] |
#local ARRAY_IDENTIFIER = array DIMENSION... [ARRAY_INITIALIZER]
- Limited to five dimensions.
- DIMENSION:
[ INT ]
- The brackets here are part of the dimension specification. The integer must be greater than zero.
- ARRAY_INITIALIZER:
{ ARRAY_INITIALIZER [, ARRAY_INITIALIZER]... } |
{ RVALUE [, RVALUE]... }
- Place a value into an array:
- ARRAY_ELEMENT_ASSIGNMENT:
#declare ARRAY_REFERENCE =RVALUE [;] |
#local ARRAY_REFERENCE = RVALUE [;]
- The semicolon is required for a FLOAT, VECTOR or COLOR assignment.
- Reference an array:
- ARRAY_REFERENCE:
ARRAY_IDENTIFIER ELEMENT...
- ELEMENT:
[ INT ]
- The brackets here are part of the element specification.
Quick Reference Contents
10.1.3.7 Splines
- Define a spline:
- SPLINE:
spline { SPLINE_ITEMS }
- SPLINE_ITEMS
[SPLINE_TYPE] PATH_LIST | SPLINE_IDENTIFIER [SPLINE_TYPE][PATH_LIST]
- SPLINE_TYPE:
linear_spline | quadratic_spline | cubic_spline | natural_spline
- PATH_LIST:
FLOAT, VECTOR [[,] PATH_LIST]
- Reference a spline:
- SPLINE_INVOCATION:
SPLINE_IDENTIFIER ( FLOAT [, SPLINE_TYPE] )
Quick Reference Contents