Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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());
                }
            }
        }