private void AlignmentAll() { List <Node> temp = new List <Node>(); float minZ, maxZ; getRowOrCloumn getROW = new getRowOrCloumn(GetRow); getRowOrCloumn getCOLUMN = new getRowOrCloumn(GetColumn); minZ = Mathf.Abs(ReturnMinORMax(true, getROW, xz.z)); maxZ = -Mathf.Abs(ReturnMinORMax(false, getROW, xz.z)); float value = (maxZ - minZ) / (NodeRes - 1); for (int i = 0; i < NodeRes; i++) { temp = GetRow(i); foreach (var item in temp) { Vector3 M_vector3 = new Vector3(item.transform.position.x, item.transform.position.y, minZ + value * i); item.SetVertices(M_vector3, item.Id - 1); } } float minX, maxX; minX = ReturnMinORMax(true, getCOLUMN, xz.x); maxX = ReturnMinORMax(false, getCOLUMN, xz.x); value = (maxX - minX) / (NodeRes - 1); for (int i = 0; i < NodeRes; i++) { temp = GetColumn(i); foreach (var item in temp) { Vector3 M_vector3 = new Vector3(minX + value * i, item.transform.position.y, item.transform.position.z); item.SetVertices(M_vector3, item.Id - 1); } } }
private float ReturnMinORMax(bool b, getRowOrCloumn _getRowOrCloumn, xz _xz) { List <Node> tempFirst = new List <Node>(); List <float> values = new List <float>(); if (b) { tempFirst = _getRowOrCloumn(0); } else { tempFirst = _getRowOrCloumn(NodeRes - 1); } foreach (Node item in tempFirst) { switch (_xz) { case xz.x: values.Add(item.transform.position.x); break; case xz.z: values.Add(item.transform.position.z); break; default: break; } } values.Sort(); if (b) { return(values[0]); } else { values.Reverse(); return(values[0]); } }