def test_get_cameras(self): """ Get all cameras. """ cameras_a = lib_utils.get_cameras() assert len(cameras_a) == 0 tfm = maya.cmds.createNode('transform') shp = maya.cmds.createNode('camera', parent=tfm) cameras_b = lib_utils.get_cameras() assert len(cameras_b) == 1 return
def populateUi(self): all_camera_nodes = lib.get_cameras() selected_cameras = lib.get_selected_cameras() active_camera = lib.get_active_viewport_camera() self.updateCameraList( self.camera_comboBox, self.camera_model, all_camera_nodes, selected_cameras, active_camera ) active_camera = self.getCameraData() mkr_grp_nodes = lib.get_marker_groups(active_camera) active_mkr_grp = None self.updateMarkerGroupList( self.markerGroup_comboBox, self.markerGroup_model, active_mkr_grp, mkr_grp_nodes ) value = const.LOAD_MODE_DEFAULT_VALUE self.populateLoadModeModel(self.loadMode_model) index = self.loadMode_model.stringList().index(value) self.loadMode_comboBox.setCurrentIndex(index) value = const.DISTORTION_MODE_DEFAULT_VALUE self.populateDistortionModeModel(self.distortionMode_model) index = self.distortionMode_model.stringList().index(value) self.distortionMode_comboBox.setCurrentIndex(index) return
def cameraUpdateClicked(self): all_camera_nodes = lib.get_cameras() selected_cameras = lib.get_selected_cameras() active_camera = lib.get_active_viewport_camera() self.updateCameraList(self.camera_comboBox, self.camera_model, all_camera_nodes, selected_cameras, active_camera) return
def populate_ui(self): # Add camera items all_camera_nodes = cam_lib.get_cameras() active_camera = cam_lib.get_active_viewport_camera() for cam in all_camera_nodes: cam_tfm = cam.get_transform_node() self.cameraListComboBox.addItem(str(cam_tfm)) if active_camera: active_camera_tfm = active_camera.get_transform_node() for count, cam in enumerate(all_camera_nodes): if cam.get_transform_node() == active_camera_tfm: self.cameraListComboBox.setCurrentIndex(count) break
def populate_ui(self): # Add camera items all_camera_nodes = cam_lib.get_cameras() selected_cameras = cam_lib.get_selected_cameras() active_camera = cam_lib.get_active_viewport_camera() for cam in all_camera_nodes: cam_tfm = cam.get_transform_node() self.cameraListComboBox.addItem(str(cam_tfm)) if active_camera: active_camera_tfm = active_camera.get_transform_node() for count, cam in enumerate(all_camera_nodes): if cam.get_transform_node() == active_camera_tfm: self.cameraListComboBox.setCurrentIndex(count) break self.sceneLabel.setEnabled(False) self.sceneLineEdit.setEnabled(False) self.sceneGetButton.setEnabled(False)
def populateCameraModel(self, model): """ Add entries of cameras in the scene into the given camera model. :param model: The Qt model to add cameras to. :type model: QtCore.QStringListModel :return: """ camera_nodes = lib.get_cameras() string_data_list = [(const.NEW_CAMERA_VALUE, None)] for camera_node in camera_nodes: if camera_node.is_valid() is False: LOG.warning('Camera node is not valid: %r', camera_node) continue node = camera_node.get_shape_node() string_data_list.append((node, camera_node)) model.setStringDataList(string_data_list) return
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
def populateUi(self): config = get_config() self._file_info = None w, h = lib.get_default_image_resolution() self.imageRes_label.setEnabled(False) self.imageResWidth_label.setEnabled(False) self.imageResWidth_spinBox.setValue(w) self.imageResWidth_spinBox.setEnabled(False) self.imageResHeight_label.setEnabled(False) self.imageResHeight_spinBox.setValue(h) self.imageResHeight_spinBox.setEnabled(False) self.fileInfo_plainTextEdit.setReadOnly(True) value = get_config_value( config, 'data/load_bundle_position', const.LOAD_BUNDLE_POS_DEFAULT_VALUE) self.loadBndPositions_checkBox.setChecked(value) value = get_config_value( config, 'data/use_overscan', const.USE_OVERSCAN_DEFAULT_VALUE) self.overscan_checkBox.setChecked(value) # Get the file path from the clipboard. try: clippy = QtGui.QClipboard() text = str(clippy.text()).strip() if lib.is_valid_file_path(text): self.setFilePath(text) except Exception as e: msg = 'Could not get file path from clipboard.' LOG.warning(msg) LOG.info(str(e)) all_camera_nodes = lib.get_cameras() selected_cameras = lib.get_selected_cameras() active_camera = lib.get_active_viewport_camera() self.updateCameraList( self.camera_comboBox, self.camera_model, all_camera_nodes, selected_cameras, active_camera ) active_camera = self.getCameraData() mkr_grp_nodes = lib.get_marker_groups(active_camera) active_mkr_grp = None self.updateMarkerGroupList( self.markerGroup_comboBox, self.markerGroup_model, active_mkr_grp, mkr_grp_nodes ) value = get_config_value( config, "data/load_mode", const.LOAD_MODE_DEFAULT_VALUE ) self.populateLoadModeModel(self.loadMode_model) index = self.loadMode_model.stringList().index(value) self.loadMode_comboBox.setCurrentIndex(index) value = get_config_value( config, "data/distortion_mode", const.DISTORTION_MODE_DEFAULT_VALUE ) self.populateDistortionModeModel(self.distortionMode_model) index = self.distortionMode_model.stringList().index(value) self.distortionMode_comboBox.setCurrentIndex(index) 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() 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