public MeshMember(Vertex vertex, Triangle triangle, Material material, SmoothingGroup sG) { this.Vertex = vertex; this.Triangle = triangle; this.Material = material; this.SmoothingGroup = sG; }
public void RemoveSmoothingGroup(SmoothingGroup sG) { for (int i = 0; i < triangles.Count; i++) { triangles[i].RemoveSmoothingGroup(sG); } }
public void AddSmoothingGroup(SmoothingGroup sG) { if (!smoothingGroups.Contains(sG)) { smoothingGroups.Add(sG); sG.Add(this); } }
public void RemoveSmoothingGroup(SmoothingGroup sG) { smoothingGroups.Remove(sG); sG.Remove(this); }
public void RemoveSmoothingGroup(SmoothingGroup sG) { triangles[0].RemoveSmoothingGroup(sG); }
public void AddSmoothingGroup(SmoothingGroup sG) { triangles[0].AddSmoothingGroup(sG); }
public void Generate() { Debug.Log("Generating"); polygon.Clear(); rotatedPolygons.Clear(); strips.Clear(); ModularMesh mesh = new ModularMesh((ModularMesh)null); for (int i = 0; i < vertexObjects.Length; i++) { polygon.Add(new Vertex(vertexObjects[i].transform.position)); } polygon.MakeClockwise(); rotatedPolygons.Add(polygon); if (thisOrThat == buildingType.version1) { for (int i = 1; i <= times; i++) { if (i % 10 == 0) { rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Rotate(angle * 10)); } else { rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Rotate(angle)); } rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Translate(Vector3.up * height)); strips.Add(new QuadStrip(rotatedPolygons[rotatedPolygons.Count - 1], rotatedPolygons[rotatedPolygons.Count - 2], mesh, MaterialManager.GetMaterial("diffuseWhite"))); } ceiling = rotatedPolygons[rotatedPolygons.Count - 1].Triangulate(mesh, MaterialManager.GetMaterial("diffuseWhite")); } if (thisOrThat == buildingType.version2) { for (int i = 1; i <= times; i++) { if (i % 10 == 0) { rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Rotate(angle * 10).Translate(height * Vector3.up)); } else { rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Rotate(angle).Translate(height * Vector3.up)); } strips.Add(new QuadStrip(rotatedPolygons[rotatedPolygons.Count - 1], rotatedPolygons[rotatedPolygons.Count - 2], mesh, MaterialManager.GetMaterial("diffuseWhite"))); } ceiling = rotatedPolygons[rotatedPolygons.Count - 1].Triangulate(mesh, MaterialManager.GetMaterial("diffuseWhite")); } if (thisOrThat == buildingType.version3) { for (int i = 1; i <= times; i++) { rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Rotate(angle).Translate(height * Vector3.up)); strips.Add(new QuadStrip(rotatedPolygons[rotatedPolygons.Count - 1], rotatedPolygons[rotatedPolygons.Count - 2], mesh, MaterialManager.GetMaterial("diffuseWhite"))); } for (int i = 0; i < wallSmoothingGroups.Length; i++) { wallSmoothingGroups[i] = new SmoothingGroup(); } for (int i = 0; i < strips.Count; i++) { for (int j = 0; j < strips[i].Quads.Count; j++) { strips[j].AddSmoothingGroup(wallSmoothingGroups[i]); } } ceiling = rotatedPolygons[rotatedPolygons.Count - 1].Triangulate(mesh, MaterialManager.GetMaterial("diffuseWhite")); ceiling.AddSmoothingGroup(new SmoothingGroup()); } if (thisOrThat == buildingType.version4) { for (int i = 1; i <= times; i++) { rotatedPolygons.Add(rotatedPolygons[rotatedPolygons.Count - 1].Rotate(angle).Translate(height * Vector3.up).Inset(amount)); strips.Add(new QuadStrip(rotatedPolygons[rotatedPolygons.Count - 1], rotatedPolygons[rotatedPolygons.Count - 2], mesh, MaterialManager.GetMaterial("diffuseWhite"))); } ceiling = rotatedPolygons[rotatedPolygons.Count - 1].Triangulate(mesh, MaterialManager.GetMaterial("diffuseWhite")); } if (thisOrThat == buildingType.version5) { rotatedPolygons.Add(rotatedPolygons[0].Translate(height * Vector3.up)); strips.Add(new QuadStrip(rotatedPolygons[rotatedPolygons.Count - 1], rotatedPolygons[0], mesh, MaterialManager.GetMaterial("diffuseWhite"))); ceiling = rotatedPolygons[rotatedPolygons.Count - 1].Triangulate(mesh, MaterialManager.GetMaterial("diffuseWhite")); } mesh.FillMesh(transform, false); rotatedPolygons.Clear(); strips.Clear(); ceiling = null; Debug.Log("Generating done"); }