private void CheckTTMAttributes(VSS.TRex.Designs.TTM.TrimbleTINModel ttm1, VSS.TRex.Designs.TTM.Optimised.TrimbleTINModel ttm2) { ttm1.Triangles.Count.Should().Be(ttm2.Triangles.Items.Length); ttm1.Vertices.Count.Should().Be(ttm2.Vertices.Items.Length); ttm1.Edges.Count.Should().Be(ttm2.Edges.Items.Length); ttm1.StartPoints.Count.Should().Be(ttm2.StartPoints.Items.Length); }
public void Test_TINLoad() { VSS.TRex.Designs.TTM.TrimbleTINModel tin = new VSS.TRex.Designs.TTM.TrimbleTINModel(); // 165Mb TIN DateTime startTime = DateTime.Now; tin.LoadFromFile(@"C:\Users\rwilson\Downloads\5644616_oba9c0bd14_FRL.ttm"); DateTime endTime = DateTime.Now; Assert.True(false, $"Duration to load file containing {tin.Triangles.Count} triangles and {tin.Vertices.Count} vertices: {endTime - startTime}"); }
public void Test_TINLoad2() { VSS.TRex.Designs.TTM.Optimised.TrimbleTINModel readonly_tin = new VSS.TRex.Designs.TTM.Optimised.TrimbleTINModel(); // 165Mb TIN readonly_tin.LoadFromFile(@"C:\Users\rwilson\Downloads\5644616_oba9c0bd14_FRL.ttm"); VSS.TRex.Designs.TTM.TrimbleTINModel readwrite_tin = new VSS.TRex.Designs.TTM.TrimbleTINModel(); // 165Mb TIN readwrite_tin.LoadFromFile(@"C:\Users\rwilson\Downloads\5644616_oba9c0bd14_FRL.ttm"); // Check the numbers of vertices, triangles, edges and start points are the same Assert.True(readwrite_tin.Triangles.Count == readonly_tin.Triangles.Items.Length, $"Triangle counts do not match: {readwrite_tin.Triangles.Count} vs {readonly_tin.Triangles.Items.Length}"); Assert.True(readwrite_tin.Vertices.Count == readonly_tin.Vertices.Items.Length, $"Vertex counts do not match: {readwrite_tin.Vertices.Count} vs {readonly_tin.Vertices.Items.Length}"); Assert.True(readwrite_tin.Edges.Count == readonly_tin.Edges.Items.Length, $"Edge counts do not match: {readwrite_tin.Edges.Count} vs {readonly_tin.Edges.Items.Length}"); Assert.True(readwrite_tin.StartPoints.Count == readonly_tin.StartPoints.Items.Length, $"StartPoint counts do not match: {readwrite_tin.StartPoints.Count} vs {readonly_tin.StartPoints.Items.Length}"); // Check the contents of triangles is the same for (int i = 0; i < readwrite_tin.Triangles.Count; i++) { // Assert.True(readwrite_tin.Triangles[i].Tag == readonly_tin.Triangles.Items[i].Tag, $"Triangle TAGs vary at index {i}, {readwrite_tin.Triangles[i].Tag} vs {readonly_tin.Triangles.Items[i].Tag}"); Assert.True(readwrite_tin.Triangles[i].Vertices[0].Tag == readonly_tin.Triangles.Items[i].Vertex0 + 1, $"Triangle vertex 0 Tags vary at index {i}, {readwrite_tin.Triangles[i].Vertices[0].Tag} vs {readonly_tin.Triangles.Items[i].Vertex0 + 1}"); Assert.True(readwrite_tin.Triangles[i].Vertices[1].Tag == readonly_tin.Triangles.Items[i].Vertex1 + 1, $"Triangle vertex 1 Tags vary at index {i}, {readwrite_tin.Triangles[i].Vertices[1].Tag} vs {readonly_tin.Triangles.Items[i].Vertex1 + 1}"); Assert.True(readwrite_tin.Triangles[i].Vertices[2].Tag == readonly_tin.Triangles.Items[i].Vertex2 + 1, $"Triangle vertex 2 Tags vary at index {i}, {readwrite_tin.Triangles[i].Vertices[2].Tag} vs {readonly_tin.Triangles.Items[i].Vertex2 + 1}"); } // Check the contents of vertices are the same for (int i = 0; i < readwrite_tin.Vertices.Count; i++) { // Assert.True(readwrite_tin.Vertices[i].Tag == readonly_tin.Vertices.Items[i].Tag, $"Vertex TAGs vary at index {i}, {readwrite_tin.Vertices[i].Tag} vs {readonly_tin.Vertices.Items[i].Tag}"); Assert.True(readwrite_tin.Vertices[i].XYZ.Equals(readonly_tin.Vertices.Items[i]), $"Vertex location varies at index {i}, {readwrite_tin.Vertices[i].XYZ} vs {readonly_tin.Vertices.Items[i]}"); } // Check the contents of edges are the same for (int i = 0; i < readwrite_tin.Edges.Count; i++) { Assert.True(readwrite_tin.Edges[i].Tag == readonly_tin.Edges.Items[i] + 1, $"Edges TAGs vary at index {i}, {readwrite_tin.Edges[i].Tag} vs {readonly_tin.Edges.Items[i] + 1}"); } // Check the contents of start points are the same for (int i = 0; i < readwrite_tin.StartPoints.Count; i++) { Assert.True(readwrite_tin.StartPoints[i].Triangle.Tag == readonly_tin.StartPoints.Items[i].Triangle + 1, $"Startpoint TAGs vary at index {i}, {readwrite_tin.StartPoints[i].Triangle.Tag} vs {readonly_tin.StartPoints.Items[i].Triangle + 1}"); } }
public void Read_Empty() { var ttm = new VSS.TRex.Designs.TTM.TrimbleTINModel(); var fileName = Path.GetTempFileName() + ".ttm"; ttm.SaveToFile(fileName); byte[] bytes = File.ReadAllBytes(fileName); using (var br = new BinaryReader(new MemoryStream(bytes))) { var ttm2 = new TrimbleTINModel(); ttm2.Read(br, bytes); CheckTTMAttributes(ttm, ttm2); } File.Delete(fileName); }
public async Task Request_SingleTriangle_ZeroTolerance() { AddGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); // Create three cells in a triangle at (0, 0), (0, 1) & (1, 0) var cellPasses = new List <CellPass> { new CellPass { Time = DateTime.UtcNow, Height = 1.0f } }; DITAGFileAndSubGridRequestsFixture.AddSingleCellWithPasses (siteModel, SubGridTreeConsts.DefaultIndexOriginOffset, SubGridTreeConsts.DefaultIndexOriginOffset, cellPasses); DITAGFileAndSubGridRequestsFixture.AddSingleCellWithPasses (siteModel, SubGridTreeConsts.DefaultIndexOriginOffset, SubGridTreeConsts.DefaultIndexOriginOffset + 1, cellPasses); DITAGFileAndSubGridRequestsFixture.AddSingleCellWithPasses (siteModel, SubGridTreeConsts.DefaultIndexOriginOffset + 1, SubGridTreeConsts.DefaultIndexOriginOffset, cellPasses); DITAGFileAndSubGridRequestsFixture.AddSingleCellWithPasses (siteModel, SubGridTreeConsts.DefaultIndexOriginOffset + 1, SubGridTreeConsts.DefaultIndexOriginOffset + 1, cellPasses); DITAGFileAndSubGridRequestsFixture.ConvertSiteModelToImmutable(siteModel); var request = new TINSurfaceRequest(); var result = await request.ExecuteAsync(new TINSurfaceRequestArgument { ProjectID = siteModel.ID, Filters = new FilterSet(new CombinedFilter()), Tolerance = 0 }); result.Should().NotBeNull(); result.data.Should().NotBeNull(); var model = new VSS.TRex.Designs.TTM.TrimbleTINModel(); model.Read(new BinaryReader(new MemoryStream(result.data))); model.Vertices.Count.Should().Be(4); model.Triangles.Count.Should().Be(2); }