Source code for tyssue.io.obj

import numpy as np
import pandas as pd

try:
    from vispy.io import write_mesh
except ImportError:
    print("You need vispy to use the .OBJ export")

import logging

logger = logging.getLogger(name=__name__)


[docs]def save_triangulated(filename, eptm): vertices, faces = eptm.triangular_mesh(eptm.coords, False) write_mesh( filename, vertices=vertices, faces=faces, normals=None, texcoords=None, overwrite=True, ) logger.info("Saved %s as a trianglulated .OBJ file", eptm.identifier)
[docs]def save_junction_mesh(filename, eptm): vertices, faces, normals = eptm.vertex_mesh(eptm.coords, vertex_normals=True) write_mesh( filename, vertices=vertices, faces=faces, normals=normals, texcoords=None, overwrite=True, reshape_faces=False, ) # GH 1155 logger.info("Saved %s as a junction mesh .OBJ file", eptm.identifier)
[docs]def write_splitted_cells(*args, **kwargs): logger.warning("Deprecated, use `save_splitted_cells` instead") save_splitted_cells(*args, **kwargs)
[docs]def save_splitted_cells(fname, sheet, epsilon=0.1): coords = sheet.coords up_srce = sheet.upcast_srce(sheet.vert_df[coords]) up_trgt = sheet.upcast_trgt(sheet.vert_df[coords]) up_face = sheet.upcast_face(sheet.face_df[coords]) up_srce = (up_srce - up_face) * (1 - epsilon) + up_face up_trgt = (up_trgt - up_face) * (1 - epsilon) + up_face cell_faces = pd.concat([sheet.face_df[coords], up_srce, up_trgt], ignore_index=True) Ne, Nf = sheet.Ne, sheet.Nf triangles = np.vstack( [sheet.edge_df["face"], np.arange(Ne) + Nf, np.arange(Ne) + Ne + Nf] ).T write_mesh( fname, cell_faces.values, triangles, normals=None, texcoords=None, overwrite=True, )