rename rig to skeleton

This commit is contained in:
MihailRis
2024-07-10 04:28:12 +03:00
parent 91230ecbeb
commit 60f4f33180
24 changed files with 187 additions and 187 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ extern const luaL_Reg vec4lib [];
extern const luaL_Reg worldlib [];
// Components
extern const luaL_Reg modeltreelib [];
extern const luaL_Reg skeletonlib [];
extern const luaL_Reg rigidbodylib [];
extern const luaL_Reg transformlib [];
@@ -1,56 +0,0 @@
#include "libentity.hpp"
#include "../../../objects/rigging.hpp"
static int index_range_check(const rigging::Rig& rig, lua::Integer index) {
if (static_cast<size_t>(index) >= rig.pose.matrices.size()) {
throw std::runtime_error("index out of range [0, " +
std::to_string(rig.pose.matrices.size()) +
"]");
}
return static_cast<int>(index);
}
static int l_modeltree_get_model(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& rig = entity->getModeltree();
auto* rigConfig = rig.config;
auto index = index_range_check(rig, lua::tointeger(L, 2));
return lua::pushstring(L, rigConfig->getNodes()[index]->getModelName());
}
return 0;
}
static int l_modeltree_get_matrix(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& rig = entity->getModeltree();
auto index = index_range_check(rig, lua::tointeger(L, 2));
return lua::pushmat4(L, rig.pose.matrices[index]);
}
return 0;
}
static int l_modeltree_set_matrix(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& rig = entity->getModeltree();
auto index = index_range_check(rig, lua::tointeger(L, 2));
rig.pose.matrices[index] = lua::tomat4(L, 3);
}
return 0;
}
static int l_modeltree_set_texture(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& rig = entity->getModeltree();
rig.textures[lua::require_string(L, 2)] = lua::require_string(L, 3);
}
return 0;
}
const luaL_Reg modeltreelib [] = {
{"get_model", lua::wrap<l_modeltree_get_model>},
{"get_matrix", lua::wrap<l_modeltree_get_matrix>},
{"set_matrix", lua::wrap<l_modeltree_set_matrix>},
{"set_texture", lua::wrap<l_modeltree_set_texture>},
{NULL, NULL}
};
+56
View File
@@ -0,0 +1,56 @@
#include "libentity.hpp"
#include "../../../objects/rigging.hpp"
static int index_range_check(const rigging::Skeleton& skeleton, lua::Integer index) {
if (static_cast<size_t>(index) >= skeleton.pose.matrices.size()) {
throw std::runtime_error("index out of range [0, " +
std::to_string(skeleton.pose.matrices.size()) +
"]");
}
return static_cast<int>(index);
}
static int l_get_model(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& skeleton = entity->getSkeleton();
auto* rigConfig = skeleton.config;
auto index = index_range_check(skeleton, lua::tointeger(L, 2));
return lua::pushstring(L, rigConfig->getNodes()[index]->getModelName());
}
return 0;
}
static int l_get_matrix(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& skeleton = entity->getSkeleton();
auto index = index_range_check(skeleton, lua::tointeger(L, 2));
return lua::pushmat4(L, skeleton.pose.matrices[index]);
}
return 0;
}
static int l_set_matrix(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& skeleton = entity->getSkeleton();
auto index = index_range_check(skeleton, lua::tointeger(L, 2));
skeleton.pose.matrices[index] = lua::tomat4(L, 3);
}
return 0;
}
static int l_set_texture(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
auto& skeleton = entity->getSkeleton();
skeleton.textures[lua::require_string(L, 2)] = lua::require_string(L, 3);
}
return 0;
}
const luaL_Reg skeletonlib [] = {
{"get_model", lua::wrap<l_get_model>},
{"get_matrix", lua::wrap<l_get_matrix>},
{"set_matrix", lua::wrap<l_set_matrix>},
{"set_texture", lua::wrap<l_set_texture>},
{NULL, NULL}
};
+3 -3
View File
@@ -34,10 +34,10 @@ static int l_entity_despawn(lua::State* L) {
static int l_entity_set_rig(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
std::string rigName = lua::require_string(L, 2);
auto rigConfig = content->getRig(rigName);
std::string skeletonName = lua::require_string(L, 2);
auto rigConfig = content->getRig(skeletonName);
if (rigConfig == nullptr) {
throw std::runtime_error("rig not found '"+rigName+"'");
throw std::runtime_error("skeleton not found '"+skeletonName+"'");
}
entity->setRig(rigConfig);
}
+1 -1
View File
@@ -50,7 +50,7 @@ static void create_libs(lua::State* L) {
openlib(L, "entities", entitylib);
// components
openlib(L, "__modeltree", modeltreelib);
openlib(L, "__skeleton", skeletonlib);
openlib(L, "__rigidbody", rigidbodylib);
openlib(L, "__transform", transformlib);