/// <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); }
/// <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 }); }