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 main(): """ Convert all selected transforms into 2D markers under a camera. """ # Get camera model_editor = utils_viewport.get_active_model_editor() if model_editor is None: msg = 'Please select an active 3D viewport.' LOG.warning(msg) return cam_tfm, cam_shp = utils_viewport.get_viewport_camera(model_editor) if cam_shp is None: LOG.error('Please select an active viewport to get a camera.') return if utils_camera.is_startup_cam(cam_shp) is True: LOG.error("Cannot create Markers in 'persp' camera.") return # Get transforms nodes = maya.cmds.ls( selection=True, long=True, type='transform', ) or [] if len(nodes) == 0: LOG.warning('Please select one or more transform nodes.') return mmapi.load_plugin() try: # Turn off Maya UI maya.mel.eval('paneLayout -e -manage false $gMainPane') # Compute the Marker Data. start_frame, end_frame = utils_time.get_maya_timeline_range_outer() mkr_data_list = __convert_nodes_to_marker_data_list( cam_tfm, cam_shp, nodes, start_frame, end_frame, ) cam = mmapi.Camera(shape=cam_shp) mkr_list = mayareadfile.create_nodes( mkr_data_list, cam=cam, mkr_grp=None, with_bundles=True, ) mkr_nodes = [mkr.get_node() for mkr in mkr_list] except: raise finally: # Turn on Maya UI maya.mel.eval('paneLayout -e -manage true $gMainPane') if len(mkr_nodes) > 0: maya.cmds.select(mkr_nodes, replace=True) return
def convert_to_marker(): """ Center the selected transform onto the camera view. """ # Get camera cam_shp = __get_camera() if cam_shp is None: LOG.warning('Please select an active viewport to get a camera.') return cam_tfm = maya.cmds.listRelatives(cam_shp, parent=True)[0] # Get transforms nodes = maya.cmds.ls( selection=True, long=True, type='transform', ) or [] if len(nodes) == 0: LOG.warning('Please select one or more transform nodes.') return mmapi.load_plugin() try: # Turn off Maya UI maya.mel.eval('paneLayout -e -manage false $gMainPane') # Compute the Marker Data. start_frame, end_frame = __get_timeline_range_inner() mkr_data_list = __convert_nodes_to_marker_data_list( cam_tfm, cam_shp, nodes, start_frame, end_frame) cam = mmapi.Camera(shape=cam_shp) mayareadfile.create_nodes( mkr_data_list, cam=cam, mkr_grp=None, with_bundles=False, ) except: raise finally: maya.mel.eval( 'paneLayout -e -manage true $gMainPane') # turn on Maya UI return
def test_loadmarker_tdetxt_format(self): """ Test loading markers using the '.uv' format. """ 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) 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_uvtrack_format(self): """ Test loading markers using the '.uv' format. """ mkr_data_list = [] paths = [ self.get_data_path('uvtrack', 'test_v1.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) 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): 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) 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)