fix: build error

master
uc-hoba 10 months ago
parent 321d9fbb03
commit 3e61fb3eb8
  1. 44
      Assets/Scripts/Editor/GeodesicMesh.cs
  2. 0
      Assets/Scripts/Editor/GeodesicMesh.cs.meta
  3. 65
      Assets/Scripts/Editor/GoldbergBuilder.cs
  4. 0
      Assets/Scripts/Editor/GoldbergBuilder.cs.meta
  5. 0
      Assets/Scripts/Editor/IsoVector.cs
  6. 0
      Assets/Scripts/Editor/IsoVector.cs.meta

@ -15,7 +15,7 @@ namespace Metamesh
public List<int> min = new List<int>();
public Dictionary<string, int> vecToidx = new Dictionary<string, int>();
public Dictionary<string, List<int>> vertByDist = new Dictionary<string, List<int>>();
public List<List<int>> closestTo = new List<List<int>>();
public Dictionary<int, List<int>> closestTo = new Dictionary<int, List<int>>();
public List<List<string>> innerFacets = new List<List<string>>();
public List<List<IsoVector>> isoVecsABOB = new List<List<IsoVector>>();
@ -116,7 +116,7 @@ namespace Metamesh
string isoId;
string isoIdR;
var closestTo = new List<List<int>>();
var closestTo = new Dictionary<int, List<int>>();
var vDist = this.vertByDist;
System.Action<int, int, string, string> matchIdx = (f, fr, isoId, isoIdR) =>
@ -429,7 +429,7 @@ namespace Metamesh
var x = OA * this.coau + OB * this.cobu;
var y = OA * this.coav + OB * this.cobv;
var mapped = new List<List<float>>();
var mapped = new Dictionary<int, List<float>>();
string idx;
for (var i = 0; i < this.cartesian.Count; i++)
@ -501,13 +501,8 @@ namespace Metamesh
return a.y - b.y;
});
var min = new List<int> { m + n + 1 };
var max = new List<int> { m + n + 1 };
for (var i = 0; i < min.Count; i++)
{
min[i] = int.MaxValue;
max[i] = int.MinValue;
}
var min = Enumerable.Repeat(int.MaxValue, m + n + 1).ToList();
var max = Enumerable.Repeat(int.MinValue, m + n + 1).ToList();
var y = 0;
var x = 0;
@ -540,10 +535,10 @@ namespace Metamesh
return v.x + v.y;
};
var cartesian = new List<Vector3>();
var distFromO = new List<int>();
var distFromA = new List<int>();
var distFromB = new List<int>();
var cartesian = Enumerable.Repeat(Vector3.zero, len).ToList();
var distFromO = Enumerable.Repeat(0, len).ToArray();
var distFromA = Enumerable.Repeat(0, len).ToArray();
var distFromB = Enumerable.Repeat(0, len).ToArray();
var vertByDist = new Dictionary<string, List<int>>();
;
var vertData = new List<List<int>>();
@ -897,7 +892,15 @@ namespace Metamesh
this.adjacentFaces = new List<List<int>>();
for (var m = 0; m < map.Length; m++)
{
goldbergPolyhedronData.face[m] = this.SetOrder(m, new List<int>(map[m]));
var tempFace = this.SetOrder(m, new List<int>(map[m]));
if (goldbergPolyhedronData.face.Count <= m)
{
goldbergPolyhedronData.face.Add(tempFace);
}
else
{
goldbergPolyhedronData.face[m] = tempFace;
}
foreach (var el in map[m])
{
cx = 0;
@ -911,7 +914,16 @@ namespace Metamesh
cy += vertex[1];
cz += vertex[2];
}
goldbergPolyhedronData.vertex[el] = new Vector3(cx / 3, cy / 3, cz / 3);
var tempVertex = new Vector3(cx / 3, cy / 3, cz / 3);
if (goldbergPolyhedronData.vertex.Count <= el)
{
goldbergPolyhedronData.vertex.Add(tempVertex);
}
else
{
goldbergPolyhedronData.vertex[el] = tempVertex;
}
}
;
}

@ -73,20 +73,11 @@ namespace Metamesh
}
for (var v = 0; v < verts.Count - 2; v++)
{
indices.AddRange(new int[] { index, index + v + 2, index + v + 1 });
indices.AddRange(new int[] { index, index + v + 1, index + v + 2 });
}
index += verts.Count;
}
/*
VertexData._ComputeSides(sideOrientation, positions, indices, normals, uvs);
const vertexData = new VertexData();
vertexData.positions = positions;
vertexData.indices = indices;
vertexData.normals = normals;
vertexData.uvs = uvs;
return vertexData;
*/
return new VertexData()
{
vertices = positions,
@ -96,15 +87,6 @@ namespace Metamesh
};
}
/**
* Creates the Mesh for a Goldberg Polyhedron which is made from 12 pentagonal and the rest hexagonal faces
* @see https://en.wikipedia.org/wiki/Goldberg_polyhedron
* @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/polyhedra/goldberg_poly
* @param name defines the name of the mesh
* @param options an object used to set the following optional parameters for the polyhedron, required but can be empty
* @param scene defines the hosting scene
* @returns Goldberg mesh
*/
public VertexData CreateGoldberg(GoldbergCreationOption options)
{
var size = options.size;
@ -115,9 +97,7 @@ namespace Metamesh
var n = options.n;// || 0;
if (n > m)
{
var temp = n;
n = m;
m = temp;
(n, m) = (m, n);
Debug.LogWarning("n > m therefore m and n swapped");
}
var primTri = new PrimaryIsoTriangle();
@ -125,49 +105,8 @@ namespace Metamesh
var geodesicData = GeodesicData.BuildGeodesicData(primTri);
var goldbergData = geodesicData.ToGoldbergPolyhedronData();
//var goldberg = new Mesh();
//goldberg.name = name;
var vertexData = CreateGoldbergVertexData(options, goldbergData);
return vertexData;
/*
vertexData.applyToMesh(goldberg, options.updatable);
goldberg.goldbergData.nbSharedFaces = geodesicData.sharedNodes;
goldberg.goldbergData.nbUnsharedFaces = geodesicData.poleNodes;
goldberg.goldbergData.adjacentFaces = geodesicData.adjacentFaces;
goldberg.goldbergData.nbFaces = goldberg.goldbergData.nbSharedFaces + goldberg.goldbergData.nbUnsharedFaces;
goldberg.goldbergData.nbFacesAtPole = (goldberg.goldbergData.nbUnsharedFaces - 12) / 12;
for (var f = 0; f < geodesicData.vertex.Count; f++)
{
goldberg.goldbergData.faceCenters.push(Vector3.FromArray(geodesicData.vertex[f]));
goldberg.goldbergData.faceCenters[f].x *= sizeX;
goldberg.goldbergData.faceCenters[f].y *= sizeY;
goldberg.goldbergData.faceCenters[f].z *= sizeZ;
goldberg.goldbergData.faceColors.push(new Color4(1, 1, 1, 1));
}
for (var f = 0; f < goldbergData.face.Count; f++)
{
var verts = goldbergData.face[f];
var a = goldbergData.vertex[verts[0]];
var b = goldbergData.vertex[verts[2]];
var c = goldbergData.vertex[verts[1]];
var ba = b - a;
var ca = c - a;
var norm = Vector3.Cross(ca, ba).normalized;
var z = Vector3.Cross(ca, norm).normalized;
//goldberg.goldbergData.faceXaxis.push(ca.normalize());
//goldberg.goldbergData.faceYaxis.push(norm);
//goldberg.goldbergData.faceZaxis.push(z);
}
return goldberg;
*/
}
}