Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)