コード例 #1
0
    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)
コード例 #2
0
    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
コード例 #3
0
    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())
コード例 #4
0
 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())
コード例 #5
0
    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())
コード例 #6
0
ファイル: marker.py プロジェクト: OmniZ3D/mayaMatchMoveSolver
    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
コード例 #7
0
 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)