Lua Bindings

C++ Loader Function

The Elementary Plot library can be used from C or C++ applications using the Lua programming language. The functions described below are C/C++ functions that loads the Elementary Plot library’s functions into a lua_State pointer.

void LuaOpenLibrary(lua_State *L)

For the given Lua state, load the library’s functions and classes into a global Lua table named elem.

Here a Lua example that illustrate how to use the library from Lua:

local plot = elem.Plot.new(elem.plot.ShowUnits)
plot:SetLimits(-1.0, 0.0, 1.0, 10.0)
plot:SetAxisLabelsAngle(elem.xAxis, 3.141592 / 4)
plot:EnableLabelFormat(elem.xAxis, "%.6f")

local line = elem.Path.new()
line:MoveTo(-0.5, 0)
line:LineTo(-0.5, 8.0)
line:LineTo(0.5, 4.0)
line:ClosePolygon()
plot:Add(line, 0xB40000FF, 2.5, 0xF5FE00FF, elem.flags(elem.property.Stroke, elem.property.Fill))

local window = elem.Window.new()
window:Attach(plot, "")

window:Start(640, 480, elem.WindowResize)
elem.utils.Sleep(4)

local line2 = elem.Path.new()
line2:MoveTo(0.8, 1.0)
line2:LineTo(0.8, 7.0)
line2:LineTo(0.3, 4.0)
line2:ClosePolygon()
plot:Add(line2, 0x0000B4FF, 2.5, 0x00000000, elem.property.Stroke)

window:Wait()

C Loader Function

void elem_lua_open_library(lua_State *L)

The same of the LuaOpenLibrary() but as a C function.