def __create_node(mkr_data, cam, mkr_grp, with_bundles): """ Create a Marker object from a MarkerData object. """ if isinstance(mkr_data, interface.MarkerData) is False: msg = 'mkr_data must be of type: %r' raise TypeError(msg % interface.MarkerData.__name__) if isinstance(with_bundles, bool) is False: msg = 'with_bundles must be of type: %r' raise TypeError(msg % bool.__name__) name = mkr_data.get_name() mkr_name = mmapi.get_new_marker_name(name) bnd_name = mmapi.get_new_bundle_name(name) bnd = None mmapi.load_plugin() if with_bundles is True: bnd = mmapi.Bundle().create_node(bnd_name) if cam and mkr_grp: cam = None mkr = mmapi.Marker().create_node(name=mkr_name, cam=cam, mkr_grp=mkr_grp, bnd=bnd) return mkr, bnd
def main(): """ Averages marker position from selected markers. """ selection = maya.cmds.ls(selection=True, long=True) or [] selected_markers = mmapi.filter_marker_nodes(selection) if len(selected_markers) < 2: LOG.warning('Please select more than 1 marker') return mkr_selection = selected_markers[0] mkr = mmapi.Marker(node=mkr_selection) # getting camera from the selected marker cam_from_mkr = mkr.get_camera() mkr_name = mmapi.get_new_marker_name('avgMarker1') new_mkr = mmapi.Marker().create_node(cam=cam_from_mkr, name=mkr_name) new_mkr_node = new_mkr.get_node() bnd_name = mmapi.get_new_bundle_name('avgBundle1') new_bnd = mmapi.Bundle().create_node(name=bnd_name) # connecting bundle to the marker new_mkr.set_bundle(new_bnd) # getting first frame and last frame from the selected markers start_frame, end_frame = mmapi.get_markers_start_end_frames( selected_markers) # Running average from selected markers for giving frame range lib.__set_average_marker_position(selected_markers, start_frame, end_frame, new_mkr_node) maya.cmds.select(new_mkr_node) # dgdirty for Channel box value update maya.cmds.dgdirty(new_mkr_node) return None
def __create_node(mkr_data, cam, mkr_grp, with_bundles): """ Create a Marker object from a MarkerData object. :param mkr_data: The data to create the Marker with. :type mkr_data: MarkerData :param cam: Camera to create marker node underneath. :type cam: Camera :param mkr_grp: MarkerGroup to create marker underneath :type mkr_grp: MarkerGroup :param with_bundles: Create the Marker with Bundle attached? :type with_bundles: bool :returns: Created Marker and Bundle objects. If with_bundles is False, the Bundle object will be None. :rtype: (Marker, Bundle or None) """ if isinstance(mkr_data, interface.MarkerData) is False: msg = 'mkr_data must be of type: %r' raise TypeError(msg % interface.MarkerData.__name__) if isinstance(with_bundles, bool) is False: msg = 'with_bundles must be of type: %r' raise TypeError(msg % bool.__name__) name = mkr_data.get_name() mkr_name = mmapi.get_new_marker_name(name) bnd_name = mmapi.get_new_bundle_name(name) bnd = None mmapi.load_plugin() if with_bundles is True: bnd = mmapi.Bundle().create_node(bnd_name) if cam and mkr_grp: cam = None mkr = mmapi.Marker().create_node( name=mkr_name, cam=cam, mkr_grp=mkr_grp, bnd=bnd) return mkr, bnd
def main(): """ Main function runs duplicate marker on all selected markers. """ selection = maya.cmds.ls(selection=True, long=True) or [] selected_markers = mmapi.filter_marker_nodes(selection) if not selected_markers: LOG.warning('Please select markers') return mkr_selection = selected_markers[0] mkr = mmapi.Marker(node=mkr_selection) # getting camera from the selected marker cam_from_mkr = mkr.get_camera() new_mkr_nodes = [] for marker in selected_markers: # Get Marker's name mkr = mmapi.Marker(node=marker) # old_mkr_node is expected to be a long name. old_mkr_node = mkr.get_node() if old_mkr_node is None: LOG.warning('Invalid Marker, skipping duplicate.') continue mkr_name = old_mkr_node.rpartition('|')[-1] mkr_name = mkr_name[0].upper() + mkr_name[1:] mkr_name = 'dup' + mkr_name # Get Bundles's name bnd_name = 'dupBundle1' bnd = mkr.get_bundle() if bnd is None: pass else: bnd_node = bnd.get_node() bnd_name = bnd_node.rpartition('|')[-1] bnd_name = bnd_name[0].upper() + bnd_name[1:] bnd_name = 'dup' + bnd_name # get attrs lock state lock_value = lib.__get_lock_state(marker, const.MKR_ATTRS) mkr_name = mmapi.get_new_marker_name(mkr_name) new_mkr = mmapi.Marker().create_node(cam=cam_from_mkr, name=mkr_name) new_mkr_node = new_mkr.get_node() bnd_name = mmapi.get_new_bundle_name(bnd_name) new_bnd = mmapi.Bundle().create_node(name=bnd_name) # connecting bundle to the marker new_mkr.set_bundle(new_bnd) # running duplicate lib.__copy_key_frames(marker, new_mkr_node) # set lock state on newly created markers lib.__set_lock_state(marker, new_mkr_node, const.MKR_ATTRS, lock_value) new_mkr_nodes.append(new_mkr_node) if len(new_mkr_nodes) > 0: maya.cmds.select(new_mkr_nodes, replace=True) else: # Restore the original selection. maya.cmds.select(selection, replace=True) return
def main(): """ Create a new marker under the current viewport camera, or under the selected camera, if a camera is selected. """ mmapi.load_plugin() sel = maya.cmds.ls(sl=True, long=True) node_filtered = mmapi.filter_nodes_into_categories(sel) cams = node_filtered['camera'] cams = filter(utils_camera.is_not_startup_cam, cams) mkr_grps = node_filtered['markergroup'] cam = None mkr_grp = None if len(cams) > 0 and len(mkr_grps) > 0: msg = ('Please select a camera or marker group; ' 'both node types are selected.') LOG.error(msg) elif len(cams) == 0 and len(mkr_grps) == 0: # Create a Marker under the active viewport 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) node = cam_shp if node is None: msg = 'Please select an active viewport to get a camera.' LOG.error(msg) return if utils_camera.is_startup_cam(node) is True: msg = "Cannot create Markers in 'persp' camera." LOG.error(msg) return if maya.cmds.nodeType(node) == 'transform': cam = mmapi.Camera(transform=node) elif maya.cmds.nodeType(node) == 'camera': cam = mmapi.Camera(shape=node) else: LOG.error('Camera node is invalid; %r', node) return elif len(cams) > 0 and len(mkr_grps) == 0: # Create a Marker under the selected camera. node = cams[0] if maya.cmds.nodeType(node) == 'transform': cam = mmapi.Camera(transform=node) elif maya.cmds.nodeType(node) == 'camera': cam = mmapi.Camera(shape=node) else: LOG.error('Camera node is invalid; %r', node) return elif len(cams) == 0 and len(mkr_grps) > 0: # Create a marker under the first selected Marker Group. node = mkr_grps[0] mkr_grp = mmapi.MarkerGroup(node=node) else: LOG.error('Should not get here.') bnd_name = mmapi.get_new_bundle_name('bundle1') bnd = mmapi.Bundle().create_node(name=bnd_name) mkr_name = mmapi.get_new_marker_name('marker1') mkr = mmapi.Marker().create_node(name=mkr_name, cam=cam, mkr_grp=mkr_grp, bnd=bnd) maya.cmds.select(mkr.get_node(), replace=True) return