Most functions that are used to register classes or data in the Lua Bridge API return some kind of class. This is done with the intention of allowing functions to be chained. Chaining functions means using the result of one function and calling another function on it.
For example, a member function of an object might return the object, so a different function can be called without storing the actual object as a variable. Consider the following class:
class Foo {
public:
// Assume foo is a singleton
static Foo* GetInstance();
Foo* DoWork();
Foo* PrintResults();
};
In the preceding code, the GetInstance, DoWork, and PrintResults functions all return a pointer to the object that they were called on. This lets us get the object, do some work on it, and print the result of that work with only one line of code, as follows:
Foo::GetInstance()->DoWork()->PrintResults...