private static bool OnlyHasInfill(SliceVolumeStorage layerData, int layerToCheck) { return(layerData.layers[layerToCheck].parts.Count == 1 && layerData.layers[layerToCheck].parts[0].SolidBottomOutlines.Count == 0 && layerData.layers[layerToCheck].parts[0].SolidTopOutlines.Count == 0 && layerData.layers[layerToCheck].parts[0].SolidInfillOutlines.Count == 0 && layerData.layers[layerToCheck].parts[0].InfillOutlines.Count == 1); }
private static void GenerateLayers(SliceVolumeStorage layerData, int extrusionWidth, int bottomLayers, int topLayers) { int numLayers = layerData.layers.Count; for (int i = 0; i < numLayers; i++) { TopsAndBottoms.GenerateTopAndBottom(i, layerData, extrusionWidth, bottomLayers, topLayers); } }
private static void GenerateLayers(SliceVolumeStorage layerData, int extrusionWidth, int bottomLayers, int topLayers) { int numLayers = layerData.layers.Count; ConfigSettings config = new ConfigSettings { numberOfBottomLayers = bottomLayers, numberOfTopLayers = topLayers }; for (int i = 0; i < numLayers; i++) { TopsAndBottoms.GenerateTopAndBottom(i, layerData, extrusionWidth, config); } }
private static SliceVolumeStorage CreateLayerData(Polygons inset0Outline, int numLayers) { SliceVolumeStorage layerData = new SliceVolumeStorage(); layerData.layers = new List <SliceLayer>(); for (int i = 0; i < numLayers; i++) { SliceLayer layer = new SliceLayer(); layer.parts = new List <SliceLayerPart>(); SliceLayerPart part = new SliceLayerPart(); part.Insets = new List <Polygons>(); part.Insets.Add(inset0Outline); part.BoundingBox = new Aabb(inset0Outline); layer.parts.Add(part); layerData.layers.Add(layer); } return(layerData); }
public void CorrectNumberOfTops() { // 3 top layers and no bottom layers { // A simple cube that should have enough bottom layers string inset0OutlineString = "x:0, y:0,x:10000, y:0,x:10000, y:10000,x:0, y:10000,|"; Polygons inset0Outline = PolygonsHelper.CreateFromString(inset0OutlineString); int numLayers = 10; SliceVolumeStorage layerData = CreateLayerData(inset0Outline, numLayers); GenerateLayers(layerData, 400, 0, 3); Assert.IsTrue(OnlyHasTop(layerData, 9)); Assert.IsTrue(OnlyHasSolidInfill(layerData, 8)); Assert.IsTrue(OnlyHasSolidInfill(layerData, 7)); Assert.IsTrue(OnlyHasInfill(layerData, 6)); } // 3 top layers and 1 bottom layer { string inset0OutlineString = "x:0, y:0,x:10000, y:0,x:10000, y:10000,x:0, y:10000,|"; Polygons inset0Outline = PolygonsHelper.CreateFromString(inset0OutlineString); int numLayers = 10; SliceVolumeStorage layerData = CreateLayerData(inset0Outline, numLayers); GenerateLayers(layerData, 400, 3, 1); Assert.IsTrue(OnlyHasBottom(layerData, 0)); Assert.IsTrue(OnlyHasSolidInfill(layerData, 1)); Assert.IsTrue(OnlyHasSolidInfill(layerData, 2)); Assert.IsTrue(OnlyHasInfill(layerData, 3)); } // 3 top layers and 3 bottom layers { string inset0OutlineString = "x:0, y:0,x:10000, y:0,x:10000, y:10000,x:0, y:10000,|"; Polygons inset0Outline = PolygonsHelper.CreateFromString(inset0OutlineString); int numLayers = 10; SliceVolumeStorage layerData = CreateLayerData(inset0Outline, numLayers); GenerateLayers(layerData, 400, 3, 3); Assert.IsTrue(OnlyHasBottom(layerData, 0)); Assert.IsTrue(OnlyHasSolidInfill(layerData, 1)); Assert.IsTrue(OnlyHasSolidInfill(layerData, 2)); Assert.IsTrue(OnlyHasInfill(layerData, 3)); } }
private static bool OnlyHasTop(SliceVolumeStorage layerData, int layerToCheck) { return layerData.layers[layerToCheck].parts.Count == 1 && layerData.layers[layerToCheck].parts[0].SolidBottomOutlines.Count == 0 && layerData.layers[layerToCheck].parts[0].SolidTopOutlines.Count == 1 && layerData.layers[layerToCheck].parts[0].SolidInfillOutlines.Count == 0 && layerData.layers[layerToCheck].parts[0].InfillOutlines.Count == 0; }
private static SliceVolumeStorage CreateLayerData(Polygons inset0Outline, int numLayers) { SliceVolumeStorage layerData = new SliceVolumeStorage(); layerData.layers = new List<SliceLayer>(); for (int i = 0; i < numLayers; i++) { SliceLayer layer = new SliceLayer(); layer.parts = new List<SliceLayerPart>(); SliceLayerPart part = new SliceLayerPart(); part.Insets = new List<Polygons>(); part.Insets.Add(inset0Outline); part.BoundingBox = new Aabb(inset0Outline); layer.parts.Add(part); layerData.layers.Add(layer); } return layerData; }
private static void GenerateLayers(SliceVolumeStorage layerData, int extrusionWidth, int bottomLayers, int topLayers) { int numLayers = layerData.layers.Count; ConfigSettings config = new ConfigSettings {numberOfBottomLayers = bottomLayers, numberOfTopLayers = topLayers}; for (int i = 0; i < numLayers; i++) { TopsAndBottoms.GenerateTopAndBottom(i, layerData, extrusionWidth, config); } }