Nasal library functions

From FlightGear wiki
Jump to navigation Jump to search


Please first see: http://plausible.org/nasal/lib.html

size()

keys()

append()

pop()

setsize()

subvec()

Extract items of a vector (equivalent to the left() function for a string) Example :

var currentPath = "/home/xxx/yyy/";
print (directory(currentPath));

returns : ".", "..", "file1", "file2", "file3"

and :

var currentPath = "/home/xxx/yyy/";
print (subvec(directory(currentPath),2));

returns : "file1", "file2", "file3"

var currentPath = "/home/xxx/yyy/";
print (subvec(directory(currentPath),3));

returns : "file2", "file3"

delete()

int()

num(str)

Convert string to number. Returns nil if str is nil, empty string, string with no number.

streq()

cmp()

substr()

chr()

contains()

typeof()

ghosttype(ghost)

Returns a string containing either a descriptive name as passed to naNewGhost or naNewGhost2 in C/C++ while creating the ghost or a unique id (aka the pointer to the C/C++ naGhostType instance) if no name has been set.

compile()

call()

die()

sprintf()

caller()

closure()

find()

split()

rand()

bind()

sort()

id()

math

Trigonometric_functions

Caution: All trigonometric functions works with Radian-values - not with Degree!

To convert this:
radians = degree * math.pi / 180
degree = radians * 180 / math.pi

sin()

cos()

tan()

asin()

acos()

atan2()

exp()

ln()

pow()

sqrt()

floor()

Returns the value rounded downward

Example:

math.floor(1.2); # returns 1
math.floor(1.6); # returns 1

ceil()

Returns the value rounded upward

Example:

math.ceil(1.2); # returns 2
math.ceil(1.6); # returns 2

fmod()

A modulo-operator, mod(x,y) also works...
The modulo-operation finds the remainder of division of one number by another (sometimes called modulus).

clamp()

periodic()

round()

pi

e

io

  • SEEK_SET
  • SEEK_CUR
  • SEEK_END
  • stdin
  • stdout
  • stderr

stat()

directory()

returns the files in a given directory

e.g. chatter_list = directory( chatter_dir );

Example :

var FGRoot = getprop("/sim/fg-root");
var filename = "/Aircraft";
var path = FGRoot ~ filename;
var path_files = directory(FGRoot ~ filename);

foreach(var key; path_files) {
print(key);
}

returns : "." , ".." , "Generic", "Instruments", "Instruments-3d", "c172p", "ufo"

To delete the "." and ".." see the subvec() function.

open()

read()

readln()

seek()

tell()

write()

flush()

close()

utf8

chstr()

strc()

substr()

size()

validate()