Exemple #1
0
    def test_readOgreSkeletonFile_SkeletonAnimation():
        mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml'
        mesh = read_ogre_mesh_file_as_mesh(mesh_file_path, .01)

        #        skeleton_file_path = '../samples/woody2_15.skeleton.xml'
        skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml'
        joint_motions = read_ogre_skeleton_file__skeleton_animations(skeleton_file_path, .01)

        viewer = ysv.SimpleViewer()
        for i in range(len(joint_motions)):
            viewer.doc.add_motion(joint_motions[i])
            viewer.doc.add_renderer(joint_motions[i].resource_name,
                                    yr.JointMotionRenderer(joint_motions[i], (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_renderer('mesh', yr.MeshRenderer(mesh))

        def extra_draw_callback():
            frame = viewer.get_current_frame()
            for i in range(joint_motions[0][0].skeleton.get_element_num()):
                ygh.draw_point(joint_motions[0][frame].get_position(i))

        viewer.set_extra_draw_callback(extra_draw_callback)

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()
Exemple #2
0
    def test_compare_skeletonanimation_vs_bvhmotion():
        mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml'
        skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml'
        skeleton_mesh, skeleton_motions = read_ogre_data_files(mesh_file_path, .01, skeleton_file_path)
        skeleton_motion = skeleton_motions[0]
        ysu.merge_points(skeleton_mesh)

        bvh_motion = yf.read_bvh_file('../samples/wd2_WalkSameSame00.bvh', .01)
        bvh_mesh = copy.deepcopy(skeleton_mesh)
        #        bvh_mesh.initialize(bvh_motion[0])

        viewer = ysv.SimpleViewer()
        viewer.doc.add_renderer('skeletonMotion', yr.JointMotionRenderer(skeleton_motion, (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_motion2('skeletonMotion', skeleton_motion)
        viewer.doc.add_renderer('skeletonMesh', yr.MeshRenderer(skeleton_mesh, (255 * .5, 255 * .5, 255)))

        viewer.doc.add_renderer('bvhMotion', yr.JointMotionRenderer(bvh_motion, (0, 255, 0), yr.LINK_LINE))
        viewer.doc.add_motion2('bvhMotion', bvh_motion)
        viewer.doc.add_renderer('bvhMesh', yr.MeshRenderer(bvh_mesh, (255 * .5, 255, 255 * .5)))

        def pre_frame_callback(frame):
            if frame < len(skeleton_motion):
                skeleton_mesh.update(skeleton_motion[frame])
            if frame < len(bvh_motion):
                bvh_mesh.update(bvh_motion[frame])

        viewer.set_pre_frame_callback(pre_frame_callback)

        viewer.start_timer(1 / 30.)
        viewer.show()

        Fl.run()
Exemple #3
0
    def test_readOgreMeshFileAsSkinMesh():
        skeleton_file_path = '../samples/woody2_15.skeleton.xml'

        #        joint_skeleton, initial_r_map = read_ogre_skeleton_file__skeleton(skeleton_file_path, .1)
        #        joint_motions = read_ogre_skeleton_file__skeleton_animations(skeleton_file_path, .1)
        joint_skeleton, initial_rs, joint_motions = read_ogre_skeleton_file(skeleton_file_path, .01)

        mesh_file_path = '../samples/woody2_15.mesh.xml'
        skin_mesh = read_ogre_mesh_file_as_skin_mesh(mesh_file_path, joint_skeleton, initial_rs, .01)

        joint_motion = yf.read_bvh_file('../samples/wd2_WalkSameSame00.bvh', .01)

        viewer = ysv.SimpleViewer()
        #        for i in range(len(joint_motions)):
        #            viewer.doc.add_motion(joint_motions[i])
        #            viewer.doc.add_renderer(joint_motions[i].resource_name, yr.JointMotionRenderer(joint_motions[i], (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_renderer('jointMotion', yr.JointMotionRenderer(joint_motion, (0, 0, 255), yr.LINK_BONE))
        viewer.doc.add_object('jointMotion', joint_motion)
        viewer.doc.add_renderer('skinMesh', yr.MeshRenderer(skin_mesh))

        def pre_frame_callback(frame):
            skin_mesh.update(joint_motion[frame])

        viewer.set_pre_frame_callback(pre_frame_callback)

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()
Exemple #4
0
    def test_writeBvhFile():
        #        # bvh
        #        bvh_file_path = '../samples/wd2_WalkSameSame00.bvh'
        #        bvh = read_bvh_file_as_bvh(bvh_file_path)
        #
        #        temp_file_path = '../samples/bvh_wd2_WalkSameSame00.bvh.temp'
        #        bvh.write_bvh_file(temp_file_path)

        # ys_motion
        bvh_file_path = '../samples/wd2_WalkSameSame00.bvh'
        motion = read_bvh_file(bvh_file_path, .01)
        #        ys_motion[0] = ys_motion[0].get_t_pose()

        temp_file_path = '../samples/motion_temp_wd2_WalkSameSame00.bvh.temp'
        write_bvh_file(temp_file_path, motion)
        motion2 = read_bvh_file(temp_file_path)
        #        motion2[0] = motion2[0].get_t_pose()

        viewer = ysv.SimpleViewer()
        viewer.record(False)
        viewer.doc.add_renderer('ys_motion', yr.JointMotionRenderer(motion, (0, 255, 0)))
        viewer.doc.add_object('ys_motion', motion)
        viewer.doc.add_renderer('motion2', yr.JointMotionRenderer(motion2, (255, 0, 0)))
        viewer.doc.add_object('motion2', motion2)

        viewer.start_timer(1 / motion.fps)
        viewer.show()

        Fl.run()
Exemple #5
0
    def test_readOgreMeshFileAsMesh():
        mesh_file_path = '../samples/woody2_15.mesh.xml'
        mesh = read_ogre_mesh_file_as_mesh(mesh_file_path, .01)

        viewer = ysv.SimpleViewer()
        viewer.doc.add_renderer('mesh', yr.MeshRenderer(mesh))
        viewer.doc.add_object('mesh', mesh)

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()
Exemple #6
0
    def test_readTrcFile():
        trc_motion = read_trc_file('../samples/Day7_Session2_Take01_-_walk.trc', .01)
        print(trc_motion[0].skeleton)

        viewer = ysv.SimpleViewer()
        viewer.record(False)
        viewer.doc.add_renderer('trcMotion', yr.PointMotionRenderer(trc_motion, (0, 255, 0)))
        viewer.doc.add_object('trcMotion', trc_motion)

        viewer.start_timer(1 / trc_motion.fps)
        viewer.show()

        Fl.run()
Exemple #7
0
    def test_showModeless():
        bvh_file_path = '../samples/wd2_WalkSameSame00.bvh'
        joint_motion = yf.read_bvh_file(bvh_file_path, .01)
        #        joint_motion = joint_motion[0:10]

        plot = SmartPlot()
        plot.set_xdata('frame', [0])
        plot.show_modeless()

        viewer = ysv.SimpleViewer()
        viewer.doc.add_renderer(
            'ys_motion(%s)' % jointMotion.resource_name,
            yr.JointMotionRenderer(joint_motion, (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_object('ys_motion(%s)' % jointMotion.resource_name,
                              joint_motion)

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()
Exemple #8
0
    def test_readOgreSkeletonFile_Skeleton():
        #        mesh_file_path = '../samples/woody2_15.mesh.xml'
        mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml'
        mesh = read_ogre_mesh_file_as_mesh(mesh_file_path, .01)

        #        skeleton_file_path = '../samples/woody2_15.skeleton.xml'
        skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml'
        joint_skeleton, initial_rs = read_ogre_skeleton_file__skeleton(skeleton_file_path, .01)

        skeleton_posture = ym.JointPosture(joint_skeleton)
        skeleton_posture.init_local_rs(initial_rs)
        #        skeleton_posture.init_local_rs()
        skeleton_motion = ym.Motion([skeleton_posture])

        viewer = ysv.SimpleViewer()
        viewer.doc.add_motion(skeleton_motion)
        viewer.doc.add_renderer('skeleton', yr.JointMotionRenderer(skeleton_motion, (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_renderer('mesh', yr.MeshRenderer(mesh))

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()
Exemple #9
0
    def test_readBvhFile():
        #        bvh_file_path = '../samples/wd2_WalkSameSame00.bvh'
        #        ys_motion = read_bvh_file(bvh_file_path, .01)
        #        motion2 = read_bvh_file(bvh_file_path, .01, True)
        bvh_file_path = '../../../Walking/ppmotion/wd2_WalkForwardNormal00.bvh'
        bvh_file_path2 = '../../../Walking/adun/adun.bvh'
        motion = read_bvh_file(bvh_file_path, 1)
        motion2 = read_bvh_file(bvh_file_path2, 1)
        print(motion[0].skeleton)
        print(motion2[0].skeleton)

        viewer = ysv.SimpleViewer()
        viewer.record(False)
        viewer.doc.add_renderer('ys_motion', yr.JointMotionRenderer(motion, (0, 255, 0)))
        viewer.doc.add_object('ys_motion', motion)
        viewer.doc.add_renderer('motion2', yr.JointMotionRenderer(motion2, (255, 0, 0)))
        viewer.doc.add_object('motion2', motion2)

        viewer.start_timer(1 / motion.fps)
        viewer.show()

        Fl.run()
Exemple #10
0
    def test_readOgreDataFiles():
        mesh_file_path = '../samples/physics2_woody_binding1.mesh.xml'
        skeleton_file_path = '../samples/physics2_woody_binding1.skeleton.xml'
        skin_mesh, joint_motions = read_ogre_data_files(mesh_file_path, .01, skeleton_file_path)

        for joint_posture in joint_motions[0]:
            joint_posture.update_global_t()

        viewer = ysv.SimpleViewer()
        for i in range(len(joint_motions)):
            viewer.doc.add_object('ys_motion%d' % i, joint_motions[i])
            viewer.doc.add_renderer('ys_motion%d' % i,
                                    yr.JointMotionRenderer(joint_motions[i], (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_renderer('skinMesh', yr.MeshRenderer(skin_mesh))

        def pre_frame_callback(frame):
            skin_mesh.update(joint_motions[0][frame])

        viewer.set_pre_frame_callback(pre_frame_callback)

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()
Exemple #11
0
    def test_InteractivePlot():
        import Resource.ys_motion_loader as yf
        import Renderer.ys_renderer as yr
        import GUI.ys_simple_viewer as ysv

        bvh_file_path = '../samples/wd2_WalkSameSame00.bvh'
        joint_motion = yf.read_bvh_file(bvh_file_path, .01)
        joint_motion = joint_motion[0:200]

        hips = joint_motion[0].skeleton.get_joint_index('Hips')
        l_foot = joint_motion[0].skeleton.get_joint_index('LeftFoot')
        r_foot = joint_motion[0].skeleton.get_joint_index('RightFoot')

        plot = InteractivePlot()
        plot.set_xlimit(0, len(joint_motion))
        plot.set_ylimit(0, 2)
        plot.add_data_set('root.y')
        plot.add_data_set('leftFoot.y')
        plot.add_data_set('rightFoot.y')

        viewer = ysv.SimpleViewer()
        viewer.doc.add_renderer(
            'ys_motion(%s)' % jointMotion.resource_name,
            yr.JointMotionRenderer(joint_motion, (0, 0, 255), yr.LINK_LINE))
        viewer.doc.add_object('ys_motion(%s)' % jointMotion.resource_name,
                              joint_motion)

        pt = [None]
        updated = [False]

        def pre_frame_callback(frame):
            if updated[0] == False:
                plot.add_data_point(
                    'root.y', frame,
                    joint_motion[frame].get_joint_position_global(hips)[1])
                plot.add_data_point(
                    'leftFoot.y', frame,
                    joint_motion[frame].get_joint_position_global(l_foot)[1])
                plot.add_data_point(
                    'rightFoot.y', frame,
                    joint_motion[frame].get_joint_position_global(r_foot)[1])
                plot.update_points()
            if frame == viewer.get_max_frame:
                updated[0] = True

            if frame == 0:
                pt[0] = time.time()
            if frame == 50:
                print(time.time() - pt[0])

        def pre_frame_callback__always(frame):
            plot.update_vline(frame)

        def viewer_onClose(data):
            plot.close()
            viewer.on_close(data)

        viewer.set_pre_frame_callback(pre_frame_callback)
        viewer.set_pre_frame_callback__always(pre_frame_callback__always)
        viewer.callback(viewer_onClose)

        viewer.start_timer(1 / 30.)
        viewer.show()
        Fl.run()