The beginClass/endClass functions can be used to expose classes to Lua. The class type must be provided as a template argument to the beginClass function. You can call beingClass/endClass multiple times for the same class, and on each call, new methods and variables can be added. Suppose that a class named Vec3 exists, to represent a 3D vector. It can be exposed to Lua using Lua Bridge, as follows:
class Vec3 { };
getGlobalNamespace(L)
.beginNamespace("Math")
.beginClass<Vec3>("Vec3")
.endClass()
.endNamespace()
To create a new object, just call the name of the class as a function. For example, the preceding code can create a new Vec3 with the following code:
local vector = Math.Vec3()