def mesh_generator(): """Yields meshes Yields: open3d.geometry.TriangleMesh: yielded mesh """ yield meshes.armadillo() yield meshes.bunny()
def pointcloud_generator(): pts = np.random.uniform(-30, 30, size=(int(1e5), 3)) pcl = o3d.geometry.PointCloud() pcl.points = o3d.utility.Vector3dVector(pts) yield 'uniform', pcl yield 'moebius', o3d.geometry.TriangleMesh.create_moebius( ).sample_points_uniformly(int(1e5)) yield 'bunny', meshes.bunny().scale(10).sample_points_uniformly(int(1e5)) yield 'fragment', o3d.io.read_point_cloud('../../TestData/fragment.ply')
def mesh_generator(): mesh = meshes.plane() yield mesh.subdivide_midpoint(2) mesh = o3d.geometry.TriangleMesh.create_box() yield mesh.subdivide_midpoint(2) mesh = o3d.geometry.TriangleMesh.create_sphere() yield mesh.subdivide_midpoint(2) mesh = o3d.geometry.TriangleMesh.create_cone() yield mesh.subdivide_midpoint(2) mesh = o3d.geometry.TriangleMesh.create_cylinder() yield mesh.subdivide_midpoint(2) yield meshes.bathtub() yield meshes.bunny()
def mesh_generator(): mesh = meshes.plane() yield o3d.geometry.subdivide_midpoint(mesh, 2) mesh = o3d.geometry.create_mesh_box() yield o3d.geometry.subdivide_midpoint(mesh, 2) mesh = o3d.geometry.create_mesh_sphere() yield o3d.geometry.subdivide_midpoint(mesh, 2) mesh = o3d.geometry.create_mesh_cone() yield o3d.geometry.subdivide_midpoint(mesh, 2) mesh = o3d.geometry.create_mesh_cylinder() yield o3d.geometry.subdivide_midpoint(mesh, 2) yield meshes.bathtub() yield meshes.bunny()
def problem_generator(): o3d.utility.set_verbosity_level(o3d.utility.Debug) points = [] normals = [] for _ in range(4): for _ in range(4): pt = (np.random.uniform(-2, 2), np.random.uniform(-2, 2), 0) points.append(pt) normals.append((0, 0, 1)) points = np.array(points, dtype=np.float64) normals = np.array(normals, dtype=np.float64) pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points) pcd.normals = o3d.utility.Vector3dVector(normals) radii = [1, 2] yield pcd, radii o3d.utility.set_verbosity_level(o3d.utility.Info) gt_mesh = o3d.geometry.TriangleMesh.create_sphere() gt_mesh.compute_vertex_normals() pcd = gt_mesh.sample_points_poisson_disk(100) radii = [0.5, 1, 2] yield pcd, radii gt_mesh = meshes.bunny() gt_mesh.compute_vertex_normals() pcd = gt_mesh.sample_points_poisson_disk(2000) radii = [0.005, 0.01, 0.02, 0.04] yield pcd, radii gt_mesh = meshes.armadillo() gt_mesh.compute_vertex_normals() pcd = gt_mesh.sample_points_poisson_disk(2000) radii = [5, 10] yield pcd, radii
import numpy as np import cupoch as cph import os import sys dir_path = os.path.dirname(os.path.realpath(__file__)) sys.path.append(os.path.join(dir_path, '../misc')) import meshes if __name__ == "__main__": mesh = meshes.bunny() mesh.remove_unreferenced_vertices() triangles = np.asarray(mesh.triangles.cpu()) vertices = np.asarray(mesh.vertices.cpu()) vertex_normals = np.asarray(mesh.vertex_normals.cpu()) n_vertices = vertices.shape[0] vertex_colors = np.random.uniform(0, 1, size=(n_vertices, 3)) mesh.vertex_colors = cph.utility.Vector3fVector(vertex_colors) def test_float_array(array_a, array_b, eps=1e-6): diff = array_a - array_b dist = np.linalg.norm(diff, axis=1) return np.all(dist < eps) def test_int_array(array_a, array_b): diff = array_a - array_b return np.all(diff == 0) def compare_mesh(mesh): success = True if not test_float_array(vertices, np.asarray(mesh.vertices.cpu())):
def mesh_generator(): yield o3d.geometry.TriangleMesh.create_sphere() yield meshes.knot() yield meshes.bunny() yield meshes.armadillo()
def mesh_generator(): yield o3d.geometry.create_mesh_box() yield o3d.geometry.create_mesh_sphere() yield meshes.knot() yield meshes.bunny() yield meshes.armadillo()