Move stretch

This commit is contained in:
Noah Pilarski 2022-05-12 18:31:48 -04:00
parent c3e056f9b2
commit b4739ce67f
2 changed files with 3 additions and 37 deletions

View File

@ -11,7 +11,7 @@ namespace NewHorizons.Builder.Body.Geometry
{
static class CubeSphere
{
public static Mesh Build(int resolution, Texture2D heightMap, float minHeight, float maxHeight, Vector3 stretch)
public static Mesh Build(int resolution, Texture2D heightMap, float minHeight, float maxHeight)
{
// It breaks if resolution is greater than 100 I don't know why
if(resolution > 100)
@ -23,24 +23,7 @@ namespace NewHorizons.Builder.Body.Geometry
Mesh mesh = new Mesh();
mesh.name = "CubeSphere";
float max = 1;
if (stretch.x > stretch.y && stretch.x > stretch.z)
max = stretch.x;
else if (stretch.y > stretch.x && stretch.y > stretch.z)
max = stretch.y;
else if (stretch.z > stretch.x && stretch.z > stretch.y)
max = stretch.z;
else if (stretch.y == stretch.z && stretch.x > stretch.y)
max = stretch.x;
else if (stretch.x == stretch.z && stretch.y > stretch.x)
max = stretch.y;
else if (stretch.x == stretch.y && stretch.z > stretch.x)
max = stretch.z;
minHeight /= max;
maxHeight /= max;
CreateVertices(mesh, resolution, heightMap, minHeight, maxHeight);
StretchVertices(mesh, stretch);
CreateTriangles(mesh, resolution);
mesh.RecalculateNormals();
@ -50,24 +33,6 @@ namespace NewHorizons.Builder.Body.Geometry
return mesh;
}
private static void StretchVertices(Mesh mesh, Vector3 scale)
{
var baseVertices = mesh.vertices;
var vertices = new Vector3[baseVertices.Length];
for (var i = 0; i < vertices.Length; i++)
{
var vertex = baseVertices[i];
vertex.x = vertex.x * scale.x;
vertex.y = vertex.y * scale.y;
vertex.z = vertex.z * scale.z;
vertices[i] = vertex;
}
mesh.vertices = vertices;
}
// Thank you Catlikecoding
private static void CreateVertices(Mesh mesh, int resolution, Texture2D heightMap, float minHeight, float maxHeight)
{

View File

@ -37,8 +37,9 @@ namespace NewHorizons.Builder.Body
cubeSphere.SetActive(false);
cubeSphere.transform.parent = sector?.transform ?? planetGO.transform;
cubeSphere.transform.rotation = Quaternion.Euler(90, 0, 0);
cubeSphere.transform.localScale = module.Stretch;
Mesh mesh = CubeSphere.Build(51, heightMap, module.MinHeight, module.MaxHeight, module.Stretch);
Mesh mesh = CubeSphere.Build(51, heightMap, module.MinHeight, module.MaxHeight);
cubeSphere.AddComponent<MeshFilter>();
cubeSphere.GetComponent<MeshFilter>().mesh = mesh;