Beispiel #1
0
        def on_key_press(symbol, modifiers):
            if symbol == 88:  # x
                self.view_orth_vector = np.array([self.radius, 0, 0])
                self.program['u_view'] = glm.translation(
                    self.view_orth_vector[0], self.view_orth_vector[1],
                    self.view_orth_vector[2])
            elif symbol == 89:  # y
                self.view_orth_vector = np.array([0, self.radius, 0])
                self.program['u_view'] = glm.translation(
                    self.view_orth_vector[0], self.view_orth_vector[1],
                    self.view_orth_vector[2])
            elif symbol == 90:  # z
                self.view_orth_vector = np.array([0, 0, self.radius])
                self.program['u_view'] = glm.translation(
                    self.view_orth_vector[0], self.view_orth_vector[1],
                    self.view_orth_vector[2])
            elif symbol == 70:  # f
                self.view_orth_vector = -self.view_orth_vector
                self.program['u_view'] = glm.translation(
                    self.view_orth_vector[0], self.view_orth_vector[1],
                    self.view_orth_vector[2])
            elif symbol == 80:  # p
                gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                                gl.GL_UNSIGNED_BYTE, framebuffer)
                png.from_array(framebuffer, 'RGB').save('screenshot.png')

            print('Key pressed (symbol=%s, modifiers=%s)' %
                  (symbol, modifiers))
Beispiel #2
0
def on_draw(dt):
    global phi, theta, duration, i, cube_prog, indices

    window.clear()
    gl.glEnable(gl.GL_DEPTH_TEST)
    cube_prog.draw(gl.GL_TRIANGLES, indices)

    # Rotate cube
    theta += random.randint(0, 300)  # degrees
    phi += random.randint(0, 300)  # degrees
    view = cube_prog['u_view'].reshape(4, 4)
    model = np.eye(4, dtype=np.float32)
    glm.rotate(model, theta, 0, 0, 1)
    glm.rotate(model, phi, 0, 1, 0)
    cube_prog['u_model'] = model
    cube_prog['u_normal'] = np.array(np.matrix(np.dot(view, model)).I.T)

    if i < count:
        framebuffer = np.zeros((window.height, window.width * 3),
                               dtype=np.uint8)
        gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                        gl.GL_UNSIGNED_BYTE, framebuffer)
        png.from_array(framebuffer, 'RGB').save("color/" + str(dice_val) +
                                                "_" + str(i) + '.png')
        i += 1
    else:
        app.quit()
        i = 0
Beispiel #3
0
    def on_key_press(self, k, modifiers):
        """" Default key handler that close window on escape """
        if k == key.ESCAPE:
            self.close()
            return True
        elif k == key.F10:
            import os, sys
            import numpy as np
            from glumpy.ext import png
            framebuffer = np.zeros((self.height, self.width * 3),
                                   dtype=np.uint8)
            gl.glReadPixels(0, 0, self.width, self.height, gl.GL_RGB,
                            gl.GL_UNSIGNED_BYTE, framebuffer)

            basename = os.path.basename(os.path.realpath(sys.argv[0]))
            dirname = os.path.dirname(os.path.realpath(sys.argv[0]))
            basename = '.'.join(basename.split('.')[:-1])
            filename = os.path.join(dirname, "%s.png" % basename)
            png.from_array(framebuffer[::-1], 'RGB').save(filename)
            #            index = 0
            #            filename = "%s-%04d.png" % (basename,index)
            #            while os.path.exists(os.path.join(dirname, filename)):
            #                index += 1
            #                filename = "%s-%04d.png" % (basename, index)
            #            png.from_array(framebuffer, 'RGB').save(filename)
            return True
        def on_key_press(symbol, modifiers):
            """

            :param symbol:
            :param modifiers:
            :return:
            """
            '''
            if symbol == 88:  # x
                self.view_orth_vector = np.array([self.radius, 0, 0])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 89:  # y
                self.view_orth_vector = np.array([0, self.radius, 0])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 90:  # z
                self.view_orth_vector = np.array([0, 0, self.radius])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 70:  # f
                self.view_orth_vector = -self.view_orth_vector
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 80:  # p
                gl.glReadPixels(0, 0, window.width, window.height,
                                gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
                png.from_array(framebuffer, 'RGB').save('screenshot.png')

            print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers))
            # self.program['color_sel'] = 1 - self.program['color_sel']
            '''
            #print(symbol)
            if symbol == 67:  # c --> change color
                for program_object in self.programs:
                    if program_object.name == 'ProgramSFM3DRegion':
                        program_object.program['color_sel'] = 1 - program_object.program['color_sel']
            elif symbol == 65:  # a --> align sfm to google
                for program_object in self.programs:
                    if program_object.name == 'ProgramSFM3DRegion' or program_object.name == 'programTrajectory':
                        program_object.align_flip()
            elif symbol == 73:  # i --> inverse google according anchor
                for program_object in self.programs:
                    if program_object.name == 'ProgramSV3DRegion' or program_object.name == 'programSV3DTopology':
                        program_object.apply_anchor_flip()
            elif symbol == 89:  # y --> rotate google according anchor yaw
                for program_object in self.programs:
                    if program_object.name == 'ProgramSV3DRegion' or program_object.name == 'programSV3DTopology':
                        program_object.apply_yaw_flip()
            elif symbol == 80:  # p --> print scrren
                gl.glReadPixels(0, 0, window.width, window.height,
                                gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
                png.from_array(framebuffer, 'RGB').save('screenshot{}.png'.format(self.scIdx))
                #my_texture = np.reshape(framebuffer, (window.height, window.width, 3))
                # Some unknown reason
                # The buffer didn't match what I see in the window
                #my_texture = np.flipud(my_texture)
                #scipy.misc.imsave('yolo.png', my_texture)

                self.scIdx += 1
Beispiel #5
0
    def on_key_press(self, k, modifiers):
        """" Default key handler that close window on escape """
        if k == key.ESCAPE:
            self.close()
            return True
        elif k == key.F10:
            import os, sys
            import numpy as np
            from glumpy.ext import png
            framebuffer = np.zeros((self.height, self.width * 3), dtype=np.uint8)
            gl.glReadPixels(0, 0, self.width, self.height,
                            gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)

            basename = os.path.basename(os.path.realpath(sys.argv[0]))
            dirname = os.path.dirname(os.path.realpath(sys.argv[0]))
            basename = '.'.join(basename.split('.')[:-1])
            filename = os.path.join(dirname,"%s.png" % basename)
            png.from_array(framebuffer[::-1], 'RGB').save(filename)
#            index = 0
#            filename = "%s-%04d.png" % (basename,index)
#            while os.path.exists(os.path.join(dirname, filename)):
#                index += 1
#                filename = "%s-%04d.png" % (basename, index)
#            png.from_array(framebuffer, 'RGB').save(filename)
            return True
Beispiel #6
0
        def on_key_press(symbol, modifiers):
            """

            :param symbol:
            :param modifiers:
            :return:
            """
            '''
            if symbol == 88:  # x
                self.view_orth_vector = np.array([self.radius, 0, 0])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 89:  # y
                self.view_orth_vector = np.array([0, self.radius, 0])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 90:  # z
                self.view_orth_vector = np.array([0, 0, self.radius])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 70:  # f
                self.view_orth_vector = -self.view_orth_vector
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 80:  # p
                gl.glReadPixels(0, 0, window.width, window.height,
                                gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
                png.from_array(framebuffer, 'RGB').save('screenshot.png')

            print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers))
            # self.program['color_sel'] = 1 - self.program['color_sel']
            '''
            #print(symbol)
            if symbol == 67:  # c --> change color
                for program_object in self.programs:
                    if program_object.name == 'ProgramSFM3DRegion':
                        program_object.program['color_sel'] = 1 - program_object.program['color_sel']
            elif symbol == 65:  # a --> align sfm to google
                for program_object in self.programs:
                    if program_object.name == 'ProgramSFM3DRegion' or program_object.name == 'programTrajectory':
                        program_object.align_flip()
            elif symbol == 73:  # i --> inverse google according anchor
                for program_object in self.programs:
                    if program_object.name == 'ProgramSV3DRegion':
                        program_object.apply_anchor_flip()
            elif symbol == 89:  # y --> rotate google according anchor yaw
                for program_object in self.programs:
                    if program_object.name == 'ProgramSV3DRegion':
                        program_object.apply_yaw_flip()
            elif symbol == 80:  # p --> print scrren
                gl.glReadPixels(0, 0, window.width, window.height,
                                gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
                png.from_array(framebuffer, 'RGB').save('screenshot{}.png'.format(self.scIdx))
                #my_texture = np.reshape(framebuffer, (window.height, window.width, 3))
                # Some unknown reason
                # The buffer didn't match what I see in the window
                #my_texture = np.flipud(my_texture)
                #scipy.misc.imsave('yolo.png', my_texture)

                self.scIdx += 1
Beispiel #7
0
def on_draw(dt):
    window.clear()
    for shape in shapes:
        shape.draw(gl.GL_TRIANGLE_STRIP)

    for curve_loop in curves_loop:
        curve_loop.draw(gl.GL_LINE_LOOP)

    for curve in curves:
        curve.draw(gl.GL_LINES)

    gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                    gl.GL_UNSIGNED_BYTE, framebuffer)
    png.from_array(np.flipud(framebuffer), 'RGB').save('wardisland.png')
 def on_key_press(symbol, modifiers):
     global toggleStop, time
     # print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers))
     if symbol == 83:
         gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                         gl.GL_UNSIGNED_BYTE, framebuffer)
         screen_filename = filename[:-3] + '_' + str(time) + '.png'
         png.from_array(framebuffer, 'RGB').save(screen_filename)
         print('... screen capture: {}'.format(screen_filename))
     if symbol == app.window.key.ENTER:
         reset(transform)
     if symbol == app.window.key.SPACE:
         if toggleStop:
             toggleStop = False
         else:
             toggleStop = True
Beispiel #9
0
def on_draw(dt):

    framebuffer.activate()
    gl.glViewport(0, 0, w, h)
    window.clear()
    scene.draw(gl.GL_TRIANGLE_STRIP)
    framebuffer.deactivate()

    gl.glViewport(0, 0, zoom * w, zoom * h)
    window.clear()
    output.draw(gl.GL_TRIANGLE_STRIP)

    image = np.zeros((window.height, window.width * 3), dtype=np.uint8)
    gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                    gl.GL_UNSIGNED_BYTE, image)
    image[...] = image[::-1, :]
    # filename = "triangle-sdf-filled.png"
    filename = "triangle-sdf-outlined.png"
    png.from_array(image, 'RGB').save(filename)
Beispiel #10
0
def on_draw(dt):
    global framebuffer, offset_index

    offset_name = list(offsets.keys())[offset_index]
    offset = offsets[offset_name]

    gl.glViewport(0, 0, width, height)
    framebuffer_2.activate()
    window.clear()
    framebuffer_2.deactivate()

    for dx, dy in offset:
        framebuffer_1.activate()
        window.clear()
        scene["offset"] = (2 * dx - 1) / width, (2 * dy - 1) / height
        scene.draw(gl.GL_TRIANGLE_STRIP)
        # scene.draw(gl.GL_LINE_LOOP)
        framebuffer_1.deactivate()

        framebuffer_2.activate()
        gl.glEnable(gl.GL_BLEND)
        gl.glBlendFunc(gl.GL_CONSTANT_ALPHA, gl.GL_ONE)
        gl.glBlendColor(0, 0, 0, 1 / len(offset))
        ssaa.draw(gl.GL_TRIANGLE_STRIP)
        gl.glDisable(gl.GL_BLEND)
        framebuffer_2.deactivate()

    gl.glViewport(0, 0, window.width, window.height)
    window.clear()
    final.draw(gl.GL_TRIANGLE_STRIP)

    gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                    gl.GL_UNSIGNED_BYTE, framebuffer)
    framebuffer[...] = framebuffer[::-1, :]
    # filename = "triangle-ssaa-outlined-%s.png" % offset_name
    filename = "triangle-ssaa-filled-%s.png" % offset_name
    png.from_array(framebuffer, 'RGB').save(filename)
    offset_index += 1
        def on_key_press(symbol, modifiers):
            if symbol == 88:  # x
                self.view_orth_vector = np.array([self.radius, 0, 0])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 89:  # y
                self.view_orth_vector = np.array([0, self.radius, 0])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 90:  # z
                self.view_orth_vector = np.array([0, 0, self.radius])
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 70:  # f
                self.view_orth_vector = -self.view_orth_vector
                self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1],
                                                         self.view_orth_vector[2])
            elif symbol == 80:  # p
                gl.glReadPixels(0, 0, window.width, window.height,
                                gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
                png.from_array(framebuffer, 'RGB').save('screenshot.png')

            print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers))
Beispiel #12
0
    def on_draw(dt):
        nonlocal frame, x, y, z, theta, phi, gamma

        # Export screenshot
        gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                        gl.GL_UNSIGNED_BYTE, framebuffer)
        if frame > 2:  # Skip empty zero frame
            if (frame) % 3 == 0:
                pbar.update()
                gt.append(
                    [f'{(frame-3)//3:05d}.png', x, y, z, theta, phi, gamma])
                png.from_array(framebuffer, 'RGB').save(
                    root / 'images' / f'{(frame-3)//3:05d}.png')
            elif (frame) % 3 == 1:
                png.from_array(framebuffer, 'RGB').save(
                    root / 'no_rotation' / f'{(frame-4)//3:05d}.png')
            elif (frame) % 3 == 2:
                png.from_array(framebuffer, 'RGB').save(
                    root / 'no_translation' / f'{(frame-5)//3:05d}.png')

        if (frame - 1) % 3 == 0:
            theta = np.random.random_sample() * 360
            x, y = np.random.random_sample(2) * (max_xy - min_xy) + min_xy
            if not fixed_z:
                z = np.random.random_sample() * (max_z - min_z) + min_z
            if shape == 'cube':
                phi = np.random.random_sample() * 180
            if shape in shapes:
                phi = np.random.random_sample() * 180
                gamma = np.random.random_sample() * 360

        window.clear()

        # Fill cube
        gl.glDisable(gl.GL_BLEND)
        gl.glEnable(gl.GL_DEPTH_TEST)
        gl.glEnable(gl.GL_POLYGON_OFFSET_FILL)
        cube['u_color'] = 1, 1, 1, 1
        cube.draw(gl.GL_TRIANGLES, I)

        # Rotate cube
        view = cube['u_view'].reshape(4, 4)
        model = np.eye(4, dtype=np.float32)
        if (frame - 1) % 3 != 1:
            glm.rotate(model, theta, 0, 0, 1)
            glm.rotate(model, phi, 0, 1, 0)
            glm.rotate(model, gamma, 1, 0, 0)

        # Translate cube
        if (frame - 1) % 3 != 2:
            glm.translate(model, x, y, z)

        cube['u_model'] = model
        cube['u_normal'] = np.array(np.matrix(np.dot(view, model)).I.T)

        frame += 1
def on_draw(dt):
    window.clear()
    gl.glReadPixels(0, 0, window.width, window.height,
                    gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
    png.from_array(framebuffer, 'RGB').save('screenshot'+ str(dt) +'.png')
 def on_key_press(symbol, modifiers):
     gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                     gl.GL_UNSIGNED_BYTE, framebuffer)
     png.from_array(framebuffer, 'RGB').save('screenshot.png')
     #print('Key pressed (symbol=%s, modifiers=%s)'% (symbol,modifiers))
     program_ptCloud['color_sel'] = 1 - program_ptCloud['color_sel']
Beispiel #15
0
def on_draw(dt):
    window.clear()
    gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB,
                    gl.GL_UNSIGNED_BYTE, framebuffer)
    png.from_array(framebuffer, 'RGB').save('screenshot.png')
 def on_key_press(symbol, modifiers):
     gl.glReadPixels(0, 0, window.width, window.height,
                     gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
     png.from_array(framebuffer, 'RGB').save('screenshot.png')        
     #print('Key pressed (symbol=%s, modifiers=%s)'% (symbol,modifiers))  
     program_ptCloud['color_sel'] = 1 - program_ptCloud['color_sel']
Beispiel #17
0
def on_draw(dt):
    window.clear()
    gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer)
    png.from_array(framebuffer, "RGB").save("screenshot.png")