public static Vector3 Clamp(this Vector3 vector, AxesRanges range)
 {
     return(new Vector3(
                Mathf.Clamp(vector.x, range.xRange.min, range.xRange.max),
                Mathf.Clamp(vector.y, range.yRange.min, range.yRange.max),
                Mathf.Clamp(vector.z, range.zRange.min, range.zRange.max)
                ));
 }
    public static AxesFilter GetAxesOutOfRangeOrOnEdge(this Vector3 vector, AxesRanges range)
    {
        var filter = new AxesFilter();

        filter.x = !range.xRange.ContainsNotOnEdge(vector.x);
        filter.y = !range.yRange.ContainsNotOnEdge(vector.y);
        filter.z = !range.zRange.ContainsNotOnEdge(vector.z);
        return(filter);
    }