get_skinned_vertex_positions now returns skin transform array.
This commit is contained in:
@@ -33,7 +33,8 @@ PackedVector3Array MeshEditingLibrary::slice_mesh(const MeshInstance3D *original
|
|||||||
const Mesh *original_mesh = original_mesh_instance->get_mesh().ptr();
|
const Mesh *original_mesh = original_mesh_instance->get_mesh().ptr();
|
||||||
const uint8_t num_surfaces = original_mesh->get_surface_count();
|
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<Transform3D> 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");
|
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;
|
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<Transform3D> &bone_transforms)
|
||||||
{
|
{
|
||||||
const uint8_t num_surfaces = mesh->get_surface_count();
|
const uint8_t num_surfaces = mesh->get_surface_count();
|
||||||
SkinnedSurfaces skinned_vertex_surfaces;
|
SkinnedSurfaces skinned_vertex_surfaces;
|
||||||
@@ -603,7 +604,6 @@ SkinnedSurfaces MeshEditingLibrary::get_skinned_vertex_positions(const Mesh *mes
|
|||||||
if (skeleton)
|
if (skeleton)
|
||||||
{
|
{
|
||||||
const uint16_t bone_count = skeleton->get_bone_count();
|
const uint16_t bone_count = skeleton->get_bone_count();
|
||||||
TypedArray<Transform3D> bone_transforms;
|
|
||||||
bone_transforms.resize(bone_count);
|
bone_transforms.resize(bone_count);
|
||||||
for (uint8_t bone_index = 0; bone_index < bone_count; bone_index++)
|
for (uint8_t bone_index = 0; bone_index < bone_count; bone_index++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
static const Vector2 calculate_planar_uv(const Vector3 &vertex, const Vector3 &mesh_bounds, const MeshSlicePlaneOrientation &axis);
|
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<Transform3D> &bone_transforms = TypedArray<Transform3D>());
|
||||||
|
|
||||||
static void project_edges(std::vector<MeshEditEdge2D> &out_2d_edges, const Transform3D &to_node_space, const std::vector<MeshEditEdge3D> &in_3d_edges, const Plane &plane);
|
static void project_edges(std::vector<MeshEditEdge2D> &out_2d_edges, const Transform3D &to_node_space, const std::vector<MeshEditEdge3D> &in_3d_edges, const Plane &plane);
|
||||||
static void build_2d_polygons_from_edges(std::vector<MeshEditPolygon2D> &out_polygons, const std::vector<MeshEditEdge2D> &in_edges, std::vector<MeshEditPolygon2D> &error_polygons);
|
static void build_2d_polygons_from_edges(std::vector<MeshEditPolygon2D> &out_polygons, const std::vector<MeshEditEdge2D> &in_edges, std::vector<MeshEditPolygon2D> &error_polygons);
|
||||||
|
|||||||
Reference in New Issue
Block a user