void addLineToMesh(Mesh mesh, float3 from, float3 to, Color color) { vertexInfo[] lineVerts = new vertexInfo[] { new vertexInfo(from, color), new vertexInfo(to, color) }; int numberOfPoints = vertices.Count; int[] indicesForLines = new int[] { 0 + numberOfPoints, 1 + numberOfPoints }; vertices.AddRange(lineVerts); indices.AddRange(indicesForLines); }
private void Awake() { //Fetch the Renderer from the GameObject rend = GetComponent <Renderer>(); //Set the main Color of the Material to white rend.material.color = Color.white; information = new vertexInfo { staticVertex = false }; numDynamicVertexCollided = 0; adjacentVertexNum = new HashSet <int>(); }
private void readElements(string file) { int countObject = 0; OBJObject pCurObject = new OBJObject(); string[] input = File.ReadAllLines(file); for (int i = 0; i < input.Length; i++) { string[] split = input[i].Split(new Char[] { ' ' }); switch (split[0]) { case "v": // Plain vertex //get and increment the current vertex Vector3 vertex = new Vector3(); // initialize the vertex values (important if not all values are in file) vertex.X = vertex.Y = vertex.Z = 0.0f; //fill the values with the data in the line vertex.X = System.Convert.ToSingle(split[1]); vertex.Y = System.Convert.ToSingle(split[2]); vertex.Z = System.Convert.ToSingle(split[3]); m_vertexPositionArray.Add(vertex); break; case "vt": // Texture vertex break; case "vn": // vertex normal break; case "g": // new group if (input[i].Length > 2) { pCurObject = m_objects[countObject++]; string[] sub = input[i].Split(new Char[] { ' ' }); m_name = sub[1]; } break; case "s": // new smoothing group break; case "f": // new face List <vertexInfo> verts = new List <vertexInfo>(); vertexInfo vert = new vertexInfo(); vert.vp = vert.vt = vert.vn = -1; if (split.Length < 4) { break; } for (int j = 1; j < split.Length; j++) { string[] v = split[j].Split(new Char[] { '/' }); if (v.Length > 1) { vert.vp = System.Convert.ToInt16(v[0]); vert.vt = System.Convert.ToInt16(v[1]); vert.vn = System.Convert.ToInt16(v[2]); verts.Add(vert); } else { vert.vp = System.Convert.ToInt16(split[1]); verts.Add(vert); vert.vp = System.Convert.ToInt16(split[2]); verts.Add(vert); vert.vp = System.Convert.ToInt16(split[3]); verts.Add(vert); } } OBJFace newFace = new OBJFace(); pCurObject.m_faces.Add(newFace); newFace.m_vertexIndex[0] = verts[0].vp; newFace.m_vertexIndex[1] = verts[1].vp; newFace.m_vertexIndex[2] = verts[2].vp; break; } } }