if N < 1: raise FilterException("Given value for N not a valid integer") try: W = int(W) except ValueError: raise FilterException("Given value for W not a valid integer") if W < 1: raise FilterException("Given value for W not a valid integer") try: H = int(H) except ValueError: raise FilterException("Given value for H not a valid integer") if H < 1: raise FilterException("Given value for H not a valid integer") if os.path.exists(filename): raise FilterException("specified filename already exists") p3dApp = setupPandaApp(mesh) saveRotateScreenshots(p3dApp, filename, N, W, H) return mesh return SaveScreenshotFilter() from meshtool.filters import factory factory.register(FilterGenerator().name, FilterGenerator)
orig_index.shape = -1 prims_to_add.append((orig_index, inpl, prim.material)) prims_to_delete.append(prim_index) # delete old ones and add new ones for i in sorted(prims_to_delete, reverse=True): del geom.primitives[i] for new_index, inpl, mat in prims_to_add: newtriset = geom.createTriangleSet(new_index, inpl, mat) geom.primitives.append(newtriset) def FilterGenerator(): class SplitTriangleTexcoordsFilter(OptimizationFilter): def __init__(self): super(SplitTriangleTexcoordsFilter, self).__init__( "split_triangle_texcoords", "Splits triangles that span multiple texcoords into multiple triangles to better help texture atlasing", ) def apply(self, mesh): splitTriangleTexcoords(mesh) return mesh return SplitTriangleTexcoordsFilter() from meshtool.filters import factory factory.register(FilterGenerator().name, FilterGenerator)