示例#1
0
    def apply(self):
        cam = None
        try:
            self.progressBar.setValue(0)
            self.progressBar.show()

            file_path = self.subForm.getFilePath()
            camera_text = self.subForm.getCameraText()
            camera_data = self.subForm.getCameraData()
            width, height = self.subForm.getImageResolution()
            self.progressBar.setValue(20)

            mkr_data_list = mayareadfile.read(file_path,
                                              image_width=width,
                                              image_height=height)
            self.progressBar.setValue(70)

            if camera_text == const.NEW_CAMERA_VALUE:
                cam = lib.create_new_camera()
            else:
                cam = camera_data
            self.progressBar.setValue(90)

            mayareadfile.create_nodes(mkr_data_list, cam=cam)
        finally:
            self.progressBar.setValue(100)
            self.progressBar.hide()
            # Update the camera comboBox with the created camera, or
            # the last used camera.
            selected_cameras = [cam]
            self.subForm.updateCameraList(self.subForm.camera_comboBox,
                                          self.subForm.camera_model,
                                          selected_cameras)
        return
    def test_loadmarker_pftrack2dt_format(self):
        """
        Test loading markers using the '.2dt'/'.txt' format.
        """
        cam = lib_utils.create_new_camera()
        mkr_grp = lib_utils.create_new_marker_group(cam)

        mkr_data_list = []
        paths = [
            (self.get_data_path('pftrack',
                                'pftrack_corners_v001.txt'), (716.0, 572.0)),
            (self.get_data_path('pftrack',
                                'pftrack_corners_v002.txt'), (1920.0, 1080.0)),
            (self.get_data_path(
                'pftrack', 'pftrack_hollywoodcameraworks_headtracking.txt'),
             (1920.0, 1080.0)),
            (self.get_data_path('pftrack', 'pftrack_user_track_docs.txt'),
             (1920.0, 1080.0)),
        ]
        for path, res in paths:
            print('Reading... %r (%s x %s)' % (path, res[0], res[1]))
            _, tmp_list = marker_read.read(path,
                                           image_width=res[0],
                                           image_height=res[1])
            self.assertNotEqual(tmp_list, None)
            mkr_data_list += tmp_list

        # Create the markers
        num_nodes1 = len(maya.cmds.ls())
        marker_read.create_nodes(mkr_data_list, cam=cam, mkr_grp=mkr_grp)
        num_nodes2 = len(maya.cmds.ls())
        self.assertGreater(num_nodes2, num_nodes1)

        self.assertTrue(maya.cmds.objExists('lowerLeftSingleFrame_MKR'))
        self.assertTrue(maya.cmds.objExists('upperRightSingleFrame_MKR'))

        self.assertTrue(maya.cmds.objExists('upperLeft_MKR'))
        self.assertTrue(maya.cmds.objExists('upperRight_MKR'))
        self.assertTrue(maya.cmds.objExists('lowerLeft_MKR'))
        self.assertTrue(maya.cmds.objExists('lowerRight_MKR'))

        self.assertTrue(maya.cmds.objExists('Tracker0001_MKR'))
        self.assertTrue(maya.cmds.objExists('Tracker0002_MKR'))

        self.assertTrue(maya.cmds.objExists('head_MKR'))
        self.assertTrue(maya.cmds.objExists('head1_MKR'))
        self.assertTrue(maya.cmds.objExists('head2_MKR'))
        self.assertTrue(maya.cmds.objExists('head3_MKR'))
        self.assertTrue(maya.cmds.objExists('head4_MKR'))
        return
    def test_loadmarker_uvtrack_format(self):
        """
        Test loading markers using the '.uv' format.
        """
        cam = lib_utils.create_new_camera()
        mkr_grp = lib_utils.create_new_marker_group(cam)

        mkr_data_list = []
        paths = [
            self.get_data_path('uvtrack', 'test_v1.uv'),
            self.get_data_path('uvtrack', 'test_v3.uv'),
            self.get_data_path('uvtrack', 'test_v4.uv'),
            self.get_data_path('uvtrack', 'loadmarker_corners.uv'),
            self.get_data_path('uvtrack', 'cameraTrackRnD.uv'),
            self.get_data_path('uvtrack', 'stA.uv'),
            self.get_data_path('uvtrack', 'stA_with_emptyMarker.uv'),
            self.get_data_path('uvtrack', 'eye_fmt1_v001.uv'),
            self.get_data_path('uvtrack', 'eye_fmt2_v001.uv'),
        ]
        for path in paths:
            print('Reading... %r' % path)
            _, tmp_list = marker_read.read(path)
            self.assertNotEqual(tmp_list, None)
            mkr_data_list += tmp_list

        # Create the markers
        num_nodes1 = len(maya.cmds.ls())
        marker_read.create_nodes(mkr_data_list, cam=cam, mkr_grp=mkr_grp)
        num_nodes2 = len(maya.cmds.ls())
        self.assertGreater(num_nodes2, num_nodes1)

        self.assertTrue(maya.cmds.objExists('TopLeft_MKR'))
        self.assertEqual(maya.cmds.getAttr('TopLeft_MKR.translateX'), -0.5)
        self.assertEqual(maya.cmds.getAttr('TopLeft_MKR.translateY'), 0.5)

        self.assertTrue(maya.cmds.objExists('TopRight_MKR'))
        self.assertEqual(maya.cmds.getAttr('TopRight_MKR.translateX'), 0.5)
        self.assertEqual(maya.cmds.getAttr('TopRight_MKR.translateY'), 0.5)

        self.assertTrue(maya.cmds.objExists('BottomLeft_MKR'))
        self.assertEqual(maya.cmds.getAttr('BottomLeft_MKR.translateX'), -0.5)
        self.assertEqual(maya.cmds.getAttr('BottomLeft_MKR.translateY'), -0.5)

        self.assertTrue(maya.cmds.objExists('BottomRight_MKR'))
        self.assertEqual(maya.cmds.getAttr('BottomRight_MKR.translateX'), 0.5)
        self.assertEqual(maya.cmds.getAttr('BottomRight_MKR.translateY'), -0.5)
    def test_loadmarker_tdetxt_format(self):
        """
        Test loading markers using the '.uv' format.
        """
        cam = lib_utils.create_new_camera()
        mkr_grp = lib_utils.create_new_marker_group(cam)

        mkr_data_list = []
        paths = [
            (self.get_data_path('3de_v4',
                                'loadmarker_corners.txt'), (1920.0, 1080.0)),
            # (self.get_data_path('3de_v4', '3de_export_cube.txt'), (1920.0, 1080.0)),
            # (self.get_data_path('3de_v4', 'FB1880_man_v05.txt'), (1920.0, 1080.0)),
        ]
        for path, res in paths:
            print('Reading... %r' % path)
            _, tmp_list = marker_read.read(path,
                                           image_width=res[0],
                                           image_height=res[1])
            self.assertNotEqual(tmp_list, None)
            mkr_data_list += tmp_list

        # Create the markers
        num_nodes1 = len(maya.cmds.ls())
        marker_read.create_nodes(mkr_data_list, cam=cam, mkr_grp=mkr_grp)
        num_nodes2 = len(maya.cmds.ls())
        self.assertGreater(num_nodes2, num_nodes1)

        self.assertTrue(maya.cmds.objExists('TopLeft_MKR'))
        self.assertEqual(maya.cmds.getAttr('TopLeft_MKR.translateX'), -0.5)
        self.assertEqual(maya.cmds.getAttr('TopLeft_MKR.translateY'), 0.5)

        self.assertTrue(maya.cmds.objExists('TopRight_MKR'))
        self.assertEqual(maya.cmds.getAttr('TopRight_MKR.translateX'), 0.5)
        self.assertEqual(maya.cmds.getAttr('TopRight_MKR.translateY'), 0.5)

        self.assertTrue(maya.cmds.objExists('BottomLeft_MKR'))
        self.assertEqual(maya.cmds.getAttr('BottomLeft_MKR.translateX'), -0.5)
        self.assertEqual(maya.cmds.getAttr('BottomLeft_MKR.translateY'), -0.5)

        self.assertTrue(maya.cmds.objExists('BottomRight_MKR'))
        self.assertEqual(maya.cmds.getAttr('BottomRight_MKR.translateX'), 0.5)
        self.assertEqual(maya.cmds.getAttr('BottomRight_MKR.translateY'), -0.5)
    def test_loadmarker_rz2_format(self):
        cam = lib_utils.create_new_camera()
        mkr_grp = lib_utils.create_new_marker_group(cam)

        mkr_data_list = []
        paths = [
            self.get_data_path('match_mover', 'loadmarker.rz2'),
            self.get_data_path('match_mover', 'loadmarker_corners.rz2'),
            # self.get_data_path('match_mover', '2dtracks.rz2'),
            # self.get_data_path('match_mover', 'cha_171_1020_atb_v001.rz2'),
            # self.get_data_path('match_mover', 'EP_1000_head_trackers_v002.rz2'),
            # self.get_data_path('match_mover', 'kipPointsMatchmover.rz2'),
            # self.get_data_path('match_mover', 'NonSequentialMatchmoverPoints.rz2'),
        ]
        for path in paths:
            _, tmp_list = marker_read.read(path)
            mkr_data_list += tmp_list

        # Create the markers
        num_nodes1 = len(maya.cmds.ls())
        marker_read.create_nodes(mkr_data_list, cam=cam, mkr_grp=mkr_grp)
        num_nodes2 = len(maya.cmds.ls())
        self.assertGreater(num_nodes2, num_nodes1)

        self.assertTrue(maya.cmds.objExists('TopLeft_MKR'))
        self.assertEqual(maya.cmds.getAttr('TopLeft_MKR.translateX'), -0.5)
        self.assertEqual(maya.cmds.getAttr('TopLeft_MKR.translateY'), 0.5)

        self.assertTrue(maya.cmds.objExists('TopRight_MKR'))
        self.assertEqual(maya.cmds.getAttr('TopRight_MKR.translateX'), 0.5)
        self.assertEqual(maya.cmds.getAttr('TopRight_MKR.translateY'), 0.5)

        self.assertTrue(maya.cmds.objExists('BottomLeft_MKR'))
        self.assertEqual(maya.cmds.getAttr('BottomLeft_MKR.translateX'), -0.5)
        self.assertEqual(maya.cmds.getAttr('BottomLeft_MKR.translateY'), -0.5)

        self.assertTrue(maya.cmds.objExists('BottomRight_MKR'))
        self.assertEqual(maya.cmds.getAttr('BottomRight_MKR.translateX'), 0.5)
        self.assertEqual(maya.cmds.getAttr('BottomRight_MKR.translateY'), -0.5)
    def apply(self):
        cam = None
        mkr_grp = None
        col = None

        file_path = self.subForm.getFilePath()
        load_mode = self.subForm.getLoadModeText()
        camera_text = self.subForm.getCameraText()
        camera_data = self.subForm.getCameraData()
        mkr_grp_text = self.subForm.getMarkerGroupText()
        mkr_grp_data = self.subForm.getMarkerGroupData()
        add_to_collection = self.subForm.getAddToCollectionValue()
        collection_text = self.subForm.getCollectionText()
        collection_data = self.subForm.getCollectionData()
        load_bnd_pos = self.subForm.getLoadBundlePositions()
        undist_mode = self.subForm.getDistortionModeText()
        use_overscan = self.subForm.getUseOverscanValue()
        undistorted = undist_mode == const.UNDISTORTION_MODE_VALUE
        width, height = self.subForm.getImageResolution()

        camera_field_of_view = None
        if use_overscan is True:
            camera_field_of_view = self.subForm.getCameraFieldOfViewValue()

        # Temporarily disable adding new Markers to the Active
        # Collection.
        config = userprefs_lib.get_config()
        key = userprefs_const.REG_EVNT_ADD_NEW_MKR_TO_KEY
        old_value = userprefs_lib.get_value(config, key)
        temp_value = userprefs_const.REG_EVNT_ADD_NEW_MKR_TO_NONE_VALUE
        userprefs_lib.set_value(config, key, temp_value)

        try:
            self.progressBar.setValue(0)
            self.progressBar.show()

            with undoutils.undo_chunk_context():
                _, mkr_data_list = mayareadfile.read(
                    file_path,
                    image_width=width,
                    image_height=height,
                    undistorted=undistorted,
                )
                self.progressBar.setValue(50)

                if load_mode == const.LOAD_MODE_NEW_VALUE:
                    # Get Camera and MarkerGroup.
                    if camera_text == const.NEW_CAMERA_VALUE:
                        cam = lib.create_new_camera()
                        mkr_grp = lib.create_new_marker_group(cam)
                    else:
                        cam = camera_data
                        if mkr_grp_text == const.NEW_MARKER_GROUP_VALUE:
                            mkr_grp = lib.create_new_marker_group(cam)
                        else:
                            mkr_grp = mkr_grp_data
                    self.progressBar.setValue(60)

                    # Get Collection
                    col = None
                    if add_to_collection is True:
                        if collection_text == const.NEW_COLLECTION_VALUE:
                            col = col_lib.create_collection()
                        else:
                            col = collection_data
                    self.progressBar.setValue(70)

                    mayareadfile.create_nodes(
                        mkr_data_list,
                        cam=cam,
                        mkr_grp=mkr_grp,
                        col=col,
                        with_bundles=True,
                        load_bundle_position=load_bnd_pos,
                        camera_field_of_view=camera_field_of_view,
                    )

                elif load_mode == const.LOAD_MODE_REPLACE_VALUE:
                    self.progressBar.setValue(60)
                    mkr_list = lib.get_selected_markers()
                    # NOTE: camera_field_of_view can only be from one
                    # camera, because (we assume) only one MarkerData
                    # file can be loaded at once.
                    mayareadfile.update_nodes(
                        mkr_list,
                        mkr_data_list,
                        load_bundle_position=load_bnd_pos,
                        camera_field_of_view=camera_field_of_view)
                else:
                    raise ValueError('Load mode is not valid: %r' % load_mode)

                self.progressBar.setValue(99)
                lib.trigger_maya_to_refresh()
        finally:
            self.progressBar.setValue(100)
            self.progressBar.hide()

            # Restore original config value.
            lib.deferred_revert_of_config_value(config, key, old_value)

            # Update the camera comboBox with the created camera, or
            # the last used camera.
            all_camera_nodes = lib.get_cameras()
            selected_cameras = [cam]
            active_camera = cam
            self.subForm.updateCameraList(self.subForm.camera_comboBox,
                                          self.subForm.camera_model,
                                          all_camera_nodes, selected_cameras,
                                          active_camera)
            active_camera = cam
            active_mkr_grp = mkr_grp
            mkr_grp_nodes = lib.get_marker_groups(active_camera)
            self.subForm.updateMarkerGroupList(
                self.subForm.markerGroup_comboBox,
                self.subForm.markerGroup_model, active_mkr_grp, mkr_grp_nodes)

            # Update the list of Collections, and pick the last used
            # Collection.
            active_col = col
            col_list = col_lib.get_collections()
            self.subForm.updateCollectionList(self.subForm.collection_comboBox,
                                              self.subForm.collection_model,
                                              active_col, col_list)

            # Update config file with latest values.
            config = get_config()
            if config is not None:
                config.set_value("data/use_overscan", use_overscan)
                config.set_value("data/load_bundle_position", load_bnd_pos)
                config.set_value("data/distortion_mode", undist_mode)
                config.set_value("data/load_mode", load_mode)
                config.write()

        return
    def apply(self):
        cam = None
        mkr_grp = None

        file_path = self.subForm.getFilePath()
        load_mode = self.subForm.getLoadModeText()
        camera_text = self.subForm.getCameraText()
        camera_data = self.subForm.getCameraData()
        mkr_grp_text = self.subForm.getMarkerGroupText()
        mkr_grp_data = self.subForm.getMarkerGroupData()
        load_bnd_pos = self.subForm.getLoadBundlePositions()
        undist_mode = self.subForm.getDistortionModeText()
        use_overscan = self.subForm.getUseOverscanValue()
        undistorted = undist_mode == const.UNDISTORTION_MODE_VALUE
        width, height = self.subForm.getImageResolution()

        camera_field_of_view = None
        if use_overscan is True:
            camera_field_of_view = self.subForm.getCameraFieldOfViewValue()

        try:
            self.progressBar.setValue(0)
            self.progressBar.show()

            with undoutils.undo_chunk_context():
                _, mkr_data_list = mayareadfile.read(
                    file_path,
                    image_width=width,
                    image_height=height,
                    undistorted=undistorted,
                )
                self.progressBar.setValue(50)

                if load_mode == const.LOAD_MODE_NEW_VALUE:
                    if camera_text == const.NEW_CAMERA_VALUE:
                        cam = lib.create_new_camera()
                        mkr_grp = lib.create_new_marker_group(cam)
                    else:
                        cam = camera_data
                        if mkr_grp_text == const.NEW_MARKER_GROUP_VALUE:
                            mkr_grp = lib.create_new_marker_group(cam)
                        else:
                            mkr_grp = mkr_grp_data
                    self.progressBar.setValue(60)
                    mayareadfile.create_nodes(
                        mkr_data_list,
                        cam=cam,
                        mkr_grp=mkr_grp,
                        with_bundles=True,
                        load_bundle_position=load_bnd_pos,
                        camera_field_of_view=camera_field_of_view,
                    )

                elif load_mode == const.LOAD_MODE_REPLACE_VALUE:
                    self.progressBar.setValue(60)
                    mkr_list = lib.get_selected_markers()
                    # NOTE: camera_field_of_view can only be from one
                    # camera, because (we assume) only one MarkerData
                    # file can be loaded at once.
                    mayareadfile.update_nodes(
                        mkr_list,
                        mkr_data_list,
                        load_bundle_position=load_bnd_pos,
                        camera_field_of_view=camera_field_of_view)
                else:
                    raise ValueError('Load mode is not valid: %r' % load_mode)

                self.progressBar.setValue(99)
                lib.trigger_maya_to_refresh()
        finally:
            self.progressBar.setValue(100)
            self.progressBar.hide()
            # Update the camera comboBox with the created camera, or
            # the last used camera.
            all_camera_nodes = lib.get_cameras()
            selected_cameras = [cam]
            active_camera = cam
            self.subForm.updateCameraList(self.subForm.camera_comboBox,
                                          self.subForm.camera_model,
                                          all_camera_nodes, selected_cameras,
                                          active_camera)
            active_camera = cam
            active_mkr_grp = mkr_grp
            mkr_grp_nodes = lib.get_marker_groups(active_camera)
            self.subForm.updateMarkerGroupList(
                self.subForm.markerGroup_comboBox,
                self.subForm.markerGroup_model, active_mkr_grp, mkr_grp_nodes)

            # Update config file with latest values.
            config = get_config()
            if config is not None:
                config.set_value("data/use_overscan", use_overscan)
                config.set_value("data/load_bundle_position", load_bnd_pos)
                config.set_value("data/distortion_mode", undist_mode)
                config.set_value("data/load_mode", load_mode)
                config.write()

        return
示例#8
0
    def apply(self):
        cam = None
        mkr_grp = None

        file_path = self.subForm.getFilePath()
        load_mode = self.subForm.getLoadModeText()
        camera_text = self.subForm.getCameraText()
        camera_data = self.subForm.getCameraData()
        mkr_grp_text = self.subForm.getMarkerGroupText()
        mkr_grp_data = self.subForm.getMarkerGroupData()
        load_bnd_pos = self.subForm.getLoadBundlePositions()
        undist_mode = self.subForm.getDistortionModeText()
        undistorted = undist_mode == const.UNDISTORTION_MODE_VALUE
        width, height = self.subForm.getImageResolution()

        try:
            self.progressBar.setValue(0)
            self.progressBar.show()

            with undoutils.undo_chunk_context():
                _, mkr_data_list = mayareadfile.read(
                    file_path,
                    image_width=width,
                    image_height=height,
                    undistorted=undistorted,
                )
                self.progressBar.setValue(50)

                if load_mode == const.LOAD_MODE_NEW_VALUE:
                    if camera_text == const.NEW_CAMERA_VALUE:
                        cam = lib.create_new_camera()
                    else:
                        cam = camera_data
                        if mkr_grp_text == const.NEW_MARKER_GROUP_VALUE:
                            mkr_grp = lib.create_new_marker_group(cam)
                        else:
                            mkr_grp = mkr_grp_data
                    self.progressBar.setValue(60)
                    mayareadfile.create_nodes(
                        mkr_data_list,
                        cam=cam,
                        mkr_grp=mkr_grp,
                        with_bundles=True,
                        load_bundle_position=load_bnd_pos,
                    )

                elif load_mode == const.LOAD_MODE_REPLACE_VALUE:
                    self.progressBar.setValue(60)
                    mkr_list = lib.get_selected_markers()
                    mayareadfile.update_nodes(mkr_list, mkr_data_list)
                else:
                    raise ValueError('Load mode is not valid: %r' % load_mode)

                self.progressBar.setValue(99)
                lib.trigger_maya_to_refresh()
        finally:
            self.progressBar.setValue(100)
            self.progressBar.hide()
            # Update the camera comboBox with the created camera, or
            # the last used camera.
            all_camera_nodes = lib.get_cameras()
            selected_cameras = [cam]
            active_camera = cam
            self.subForm.updateCameraList(
                self.subForm.camera_comboBox,
                self.subForm.camera_model,
                all_camera_nodes,
                selected_cameras,
                active_camera
            )
            active_camera = cam
            active_mkr_grp = mkr_grp
            mkr_grp_nodes = lib.get_marker_groups(active_camera)
            self.subForm.updateMarkerGroupList(
                self.subForm.markerGroup_comboBox,
                self.subForm.markerGroup_model,
                active_mkr_grp,
                mkr_grp_nodes
            )
        return
示例#9
0
 def test_create_new_marker_group(self):
     cam = lib_utils.create_new_camera()
     mkr_grp = lib_utils.create_new_marker_group(cam)
     assert mkr_grp
     return
示例#10
0
 def test_create_new_camera(self):
     cam = lib_utils.create_new_camera()
     assert cam
     return