2 using System.Collections.Generic;
5 namespace BlenderMeshReader
11 public string Name {
get; set; }
12 public ulong UniqueIdentifier {
get; set; }
13 public Vector3[] VertexList {
get; set; }
14 public Vector3[] NormalList {
get; set; }
15 public List<PolygonListEntry> PolygonList {
get; set; }
16 public int[] LoopList {
get; set; }
17 public int[] TriangleList {
get; set; }
21 this.Name =
"defaultMesh";
22 this.UniqueIdentifier = 0;
23 VertexList =
new Vector3[0];
24 NormalList =
new Vector3[0];
25 PolygonList =
new List<PolygonListEntry>();
26 LoopList =
new int[0];
27 TriangleList =
new int[0];
31 public BlenderMesh(
string name, ulong uniqueIdentifier)
34 this.UniqueIdentifier = uniqueIdentifier;
35 VertexList =
new Vector3[0];
36 NormalList =
new Vector3[0];
37 PolygonList =
new List<PolygonListEntry>();
38 LoopList =
new int[0];
39 TriangleList =
new int[0];
44 public void createTriangleList()
46 List<int> triangle =
new List<int>();
49 for (
int i = 0; i < polygon.Lenght - 2; i++)
51 for (
int j = 0; j < 3; j++)
55 triangle.Add(LoopList[polygon.StartIndex + j]);
61 triangle.Add(LoopList[polygon.StartIndex + j + i + 1]);
65 triangle.Add(LoopList[polygon.StartIndex]);
73 TriangleList = triangle.ToArray();
84 Vector3[] vertices =
new Vector3[VertexList.Length];
86 for (
int i = 0; i < VertexList.Length; i++)
88 vertices[i] =
new Vector3(VertexList[i].x, VertexList[i].y,-VertexList[i].z);
90 result.VertexList = vertices;
92 Vector3[] normals =
new Vector3[NormalList.Length];
94 for (
int i = 0; i < NormalList.Length; i++)
96 normals[i] =
new Vector3(NormalList[i].x, NormalList[i].y, -NormalList[i].z);
98 result.NormalList = normals;
100 int[] triangles =
new int[TriangleList.Length];
102 for (
int i = 0; i < TriangleList.Length; i += 3)
104 triangles[i] = TriangleList[i];
105 triangles[i + 1] = TriangleList[i + 2];
106 triangles[i + 2] = TriangleList[i + 1];
108 result.TriangleList = triangles;