public static List <Vector3> ReturnARealPoly(Vector3 hitVector3, Vector3[] Vertices, InitializerTerrain iniTerr, Vertexer vertex) { if (hitVector3 == null || hitVector3 == new Vector3()) { return(new List <Vector3>()); } Vector3 firstVertex = vertex.FindClosestVertex(hitVector3, Vertices); Dir quadrant = vertex.FindVertexQuadrant(firstVertex, hitVector3); Vector3 lefTopVertex = vertex.FindTopLeftVertex(firstVertex, quadrant, iniTerr.StepX, iniTerr.StepZ, Vertices); //UVisHelp.CreateHelpers(lefTopVertex, Root.redSphereHelp); List <Vector3> poly = FindPoly(lefTopVertex, iniTerr.StepX, iniTerr.StepZ, vertex, Vertices); //UVisHelp.CreateHelpers(poly, Root.boxCollHelp); return(poly); }
//create one subpoly based on where we hit the terrain List <Vector3> CreateOneSubPoly(Vector3 hitPointOnSubPoly, bool isMouseOnTerrain, Vertexer vertex, SubDivider subDivide, UPoly poly, List <Vector3> currentHoverVertices) { //print(isMouseOnTerrain + "isMouseOnTerrain"); List <Vector3> subPoly = new List <Vector3>(); if (isMouseOnTerrain) { Vector3 firstVertex = vertex.FindClosestVertex(hitPointOnSubPoly, currentHoverVertices.ToArray()); Dir quadrant = vertex.FindVertexQuadrant(firstVertex, hitPointOnSubPoly); Vector3 lefTopVertex = vertex.FindTopLeftVertex(firstVertex, quadrant, subDivide.XSubStep, subDivide.ZSubStep, currentHoverVertices.ToArray()); subPoly = UPoly.FindPoly(lefTopVertex, subDivide.XSubStep, subDivide.ZSubStep, vertex, currentHoverVertices.ToArray()); //UVisHelp.CreateHelpers(subPoly, Root.blueCube); } return(subPoly); }