public void TestPyramid() { Vector3 v0 = v(-15.1, 11, 0); Vector3 v1 = v(20, 11, 0); Vector3 v2 = v(20, -20, 0); Vector3 v3 = v(-15,-20,-5.3e-14); Vector3 v4 = v(20, -0.8, 23); ColoredTriangleSoup expected = new ColoredTriangleSoup(); expected.Add(t(v0, v1, v2)); expected.Add(t(v1, v2, v4)); expected.Add(t(v2, v3, v4)); expected.Add(t(v0, v1, v4)); expected.Add(t(v0, v3, v4)); expected.Add(t(v0, v2, v3)); expected.Add(t(v0, v2, v4)); ColoredTriangleSoup result = PlyLoader.FromString(pyramid); Assert.AreEqual(expected, result); /* 3 0 1 2 3 1 2 4 3 2 3 4 3 0 1 4 3 0 3 4 3 0 2 3 3 0 2 4 */ }
private static ColoredTriangleSoup ComputeSoup(string data, int numVertices, int numFaces) { string[] lines = data.Trim().Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); List<string> filteredList = new List<string>(); foreach (string line in lines) if (line.Trim() != "") filteredList.Add(line.Trim()); // Find vector3's first Vector3[] vs = new Vector3[numVertices]; for (int v = 0; v < vs.Length; v++) vs[v] = ParseVector3(filteredList[v]); ColoredTriangleSoup soup = new ColoredTriangleSoup(); for (int f = 0; f < numFaces; f++) { int i, j, k; FindFaceIndices(filteredList[f+numVertices], out i, out j, out k); ColoredTriangle tri = new ColoredTriangle(Color.White, new Triangle(vs[i], vs[j], vs[k])); soup.Add(tri); } return soup; }
private static void AddUnitRight(ColoredTriangleSoup soup) { soup.Add(new ColoredTriangle( Color.White, new Triangle(v(1, 0, 0), v(1, 1, 0), v(1, 1, 1)))); soup.Add(new ColoredTriangle( Color.White, new Triangle(v(1, 0, 0), v(1, 1, 1), v(1, 0, 1)))); }
private static void AddUnitCube(ColoredTriangleSoup soup) { AddUnitBottom(soup); AddUnitTop(soup); AddUnitLeft(soup); AddUnitRight(soup); AddUnitFront(soup); AddUnitBack(soup); }
public static void DrawSoup(ColoredTriangleSoup soup) { GL.Begin(BeginMode.Triangles); foreach (ColoredTriangle tri in soup) { GL.Color3(tri.Color); GL.Normal3(tri.Triangle.Normal); GL.Vertex3(tri.Triangle.P1); GL.Vertex3(tri.Triangle.P2); GL.Vertex3(tri.Triangle.P3); } GL.End(); }
public void Enumeration() { ColoredTriangle t1 = new ColoredTriangle(Color.Black, TriangleFixture.ConstructTriangle()); ColoredTriangle t2 = new ColoredTriangle(Color.White, TriangleFixture.ConstructTriangle()); ColoredTriangleSoup soup = new ColoredTriangleSoup(); soup.Add(t1); soup.Add(t2); List<ColoredTriangle> expected = new List<ColoredTriangle>(); expected.Add(t1); expected.Add(t2); List<ColoredTriangle> result = new List<ColoredTriangle>(); foreach (ColoredTriangle tri in soup) result.Add(tri); CollectionAssert.AreEqual(expected, result); }
public static ColoredTriangleSoup Generate(Color color, float side) { ColoredTriangleSoup soup = new ColoredTriangleSoup(); AddUnitCube(soup); soup.Map(delegate(ColoredTriangle triangle) { ColoredTriangle newTri = ScaleTriangle(triangle, side); return new ColoredTriangle(color, newTri.Triangle); }); //for (int i = 0; i < 16; i++) //{ // ColoredTriangle tri = soup[i]; // ColoredTriangle scaledTri = ScaleTriangle(tri, side); // soup[i] = scaledTri; //} return soup; }
public void Test1() { ColoredTriangleSoup soup = PlyLoader.FromString( @"ply element vertex 3 element face 1 end_header 0 0 0 1 1 1 2 2 2 3 0 1 2 "); ColoredTriangleSoup expected = new ColoredTriangleSoup(); expected.Add(new ColoredTriangle(Color.White, new Triangle( v(0, 0, 0), v(1, 1, 1), v(2, 2, 2)))); Assert.AreEqual(expected, soup); }
public void Map() { ColoredTriangle t1 = new ColoredTriangle(Color.Black, TriangleFixture.ConstructTriangle()); ColoredTriangle t2 = new ColoredTriangle(Color.White, TriangleFixture.ConstructTriangle()); ColoredTriangleSoup soup = new ColoredTriangleSoup(); soup.Add(t1); soup.Add(t2); soup.Map(delegate(ColoredTriangle triangle) { return new ColoredTriangle(Color.Yellow, triangle.Triangle); }); List<ColoredTriangle> expected = new List<ColoredTriangle>(); ColoredTriangle t1b = new ColoredTriangle(Color.Yellow, TriangleFixture.ConstructTriangle()); ColoredTriangle t2b = new ColoredTriangle(Color.Yellow, TriangleFixture.ConstructTriangle()); expected.Add(t1b); expected.Add(t2b); List<ColoredTriangle> result = new List<ColoredTriangle>(); foreach (ColoredTriangle tri in soup) result.Add(tri); CollectionAssert.AreEqual(expected, result); }
public void Init() { cts = ConstructSoup(); }
public static ColoredTriangleSoup ConstructSoup() { ColoredTriangleSoup soup = new ColoredTriangleSoup(); soup.Add(ColoredTriangleFixture.ConstructColoredTriangle()); return soup; }
private void DrawSoup(ColoredTriangleSoup soup) { GLUtil.DrawSoup(soup); }