예제 #1
0
    def test_init(self):
        x = camera.Camera()
        x_tfm = x.get_transform_node()
        x_shp = x.get_shape_node()
        self.assertEqual(x_tfm, None)
        self.assertEqual(x_shp, None)

        # Create nodes
        cam_tfm = maya.cmds.createNode('transform', name='myCamera1')
        cam_tfm = node_utils.get_long_name(cam_tfm)
        cam_shp = maya.cmds.createNode('camera', name='myCameraShape1',
                                       parent=cam_tfm)
        cam_shp = node_utils.get_long_name(cam_shp)

        y = camera.Camera(transform=cam_tfm, shape=cam_shp)
        y_tfm = y.get_transform_node()
        y_shp = y.get_shape_node()
        self.assertTrue(maya.cmds.objExists(y_tfm))
        self.assertTrue(maya.cmds.objExists(y_shp))
        self.assertEqual(y_tfm, cam_tfm)
        self.assertEqual(y_shp, cam_shp)

        z1 = camera.Camera(transform=cam_tfm)
        z1_tfm = z1.get_transform_node()
        z1_shp = z1.get_shape_node()
        self.assertEqual(z1_tfm, cam_tfm)
        self.assertEqual(z1_shp, cam_shp)

        z2 = camera.Camera(shape=cam_shp)
        z2_tfm = z2.get_transform_node()
        z2_shp = z2.get_shape_node()
        self.assertEqual(z2_tfm, cam_tfm)
        self.assertEqual(z2_shp, cam_shp)
예제 #2
0
    def test_is_valid(self):
        """
        Collection validation.
        Once all pieces are connected, the collection is valid.
        """
        x = collection.Collection()
        x.create_node('myCollection')
        self.assertFalse(x.is_valid())

        # Solver
        sol = solver.Solver()
        x.add_solver(sol)
        self.assertFalse(x.is_valid())

        # Solver (with frame)
        f = frame.Frame(1)
        sol.add_frame(f)
        self.assertFalse(x.is_valid())

        # Marker / Bundle
        cam_tfm = maya.cmds.createNode('transform', name='camera1')
        cam_shp = maya.cmds.createNode('camera', name='cameraShape1')
        cam = camera.Camera(shape=cam_shp)
        bnd = bundle.Bundle().create_node()
        mkr = marker.Marker().create_node(cam=cam, bnd=bnd)
        x.add_marker(mkr)
        self.assertFalse(x.is_valid())

        # Attribute
        node = bnd.get_node()
        attr = attribute.Attribute(node=node, attr='translateX')
        x.add_attribute(attr)
        self.assertTrue(x.is_valid())
예제 #3
0
    def test_init_with_non_standard_transform_node(self):
        """
        Create a camera with a custom transform node.

        Some pipelines custom transform nodes for camera transform
        nodes.

        GitHub issue #123.
        """
        custom_node_type = 'mmMarkerGroupTransform'
        # Create nodes
        cam_tfm = maya.cmds.createNode(custom_node_type, name='myCamera1')
        cam_tfm = node_utils.get_long_name(cam_tfm)
        cam_shp = maya.cmds.createNode('camera', name='myCameraShape1',
                                       parent=cam_tfm)
        cam_shp = node_utils.get_long_name(cam_shp)

        y = camera.Camera(transform=cam_tfm, shape=cam_shp)
        y_tfm = y.get_transform_node()
        y_tfm_uid = y.get_transform_uid()
        y_tfm_uid_node = node_utils.get_long_name(y_tfm_uid)
        y_shp = y.get_shape_node()
        y_shp_uid = y.get_shape_uid()
        y_shp_uid_node = node_utils.get_long_name(y_shp_uid)
        self.assertTrue(maya.cmds.objExists(y_tfm))
        self.assertTrue(maya.cmds.objExists(y_shp))
        self.assertTrue(maya.cmds.objExists(y_tfm_uid_node))
        self.assertTrue(maya.cmds.objExists(y_shp_uid_node))
        self.assertEqual(y_tfm, cam_tfm)
        self.assertEqual(y_shp, cam_shp)
        self.assertEqual(y_tfm_uid_node, cam_tfm)
        self.assertEqual(y_shp_uid_node, cam_shp)
        return
예제 #4
0
 def create_camera(name):
     cam_tfm = maya.cmds.createNode('transform', name=name)
     cam_tfm = node_utils.get_long_name(cam_tfm)
     cam_shp = maya.cmds.createNode('camera', name=name+'Shape',
                                    parent=cam_tfm)
     cam_shp = node_utils.get_long_name(cam_shp)
     cam = camera.Camera(transform=cam_tfm, shape=cam_shp)
     return cam
예제 #5
0
 def test_get_plate_resolution(self):
     cam_tfm, cam_shp = self.create_camera('myCamera')
     x = camera.Camera(transform=cam_tfm, shape=cam_shp)
     res = x.get_plate_resolution()
     self.assertTrue(isinstance(res, (tuple, list)))
     self.assertEqual(len(res), 2)
     self.assertEqual(res[0], const.DEFAULT_PLATE_WIDTH)
     self.assertEqual(res[1], const.DEFAULT_PLATE_HEIGHT)
     return
예제 #6
0
    def get_camera(self):
        """
        Get the attached camera node.

        :return: Camera node or None.
        :rtype: Camera or None
        """
        mkr_node = self.get_node()

        cam_tfm, cam_shp = api_utils.get_camera_above_node(mkr_node)

        # Make the camera object.
        cam = None
        if cam_tfm is not None and cam_shp is not None:
            cam = camera.Camera(transform=cam_tfm, shape=cam_shp)
        return cam
예제 #7
0
    def get_camera(self):
        """
        Get the camera connected implicitly with the Marker.

        :returns: Camera object, or None if Marker does not have a
                  Camera (for example it's unparented to world).
        :rtype: None or Camera
        """
        mkr_node = self.get_node()

        cam_tfm, cam_shp = node_utils.get_camera_above_node(mkr_node)

        # Make the camera object.
        cam = None
        if cam_tfm is not None and cam_shp is not None:
            cam = camera.Camera(transform=cam_tfm, shape=cam_shp)
        return cam
예제 #8
0
 def test_is_valid(self):
     cam_tfm, cam_shp = self.create_camera('myCamera')
     x = camera.Camera(transform=cam_tfm, shape=cam_shp)
     valid = x.is_valid()
     self.assertTrue(valid)
     return