def get_world_to_view_matrix(mlab_scene):
    """returns the 4x4 matrix that is a concatenation of the modelview transform and
    perspective transform. Takes as input an mlab scene object.
    
    Parameters
    ----------
    mlab_scene : MayaviScene instance

    Returns
    -------
    np_comb_trans_mat : array-like
        Combined 4x4 transformation matrix for modelview and perspective transforms
    """
    from mayavi.core.ui.mayavi_scene import MayaviScene
    if not isinstance(mlab_scene, MayaviScene):
        raise TypeError('argument must be an instance of MayaviScene')
    scene_size = tuple(mlab_scene.get_size())
    clip_range = mlab_scene.camera.clipping_range
    aspect_ratio = float(scene_size[0]) / float(scene_size[1])
    vtk_comb_trans_mat = (mlab_scene.camera.
        get_composite_projection_transform_matrix(aspect_ratio, clip_range[
        0], clip_range[1]))
    np_comb_trans_mat = vtk_comb_trans_mat.to_array()
    return np_comb_trans_mat
