public void When_CalculateCrossOfParallel_Expect_Zero() { Vect3 v1 = new Vect3(1, 2, 3); Vect3 v2 = new Vect3(2, 4, 6); Assert.AreEqual(Vect3.Cross(v1, v2), Vect3.Zero); }
public void When_CrossWithNormalPlane_Expect_StartVector() { Vect3 vect1 = new Vect3(1, 2, 3); Tuple <Vect3, Vect3> plane = vect1.GetNormalPlane(); Vect3 vect2 = Vect3.Cross(plane.Item1, plane.Item2); Assert.AreEqual(vect1.GetNormalized(), vect2.GetNormalized()); }
public void When_CalculateCrossOfTwoVectors_Expect_OrthogonalToBoth() { Vect3 v1 = new Vect3(1, 2, 3); Vect3 v2 = new Vect3(3, 2, 1); Vect3 v3 = new Vect3(-4, 8, -4); Assert.AreEqual(Vect3.Cross(v1, v2), v3); }
public void When_AddFaceIncorrectNrOfVertices_Expect_Exception_Helper() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Component comp = new Component(); int[] vertices = new int[2]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - new Vect3(5, 5, 1)); int a = comp.CreateFace(normal, vertices); }
public void When_AddComponent_Expect_Added() { Structure struc = new Structure(); Component comp = new Component(); int a = comp.CreateVertex(1, 2, 3); int b = comp.CreateVertex(2, 2, 2); int c = comp.CreateVertex(5, 1, 3); Vect3 normal = Vect3.Cross(new Vect3(1, 2, 3) - new Vect3(2, 2, 2), new Vect3(1, 2, 3) - new Vect3(5, 1, 3)); comp.CreateFace(normal, new int[] { a, b, c }); struc.addComponent(comp); Assert.AreEqual(struc.components.Count, 1); Assert.AreEqual(struc.components[0].faces.Count, 1); Assert.AreEqual(struc.components[0].vertices.Count, 3); }
public void When_GetVertexIndices_Expect_CorrectVertexIndices() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 8, 1); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); int faceIndex = comp.CreateFace(normal, vertices); CollectionAssert.AreEquivalent(comp.GetVertexIndicesFromFace(faceIndex), vertices); }
public void When_CreateFaceFromList_Expect_FaceAdded() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 2, 1); Component comp = new Component(); List <int> vertices = new List <int>(); vertices.Add(comp.AddVertex(vertex1)); vertices.Add(comp.AddVertex(vertex2)); vertices.Add(comp.AddVertex(vertex3)); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); int a = comp.CreateFace(normal, vertices); Assert.AreEqual(comp.faces.Count, 1); CollectionAssert.AreEquivalent(comp.GetFace(a).vertexIndices, vertices.ToArray()); }
public void When_CreateFaceFromArray_Expect_FaceAdded() { Vertex vertex1 = new Vertex(5, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(8, 2, 2); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); int a = comp.CreateFace(normal, vertices); Assert.AreEqual(comp.faces.Count, 1); CollectionAssert.AreEquivalent(comp.GetFace(a).vertexIndices, vertices); }
public void When_CreateFaceWithoutNormal_Expect_Normal() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 8, 1); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); int a = comp.CreateFace(normal, vertices); Assert.AreEqual(comp.GetFace(a).normal, normal); }
public void When_CreateFace_Expect_FaceAddedToVertices() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 8, 1); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(new Vect3(1, 2, 3) - new Vect3(2, 2, 2), new Vect3(1, 2, 3) - new Vect3(3, 8, 1)); int a = comp.CreateFace(normal, vertices); Assert.AreEqual(comp.GetFaceIndicesFromVertex(vertices[0])[0], a); Assert.AreEqual(comp.GetFaceIndicesFromVertex(vertices[1])[0], a); Assert.AreEqual(comp.GetFaceIndicesFromVertex(vertices[2])[0], a); }
public void When_AddFace_Expect_FaceAddedToVertices() { Vertex vertex1 = new Vertex(10, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 2, 1); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); Face f = new Face(normal, vertices); int a = comp.AddFace(f); Assert.AreEqual(comp.GetFaceIndicesFromVertex(vertices[0])[0], a); Assert.AreEqual(comp.GetFaceIndicesFromVertex(vertices[1])[0], a); Assert.AreEqual(comp.GetFaceIndicesFromVertex(vertices[2])[0], a); }
public void When_GetFace_Expect_CorrectFace() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 8, 1); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); Face face = new Face(normal, vertices); int faceIndex = comp.AddFace(face); Assert.AreEqual(comp.GetFace(faceIndex), face); }
public Component HelpFunctionForNeighbouringFaces() { Component comp = new Component(); Vertex vertex0 = new Vertex(1, 2, 3); Vertex vertex1 = new Vertex(8, 12, 3); Vertex vertex2 = new Vertex(1, 5, 1); Vertex vertex3 = new Vertex(4, 1, 3); Vertex vertex4 = new Vertex(10, 11, 7); Vertex vertex5 = new Vertex(8, 3, 5); Vertex vertex6 = new Vertex(9, 7, 8); Vertex vertex7 = new Vertex(5, 6, 2); Vertex vertex8 = new Vertex(3, 4, 11); comp.AddVertex(vertex0); comp.AddVertex(vertex1); comp.AddVertex(vertex2); comp.AddVertex(vertex3); comp.AddVertex(vertex4); comp.AddVertex(vertex5); comp.AddVertex(vertex6); comp.AddVertex(vertex7); comp.AddVertex(vertex8); Vect3 normal0 = Vect3.Cross(vertex0.coordinate - vertex1.coordinate, vertex0.coordinate - vertex2.coordinate); Vect3 normal1 = Vect3.Cross(vertex3.coordinate - vertex4.coordinate, vertex3.coordinate - vertex5.coordinate); Vect3 normal2 = Vect3.Cross(vertex4.coordinate - vertex5.coordinate, vertex4.coordinate - vertex8.coordinate); Vect3 normal3 = Vect3.Cross(vertex4.coordinate - vertex6.coordinate, vertex4.coordinate - vertex8.coordinate); Vect3 normal4 = Vect3.Cross(vertex6.coordinate - vertex7.coordinate, vertex6.coordinate - vertex8.coordinate); Vect3 normal5 = Vect3.Cross(vertex5.coordinate - vertex7.coordinate, vertex5.coordinate - vertex8.coordinate); int face0 = comp.CreateFace(normal0, new int[] { 0, 1, 2 }); int face1 = comp.CreateFace(normal1, new int[] { 3, 4, 5 }); int face2 = comp.CreateFace(normal2, new int[] { 4, 5, 8 }); int face3 = comp.CreateFace(normal3, new int[] { 4, 6, 8 }); int face4 = comp.CreateFace(normal4, new int[] { 6, 7, 8 }); int face5 = comp.CreateFace(normal5, new int[] { 5, 7, 8 }); return(comp); }
public void When_CreateDeepCopy_Expect_SeparateEqualInstance() { Vertex vertex1 = new Vertex(1, 2, 3); Vertex vertex2 = new Vertex(2, 2, 2); Vertex vertex3 = new Vertex(3, 8, 1); Component comp = new Component(); int[] vertices = new int[3]; vertices[0] = comp.AddVertex(vertex1); vertices[1] = comp.AddVertex(vertex2); vertices[2] = comp.AddVertex(vertex3); Vect3 normal = Vect3.Cross(vertex1.coordinate - vertex2.coordinate, vertex1.coordinate - vertex3.coordinate); Face face = new Face(normal, vertices); int faceIndex = comp.AddFace(face); Component compCopy = comp.DeepCopy(); for (int i = 0; i < comp.vertices.Count; i++) { Assert.AreEqual(comp.vertices[i], compCopy.vertices[i]); } for (int i = 0; i < comp.faces.Count; i++) { Assert.AreEqual(comp.faces[i], compCopy.faces[i]); } Assert.AreEqual(comp, compCopy); compCopy.vertices[0].coordinate.x = 99; Assert.AreNotEqual(comp, compCopy); }
public void When_CalculateCrossOfOrthogonal_Expect_Orthogonal() { Assert.AreEqual(Vect3.Cross(Vect3.Up, Vect3.Forward), Vect3.Right); }
public void When_CalculateCrossOfSelf_Expect_Zero() { Vect3 v1 = new Vect3(1, 2, 3); Assert.AreEqual(Vect3.Cross(v1, v1), Vect3.Zero); }