示例#1
0
        public void GetTileWithRtcCenterTest()
        {
            // arrange
            var instances = new List <Instance>();
            var instance  = new Instance();

            instance.Position = new Wkx.Point(1, 2);
            instance.Model    = "box.glb";
            instances.Add(instance);

            var instance1 = new Instance();

            instance1.Position = new Wkx.Point(10, 20);
            instance1.Model    = "box.glb";
            instances.Add(instance1);

            // act
            var tile = TileHandler.GetTile(instances, UseRtcCenter: true);
            var i3dm = I3dmReader.Read(new MemoryStream(tile.tile));

            // assert
            Assert.IsTrue(tile.isI3dm == true);
            Assert.IsTrue(tile.tile.Length > 0);
            Assert.IsTrue(i3dm.Positions.Count == 2);
            Assert.IsTrue(i3dm.Positions[0] == new Vector3(0, 0, 0));
            Assert.IsTrue(i3dm.Positions[1] == new Vector3(9, 18, 0));
            Assert.IsTrue(i3dm.RtcCenter == new Vector3(1, 2, 0));
        }
示例#2
0
        public void GetTileWithScaleNonUniformTest()
        {
            // arrange
            var scaleNonuniform = new double[3] {
                1, 2, 3
            };
            var instances = new List <Instance>();
            var instance  = new Instance();

            instance.Position        = new Wkx.Point(1, 2);
            instance.ScaleNonUniform = scaleNonuniform;
            instance.Model           = "box.glb";
            instances.Add(instance);

            // act
            var tile = TileHandler.GetTile(instances, UseScaleNonUniform: true);
            var i3dm = I3dmReader.Read(new MemoryStream(tile.tile));

            // assert
            Assert.IsTrue(tile.isI3dm == true);
            Assert.IsTrue(tile.tile.Length > 0);
            Assert.IsTrue(i3dm.Positions.Count == 1);
            Assert.IsTrue(i3dm.GlbData.Length > 0);
            Assert.IsTrue(i3dm.ScaleNonUniforms[0] == new Vector3((float)scaleNonuniform[0], (float)scaleNonuniform[1], (float)scaleNonuniform[2]));
        }
示例#3
0
        public void GetTile_TileDataIsEqual_RetrievesCorrectTile()
        {
            var tileHandler = new TileHandler(new GridHandler(new CameraHandler()));

            tileHandler.AddTile(new Point(0, 0), 3);

            var retrievedTile = tileHandler.GetTile(new Point(0, 0));

            Assert.AreEqual(3, retrievedTile.TextureId);
        }
示例#4
0
        public void GetCompositeTileTest()
        {
            // arrange
            var instances = new List <Instance>();
            var instance  = new Instance();

            instance.Position = new Wkx.Point(1, 2);
            instance.Scale    = 1;
            instance.Model    = "box.glb";
            instances.Add(instance);

            var instance2 = new Instance();

            instance2.Position = new Wkx.Point(3, 4);
            instance2.Scale    = 1;
            instance2.Model    = "box1.glb";
            instances.Add(instance2);

            var instance3 = new Instance();

            instance3.Position = new Wkx.Point(5, 6);
            instance3.Scale    = 1;
            instance3.Model    = "box1.glb";
            instances.Add(instance3);

            // act
            var tile = TileHandler.GetTile(instances, UseExternalModel: true);

            Assert.IsTrue(tile.isI3dm == false);
            var cmpt = CmptReader.Read(new MemoryStream(tile.tile));

            // assert
            Assert.IsTrue(cmpt.Tiles.Count == 2);
            var i3dm0 = I3dmReader.Read(new MemoryStream(cmpt.Tiles[0]));

            Assert.IsTrue(i3dm0.Positions.Count == 1);
            Assert.IsTrue(i3dm0.GlbUrl == "box.glb");
            Assert.IsTrue(i3dm0.Positions[0] == new Vector3(1, 2, 0));

            var i3dm1 = I3dmReader.Read(new MemoryStream(cmpt.Tiles[1]));

            Assert.IsTrue(i3dm1.Positions.Count == 2);
            Assert.IsTrue(i3dm1.GlbUrl == "box1.glb");
            Assert.IsTrue(i3dm1.Positions[0] == new Vector3(3, 4, 0));
            Assert.IsTrue(i3dm1.Positions[1] == new Vector3(5, 6, 0));
        }
示例#5
0
        /// <summary>
        /// Updates the data from the UI to the selected tile
        /// </summary>
        private void UpdateTileProperty()
        {
            Tile selectedTile = _tileHandler.GetTile(_gridHandler.SelectedTilePoint);

            if (selectedTile == null)
            {
                return;
            }

            TileProperty tileProp = _tileHandler.GetTileProperty(selectedTile.TextureId);

            if (tileProp == null)
            {
                return;
            }

            tileProp.CopyData(TileProperty);
        }
示例#6
0
        public void GetTileTest()
        {
            // arrange
            var instances = new List <Instance>();
            var instance  = new Instance();

            instance.Position = new Wkx.Point(1, 2);
            instance.Scale    = 1;
            instance.Model    = "box.glb";
            instances.Add(instance);

            // act
            var tile = TileHandler.GetTile(instances);
            var i3dm = I3dmReader.Read(new MemoryStream(tile.tile));

            // assert
            Assert.IsTrue(tile.isI3dm == true);
            Assert.IsTrue(tile.tile.Length > 0);
            Assert.IsTrue(i3dm.Positions.Count == 1);
            Assert.IsTrue(i3dm.Positions[0] == new System.Numerics.Vector3(1, 2, 0));
        }
示例#7
0
        public void GetTileWithExternalModelTest()
        {
            // arrange
            var instances = new List <Instance>();
            var instance  = new Instance();

            instance.Position = new Wkx.Point(1, 2);
            instance.Model    = "box.glb";
            instances.Add(instance);

            // act
            var tile = TileHandler.GetTile(instances, UseExternalModel: true);
            var i3dm = I3dmReader.Read(new MemoryStream(tile.tile));

            // assert
            Assert.IsTrue(tile.isI3dm == true);
            Assert.IsTrue(tile.tile.Length > 0);
            Assert.IsTrue(i3dm.Positions.Count == 1);
            Assert.IsTrue(i3dm.GlbUrl == "box.glb");
            Assert.IsTrue(i3dm.GlbData == null);
        }
示例#8
0
        public void GetTileWithTagsTest()
        {
            // arrange
            var instances = new List <Instance>();
            var instance  = new Instance();

            instance.Position = new Wkx.Point(1, 2);
            instance.Model    = "box.glb";
            var tags = JArray.Parse("[{'id':123},{'name': 'test'}]");

            instance.Tags = tags;
            instances.Add(instance);

            // act
            var tile = TileHandler.GetTile(instances);
            var i3dm = I3dmReader.Read(new MemoryStream(tile.tile));

            // assert
            Assert.IsTrue(tile.isI3dm == true);
            Assert.IsTrue(i3dm.Positions.Count == 1);
            Assert.IsTrue(i3dm.BatchTableJson == "{\"id\":[\"123\"],\"name\":[\"test\"]}  ");
        }