// declaration
static const char *className;
static const Luna < T >::FunctionType Functions[];
static const Luna < T >::PropertyType Properties[];
bool isExisting; // This is used by Luna to see whether it's been created by createFromExisting. Don't set it.
bool isPrecious; // This is used to tell Luna not to garbage collect the object, in case other objects might reference it. Set it in your classes constructor.
// implementation
const char *T::className = "YourClassNameInLua";
const Luna < T >::FunctionType T::Functions[] = {
{"myFunction", &T::updateAll},
{0}
};
const Luna < RPhysicsManager >::PropertyType RPhysicsManager::Properties[] = {
{"myProperty", &T::getProperty, &layer::setProperty },
{0}
};