def reload_vbos(self, meshes=None): mesh_vbos = [] # Each mesh gets its own VBO. # Each leaf gets its own unique color within the mesh VBO all_leafs = [] if meshes is None: meshes = self.meshes for m in meshes: leafs = m.leafs() all_leafs += leafs merged = Mesh.merge(leafs) tcounts = [L.tcount for L in leafs] mesh_vbos.append( (vbo.VBO(merged.vdata, size=merged.vcount*4*6), vbo.VBO(merged.tdata, target=GL_ELEMENT_ARRAY_BUFFER, size=merged.tcount*4*3), tcounts, m, merged) ) wx.CallAfter(self._reload_vbos, mesh_vbos, all_leafs)
def export_stl(self): ''' Exports an stl, using an asdf as intermediary. ''' i = 0 meshes = [] for expr in self.cad.shapes: if self.event.is_set(): return asdf = self.make_asdf(expr) i += 1 self.window.progress = i*33/len(self.cad.shapes) if self.event.is_set(): return mesh = self.make_mesh(asdf) i += 2 self.window.progress = i*33/len(self.cad.shapes) if mesh is not None: meshes.append(mesh) if self.event.is_set(): return total = Mesh.merge(meshes) total.save_stl(self.filename)
def export_stl(self): ''' Exports an stl, using an asdf as intermediary. ''' i = 0 meshes = [] for expr in self.cad.shapes: if self.event.is_set(): return asdf = self.make_asdf(expr) i += 1 self.window.progress = i * 33 / len(self.cad.shapes) if self.event.is_set(): return mesh = self.make_mesh(asdf) i += 2 self.window.progress = i * 33 / len(self.cad.shapes) if mesh is not None: meshes.append(mesh) if self.event.is_set(): return total = Mesh.merge(meshes) total.save_stl(self.filename)
def reload_vbos(self, meshes=None): mesh_vbos = [] # Each mesh gets its own VBO. # Each leaf gets its own unique color within the mesh VBO all_leafs = [] if meshes is None: meshes = self.meshes for m in meshes: leafs = m.leafs() all_leafs += leafs merged = Mesh.merge(leafs) tcounts = [L.tcount for L in leafs] mesh_vbos.append( (vbo.VBO(merged.vdata, size=merged.vcount * 4 * 6), vbo.VBO(merged.tdata, target=GL_ELEMENT_ARRAY_BUFFER, size=merged.tcount * 4 * 3), tcounts, m, merged)) wx.CallAfter(self._reload_vbos, mesh_vbos, all_leafs)