Beispiel #1
0
    /// <summary>
    /// Will say if origin is on terrain
    /// </summary>
    /// <param name="origin"></param>
    /// <returns></returns>
    public static bool IsOnTerrain(Vector3 origin)
    {
        SMe mm         = new SMe();
        var hit        = mm.SubDivide.FindYValueOnTerrain(origin.x, origin.z);
        var terrCenter = mm.IniTerr.MathCenter;

        if (Mathf.Abs(terrCenter.y - hit) < 0.1f)
        {
            return(true);
        }

        return(false);
    }
Beispiel #2
0
    /// <summary>
    /// This one use Y as MathCenter
    /// </summary>
    /// <param name="list"></param>
    /// <returns></returns>
    public static List <Vector3> FromALotOfVertexToPolyMathCenterY(List <Vector3> list)
    {
        List <float> xS = UList.ReturnAxisList(list, H.X);
        List <float> zS = UList.ReturnAxisList(list, H.Z);

        float minX = UMath.ReturnMinimum(xS);
        float maxX = UMath.ReturnMax(xS);

        float minZ = UMath.ReturnMinimum(zS);
        float maxZ = UMath.ReturnMax(zS);

        //Poly List that only need a valid NW, NE, and SW
        SMe m = new SMe();
        //throwing rays so we keep the exact Y values
        Vector3 NW = new Vector3(minX, m.IniTerr.MathCenter.y, maxZ);
        Vector3 NE = new Vector3(maxX, m.IniTerr.MathCenter.y, maxZ);
        Vector3 SE = new Vector3(maxX, m.IniTerr.MathCenter.y, minZ);
        Vector3 SW = new Vector3(minX, m.IniTerr.MathCenter.y, minZ);

        return(new List <Vector3>()
        {
            NW, NE, SE, SW
        });
    }