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)
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())
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
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
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
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
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
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