Mel
Mel is the ancient language used by the Mayans to talk to the god's before they started to read the will of the gods by playing with snakesBasic
Single line comment with //.
Multi line comment /**/
End every statement with a ;.
Commands
Commands are like command-line utilities in a UNIX shell.
Run a command with command [-flag value]. Each command has it's own number of flags (or commandline parameters).
To get help about a command use the help command. Ex help sphere will print information on the command sphere.
The same command is often able to both create, edit and query information.
The default is create mode. Ex sphere DaSphere
Use flag -query to get values. ex sphere -query -radius DaSphere
Use flag -edit to edit values. ex sphere -edit -radius 3 DaSphere
To get the return value of a command enclose it in backquotes. Ex $pos = `sphere -q -s DaSphere`
Variables
Define a variable with a $ and a name. ex float $earthsize = 100
Supported types are int, float, string, vector and matrix
If no value is assigned it get the default one for the type.
A bool is stored in a int. 0 is false (no and off) , other values true (yes or on).
Logical operators is: || (or), && (and), ! (not).
Compare operators is: <, <=, >, >=, == and !=.
Text
Merge strings with the + symbol.
Get the length of a string with size. ex size($saymyname).
Escape special characters with \.
Vector
A vector is variable that contain three floating point numbers called x,y and z.
Assign a vector with values in <<>>. ex vector $p = <<10,20,30>>
Access each element as x,y,z inside a (). ex move -absolute ($p.x) ($p.y) ($p.z)
To assign a vector element create a new one and assign. ex $p = <<($p.x), ($p.y), 40>>
* operator acts as dot product for vectors.
^ operator is cross product operator for vectors. Use pow command for exponent of numbers.
Matrix
A matrix is a table of floating point numbers.
To create a matrix use the matrix type follow by the number of rows and columns. Ex matrix $m[3][4];
Assign a matrix by using <<>> separated by commas in each row. matrix $m[2][2] = <<1,2;3,4>>
Assign a element in the matrix with $m[1][2] = 5;
Statements
if ($a == $b) {
...
}
else if(($a == $c) {
...
}
else {
...
}
switch ($form) {
case "circle":
...
break;
case "cone":
...
break;
default:
...
break
}
while ($a < size($array)) {
...
}
do {
} while($a < 100)
for($i = 0; $i < 10; $i++) {
if ($i == 5) continue;
...
}
string $array[3] = {"circle","sphere", "cone"};
for ($k in $array) {
...
}
Reference
Mel Command Reference - 2017