From 431b7c2f8a3b16f815140f0b39c0688fad978140 Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Sun, 23 Aug 2026 23:26:33 -0400 Subject: [PATCH] get_skinned_vertex_positions now returns skin transform array. --- src/liborng/nodes/mesh_editing_library.cpp | 6 +++--- src/liborng/nodes/mesh_editing_library.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/liborng/nodes/mesh_editing_library.cpp b/src/liborng/nodes/mesh_editing_library.cpp index d764a04..c269e6a 100644 --- a/src/liborng/nodes/mesh_editing_library.cpp +++ b/src/liborng/nodes/mesh_editing_library.cpp @@ -33,7 +33,8 @@ PackedVector3Array MeshEditingLibrary::slice_mesh(const MeshInstance3D *original const Mesh *original_mesh = original_mesh_instance->get_mesh().ptr(); const uint8_t num_surfaces = original_mesh->get_surface_count(); - const SkinnedSurfaces &skinned_vertex_positions = MeshEditingLibrary::get_skinned_vertex_positions(original_mesh, original_skeleton); + TypedArray bone_transforms; + const SkinnedSurfaces &skinned_vertex_positions = MeshEditingLibrary::get_skinned_vertex_positions(original_mesh, original_skeleton, bone_transforms); UtilityFunctions::print("Got skinned vertices at ", time->get_ticks_msec(), "ms"); @@ -594,7 +595,7 @@ PackedVector3Array MeshEditingLibrary::slice_mesh(const MeshInstance3D *original return impact_points; } -SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mesh, const Skeleton3D *skeleton) +SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mesh, const Skeleton3D *skeleton, TypedArray &bone_transforms) { const uint8_t num_surfaces = mesh->get_surface_count(); SkinnedSurfaces skinned_vertex_surfaces; @@ -603,7 +604,6 @@ SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mes if (skeleton) { const uint16_t bone_count = skeleton->get_bone_count(); - TypedArray bone_transforms; bone_transforms.resize(bone_count); for (uint8_t bone_index = 0; bone_index < bone_count; bone_index++) { diff --git a/src/liborng/nodes/mesh_editing_library.h b/src/liborng/nodes/mesh_editing_library.h index 1e31aea..d20c9fb 100644 --- a/src/liborng/nodes/mesh_editing_library.h +++ b/src/liborng/nodes/mesh_editing_library.h @@ -79,7 +79,7 @@ protected: private: static const Vector2 calculate_planar_uv(const Vector3 &vertex, const Vector3 &mesh_bounds, const MeshSlicePlaneOrientation &axis); - static SkinnedSurfaces get_skinned_vertex_positions(const Mesh *mesh, const Skeleton3D *skeleton = nullptr); + static SkinnedSurfaces get_skinned_vertex_positions(const Mesh *mesh, const Skeleton3D *skeleton = nullptr, TypedArray &bone_transforms = TypedArray()); static void project_edges(std::vector &out_2d_edges, const Transform3D &to_node_space, const std::vector &in_3d_edges, const Plane &plane); static void build_2d_polygons_from_edges(std::vector &out_polygons, const std::vector &in_edges, std::vector &error_polygons);