Я бы использовал Луабинд для этого.С его помощью вы можете легко связать классы C ++, чтобы они могли быть созданы, доступны и изменены в Lua.Код, который вы напишите на C ++, может выглядеть примерно так:
module(L) [
class_<Node>
.def(constructor<>)
.def("setPosition", &Node::setPosition)
];
Тогда вы сможете сказать это на Lua:
node = Node()
node:setPosition(x, y, z)
Вы также можете сделать привязки такчто Lua выглядит немного более естественно и может поддерживать такие вещи:
node1 = Node(x, y, z)
node2 = Node()
node2.position = { x, y, z }