def METHOD_NAME(self,
         height: Optional[int] = None,
         width: Optional[int] = None,
         canvas: Optional[np.ndarray] = None,
         color: Optional[Union[int, Tuple[int, int, int]]] = None,
         thickness=None) -> np.ndarray:
    """Converts the Mask object into a numpy array
    Args:
        height (int): Optionally resize mask height before drawing.
        width (int): Optionally resize mask width before drawing.
        canvas (np.ndarray): Optionall provide a canvas to draw on
        color (Union[int, Tuple[int,int,int]]): Color to draw the canvas.
            Defaults to using the encoded color in the mask.
            int will return the mask as a 1d array
            tuple[int,int,int] will return the mask as a 3d array
        thickness (None): Unused, exists for a consistent interface.
    Returns:
        np.ndarray representing only this object
            as opposed to the mask that this object references which might have multiple objects determined by colors
    """
    mask = self.mask.value
    mask = np.alltrue(mask == self.color, axis=2).astype(np.uint8)
    if height is not None or width is not None:
        mask = cv2.resize(mask,
                          (width or mask.shape[1], height or mask.shape[0]))
    dims = [mask.shape[0], mask.shape[1]]
    color = color or self.color
    if isinstance(color, (tuple, list)):
        dims = dims + [len(color)]
    canvas = canvas if canvas is not None else np.zeros(tuple(dims),
                                                        dtype=np.uint8)
    canvas[mask.astype(bool)] = color
    return canvas