feat: named bones and skeleton building

This commit is contained in:
MihailRis 2026-01-15 21:51:39 +03:00
parent 495e5fa994
commit c34cb57fb8
6 changed files with 147 additions and 15 deletions

View file

@ -162,6 +162,12 @@ void Mesh::transform(const glm::mat4& matrix) {
}
}
void Mesh::translate(const glm::vec3& offset) {
for (auto& vertex : vertices) {
vertex.coord += offset;
}
}
void Model::clean() {
meshes.erase(
std::remove_if(meshes.begin(), meshes.end(),
@ -178,6 +184,12 @@ void Model::transform(const glm::mat4& matrix) {
}
}
void Model::translate(const glm::vec3& offset) {
for (auto& mesh : meshes) {
mesh.translate(offset);
}
}
void Model::merge(const Model& source) {
for (const auto& srcMesh : source.meshes) {
auto& dstMesh = addMesh(srcMesh.texture, srcMesh.shading);
@ -188,3 +200,18 @@ void Model::merge(const Model& source) {
);
}
}
void Model::merge(Model&& source) {
for (auto& srcMesh : source.meshes) {
auto& dstMesh = addMesh(srcMesh.texture, srcMesh.shading);
if (dstMesh.vertices.empty()) {
dstMesh = std::move(srcMesh);
} else {
dstMesh.vertices.insert(
dstMesh.vertices.end(),
srcMesh.vertices.begin(),
srcMesh.vertices.end()
);
}
}
}