Skip to content

Commit

Permalink
Adding mesh cropping snippet
Browse files Browse the repository at this point in the history
  • Loading branch information
HarryHeres committed Dec 6, 2024
1 parent 8c66535 commit 6f8b1a1
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions snippets/mesh_cropping.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import numpy as np
import open3d as o3d
import os

MESH_SOURCE_DIR = ""
MESH_OUTPUT_DIR = ""


def crop(mesh_filename: str, gender: str):
mesh = o3d.io.read_triangle_mesh(os.path.join(MESH_SOURCE_DIR, gender, mesh_filename))

obb = mesh.get_oriented_bounding_box()

extents = np.asarray(obb . extent)
major_axis_index = np.argmax(extents)
major_axis_extent = extents[major_axis_index]

cropped_extent = extents.copy()
cropped_extent[major_axis_index] /= 3

cropped_center = obb.center + obb.R[:, major_axis_index] * (major_axis_extent / 3)

cropped_obb = o3d.geometry.OrientedBoundingBox(cropped_center, obb .R, cropped_extent)
proximal_mesh = mesh.crop(cropped_obb)
proximal_mesh.compute_vertex_normals()

o3d.visualization.draw_geometries([proximal_mesh])
o3d.io.write_triangle_mesh(mesh=proximal_mesh, filename=os.path.join(MESH_OUTPUT_DIR, gender, mesh_filename))

0 comments on commit 6f8b1a1

Please sign in to comment.