/// <summary> /// Create a shapeupdateinfo message. /// </summary> /// <param name="changedShapes">Collection with changed shapes.</param> /// <param name="newShapes">Collection with new shapes.</param> /// <returns>The created message.</returns> public static ShapeUpdateInfo_ CreateShapeUpdateInfo_(ICollection <Shape_> changedShapes, ICollection <Shape_> newShapes) { if (changedShapes == null) { throw new ArgumentNullException("changedShapes"); } if (newShapes == null) { throw new ArgumentNullException("newShapes"); } if (changedShapes.Count == 0 && newShapes.Count == 0) { throw new Exception("Creating a shape update without any changed or new shapes."); } ShapeUpdateInfo_ result = new ShapeUpdateInfo_(); foreach (Shape_ shape in changedShapes) { result.changedShapes.Add(shape); } foreach (Shape_ shape in newShapes) { result.newShapes.Add(shape); } return(result); }
public static void CreateShapeUpdateInfo_() { List <Vector3> vert1 = new List <Vector3>(); List <Vector3> vert2 = new List <Vector3>(); List <Vector3> vert3 = new List <Vector3>(); List <Vector3> vert4 = new List <Vector3>(); vert1.Add(new Vector3(1, 1, 1)); vert1.Add(new Vector3(1, 2, 2)); vert1.Add(new Vector3(1, 3, 3)); vert2.Add(new Vector3(2, 1, 1)); vert2.Add(new Vector3(2, 2, 2)); vert2.Add(new Vector3(2, 3, 3)); vert3.Add(new Vector3(3, 1, 1)); vert3.Add(new Vector3(3, 2, 2)); vert3.Add(new Vector3(3, 3, 3)); vert4.Add(new Vector3(4, 1, 1)); vert4.Add(new Vector3(4, 2, 2)); vert4.Add(new Vector3(4, 3, 3)); List <UInt32> indices = new List <UInt32>(); indices.Add(0); indices.Add(1); indices.Add(2); Shape_ shape1 = UnityMessageBuilder.CreateShape_(1, vert1, indices); Shape_ shape2 = UnityMessageBuilder.CreateShape_(2, vert2, indices); Shape_ shape3 = UnityMessageBuilder.CreateShape_(3, vert3, indices); Shape_ shape4 = UnityMessageBuilder.CreateShape_(4, vert3, indices); List <Shape_> changedShapes = new List <Shape_>(); List <Shape_> newShapes = new List <Shape_>(); changedShapes.Add(shape1); changedShapes.Add(shape2); newShapes.Add(shape3); newShapes.Add(shape4); ShapeUpdateInfo_ result = MessageBuilder.CreateShapeUpdateInfo_(changedShapes, newShapes); Assert.AreEqual(changedShapes.Count, result.changedShapes.Count); Assert.AreEqual(newShapes.Count, result.newShapes.Count); for (int i = 0; i < changedShapes.Count; i++) { Assert.AreEqual(changedShapes[i].id, result.changedShapes[i].id); Assert.AreEqual(changedShapes[i].vertices.Count, result.changedShapes[i].vertices.Count); Assert.AreEqual(indices.Count, changedShapes[i].indices.Count); Assert.AreEqual(0, changedShapes[i].indices[0]); for (int j = 0; j < changedShapes[i].vertices.Count; j++) { Assert.AreEqual(changedShapes[i].vertices[j].ToUnityVector(), result.changedShapes[i].vertices[j].ToUnityVector()); } } for (int i = 0; i < newShapes.Count; i++) { Assert.AreEqual(newShapes[i].id, result.newShapes[i].id); Assert.AreEqual(newShapes[i].vertices.Count, result.newShapes[i].vertices.Count); Assert.AreEqual(indices.Count, newShapes[i].indices.Count); Assert.AreEqual(0, newShapes[i].indices[0]); for (int j = 0; j < newShapes[i].vertices.Count; j++) { Assert.AreEqual(newShapes[i].vertices[j].ToUnityVector(), result.newShapes[i].vertices[j].ToUnityVector()); } } }