public void UnfoldAndLabelCurvedArcSweep() { Surface testsweep = UnfoldTestUtils.SetupArcCurveSweep(); var surfaces = new List <Surface>() { testsweep }; //handle tesselation here var pointtuples = Tesselation.Tessellate(surfaces, -1, 30); //convert triangles to surfaces List <Surface> trisurfaces = pointtuples.Select(x => Surface.ByPerimeterPoints(new List <Point>() { x[0], x[1], x[2] })).ToList(); Console.WriteLine(trisurfaces.Count); var unfoldObject = PlanarUnfolder.Unfold(trisurfaces); Console.WriteLine("generating tabs"); // generate tabs var tabDict = TabGeneration.GenerateTabSurfacesFromUnfold <EdgeLikeEntity, FaceLikeEntity>(unfoldObject); var justTabs = tabDict.Keys.SelectMany(x => tabDict[x]).ToList(); Console.WriteLine("tabs generated"); // next check the positions of the translated tab, UnfoldTestUtils.AssertTabsGoodFinalLocation <EdgeLikeEntity, FaceLikeEntity>(justTabs, unfoldObject); }
public void UnfoldCurvedArcSweep() { Surface testsweep = UnfoldTestUtils.SetupArcCurveSweep(); var surfaces = new List <Surface>() { testsweep }; //handle tesselation here var pointtuples = Tesselation.Tessellate(surfaces, -1, 30); //convert triangles to surfaces List <Surface> trisurfaces = pointtuples.Select(x => Surface.ByPerimeterPoints(new List <Point>() { x[0], x[1], x[2] })).ToList(); var unfoldsurfaces = PlanarUnfolder.Unfold(trisurfaces).UnfoldedSurfaceSet; UnfoldTestUtils.CheckAllUnfoldedFacesForCorrectUnfold(unfoldsurfaces); foreach (IDisposable item in trisurfaces) { item.Dispose(); } }
public void UnfoldOf2000TriSurface() { var surface = UnfoldTestUtils.SetupArcCurveSweep(); var surfaces = new List <Surface>() { surface }; //handle tesselation here var pointtuples = Tesselation.Tessellate(surfaces, -1, 512); //convert triangles to surfaces List <Surface> trisurfaces = pointtuples.Select(x => Surface.ByPerimeterPoints(new List <Point>() { x[0], x[1], x[2] })).ToList(); Assert.DoesNotThrow(() => PlanarUnfolder.Unfold(trisurfaces)); }
public void UnfoldAndLabelCurvedArcSweep() { Surface testsweep = UnfoldTestUtils.SetupArcCurveSweep(); var surfaces = new List <Surface>() { testsweep }; //handle tesselation here var pointtuples = Tesselation.Tessellate(surfaces, -1, 30); //convert triangles to surfaces List <Surface> trisurfaces = pointtuples.Select(x => Surface.ByPerimeterPoints(new List <Point>() { x[0], x[1], x[2] })).ToList(); Console.WriteLine(trisurfaces.Count); var unfoldObject = PlanarUnfolder.Unfold(trisurfaces); var unfoldsurfaces = unfoldObject.UnfoldedSurfaceSet; Console.WriteLine("generating labels"); // generate labels var labels = unfoldObject.StartingUnfoldableFaces.Select(x => new PlanarUnfolder.UnfoldableFaceLabel <EdgeLikeEntity, FaceLikeEntity>(x)).ToList(); UnfoldTestUtils.AssertLabelsGoodStartingLocationAndOrientation(labels); // next check the positions of the translated labels var transformedGeo = labels.Select(x => PlanarUnfolder.MapGeometryToUnfoldingByID(unfoldObject, x.AlignedLabelGeometry, x.ID)).ToList(); UnfoldTestUtils.AssertLabelsGoodFinalLocationAndOrientation(labels, transformedGeo, unfoldObject); }