def test_set_marker_group(self): x = marker.Marker().create_node() mkr_grp1 = x.get_marker_group() self.assertEqual(mkr_grp1, None) cam = self.create_camera('myCamera1') mkr_grp2 = markergroup.MarkerGroup().create_node(cam=cam) mkr_grp3 = markergroup.MarkerGroup().create_node(cam=cam) x = marker.Marker().create_node() # Set mkr_grp2 as marker group. x.set_marker_group(mkr_grp2) mkr_grp4 = x.get_marker_group() self.assertIsInstance(mkr_grp4, markergroup.MarkerGroup) self.assertEqual(mkr_grp2.get_node(), mkr_grp4.get_node()) # Set mkr_grp3 as marker group. x.set_marker_group(mkr_grp3) mkr_grp5 = x.get_marker_group() self.assertIsInstance(mkr_grp5, markergroup.MarkerGroup) self.assertEqual(mkr_grp3.get_node(), mkr_grp5.get_node()) # Unlink marker from marker group (detach to world). x.set_marker_group(None) mkr_grp6 = x.get_marker_group() self.assertIs(mkr_grp6, None) self.assertEqual(mkr_grp6, None)
def _link_to_camera(self, cam): """ Parent a marker under the marker group which is under the given camera. If there is no marker group, one is created. :param cam: The camera to connect this Marker to. :type cam: None or Camera :returns: None """ assert isinstance(cam, camera.Camera) mkr_node = self.get_node() if mkr_node is None: LOG.warn('Could not get Marker node. self=%r', self) return cam_tfm = cam.get_transform_node() cam_shp = cam.get_shape_node() # Make sure the camera is valid for us to link to. if cam.is_valid() is False: msg = 'Cannot link Marker to Camera; Camera is not valid.' msg += ' marker={0} camera={1}' msg = msg.format(repr(mkr_node), repr(cam_shp)) raise excep.NotValid(msg) # Check if we're trying to link the the camera that we're already # linked to. current_cam = self.get_camera() if current_cam is not None: assert isinstance(current_cam, camera.Camera) current_cam_shp = current_cam.get_shape_node() if current_cam_shp == cam_shp: msg = 'Marker is already linked to camera, skipping.' msg += ' marker={0} camera={1}' msg = msg.format(repr(mkr_node), repr(cam_shp)) raise excep.AlreadyLinked(msg) # Create Marker Group mkr_grp = None mkr_grp_nodes = maya.cmds.ls(cam_tfm, dag=True, long=True, type='mmMarkerGroupTransform') or [] mkr_grp_nodes = sorted(mkr_grp_nodes) if len(mkr_grp_nodes) == 0: mkr_grp = markergroup.MarkerGroup().create_node(cam=cam) else: mkr_grp = markergroup.MarkerGroup(node=mkr_grp_nodes[0]) # Link to Marker Group self.set_marker_group(mkr_grp) return
def test_init(self): x = markergroup.MarkerGroup() self.assertEqual(x.get_node(), None) self.assertIsInstance(x, markergroup.MarkerGroup) self.assertFalse(x.is_valid()) cam = self.create_camera('camera') cam_tfm = cam.get_transform_node() node = maya.cmds.createNode('mmMarkerGroupTransform', name='markerGroup1', parent=cam_tfm) y = markergroup.MarkerGroup(node=node) self.assertEqual(y.get_node(), cam_tfm + '|markerGroup1') self.assertTrue(y.is_valid())
def test_create_node(self): cam = self.create_camera('myCamera') cam_tfm = cam.get_transform_node() x = markergroup.MarkerGroup().create_node(cam=cam) self.assertIsInstance(x, markergroup.MarkerGroup) self.assertEqual(x.get_node(), cam_tfm + '|markerGroup1') self.assertTrue(x.is_valid())
def test_get_marker_group(self): x = marker.Marker().create_node() mkr_grp = x.get_marker_group() self.assertEqual(mkr_grp, None) cam = self.create_camera('myCamera1') mkr_grp1 = markergroup.MarkerGroup().create_node(cam=cam) mkr_grp2 = markergroup.MarkerGroup().create_node(cam=cam) x = marker.Marker().create_node(mkr_grp=mkr_grp1) mkr_grp3 = x.get_marker_group() self.assertIsInstance(mkr_grp3, markergroup.MarkerGroup) self.assertEqual(mkr_grp1.get_node(), mkr_grp3.get_node()) x.set_marker_group(mkr_grp2) mkr_grp4 = x.get_marker_group() self.assertIsInstance(mkr_grp4, markergroup.MarkerGroup) self.assertEqual(mkr_grp2.get_node(), mkr_grp4.get_node())
def get_marker_group(self): """ Get the marker group that implicitly connected to this Marker. :returns: Marker group object. :rtype: MarkerGroup or None """ mkr_node = self.get_node() mkr_grp_node = api_utils.get_marker_group_above_node(mkr_node) # Make the marker group object. mkr_grp = None if mkr_grp_node is not None: mkr_grp = markergroup.MarkerGroup(node=mkr_grp_node) return mkr_grp
def test_get_camera(self): camA = self.create_camera('myCamera') camA_shp = camA.get_shape_node() x = markergroup.MarkerGroup().create_node(cam=camA) camB_shp = x.get_camera().get_shape_node() self.assertEqual(camA_shp, camB_shp)