§
    ÎÐjI  ã                   ó  — d Z ddlmZmZmZmZmZmZmZm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z&m'Z'm#Z#m(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7 d	S )
a]  Shared 3D mesh toolkit (pure PyTorch / numpy, device explicit): the Mesh container, GLB/OBJ/PLY/STL I/O (static,
multi-part and morph-animated GLB), Gaussian splat PLYs, a triangle rasterizer, previews and turntables, mesh cleanup /
decimation / UV unwrapping and surface extraction.

Conventions are those of glTF 2.0 (see mesh.py): +Y up, +Z front, counter-clockwise outward faces, uv (0, 0) at the
top-left of the texture image, sRGB vertex colours and base colour textures. The CPU libraries (xatlas,
fast-simplification, scikit-image, scipy, OpenCV) are imported only by the functions that use them.
é   )ÚBackgroundUnwrapÚdecimateÚinpaint_textureÚinpaint_vertex_colorsÚmerge_verticesÚremove_degenerateÚremove_floatersÚ	unwrap_uv)ÚEXPORT_FORMATSÚMESH_EXTENSIONSÚanimated_mesh_to_glbÚexport_meshÚglb_read_extrasÚglb_to_meshÚglb_write_extrasÚ	load_meshÚmesh_file_statsÚmesh_to_glbÚmeshes_to_glb)ÚMeshÚbounding_boxÚface_normalsÚlinear_to_srgbÚsrgb_to_linearÚsubmeshÚvertex_normalsÚweld)ÚinterpolateÚ	rasterizeÚrasterize_uv)Úlook_atÚorthographicÚperspectiveÚpreviewÚrenderÚsplat_colorsÚsplat_previewÚ	turntable)
ÚSH_C0Úis_splat_plyÚply_commentsÚply_to_splatsÚply_write_commentsÚpoints_to_splatsÚsplat_file_statsÚsplats_opencv_to_gltfÚsplats_to_plyÚwrite_points_ply)Úmarching_cubesN)8Ú__doc__Úcleanupr   r   r   r   r   r   r	   r
   Úglbr   r   r   r   r   r   r   r   r   r   r   Úmeshr   r   r   r   r   r   r   r   Úrasterr   r   r    r%   r!   r"   r#   r$   r&   r'   r(   Úsplatsr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   Úsurfacer3   © ó    ú>C:\Users\johnn\OneDrive\Documents\AI\shared\mesh3d\__init__.pyú<module>r>      s/  ððð ð Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð  Wð?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?à qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qÐ qØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oÐ oð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #r<   