public WarpCorrectionPostSlicer()
 {
     this.HasInitializeMethod = false;
     this.HasPostSliceMethod  = true;
     this.HasMenuStripIcon    = false;
     this.HasStatusStripIcon  = false;
     this.PostSliceActionType = PluginTypes.PostSliceActionType.WarpCorrection;
 }
Beispiel #2
0
 public AdvancedPostSlicer()
 {
     this.HasInitializeMethod = false;
     this.HasPostSliceMethod  = true;
     this.HasMenuStripIcon    = false;
     this.HasStatusStripIcon  = false;
     this.PostSliceActionType = PluginTypes.PostSliceActionType.Bleeding | PluginTypes.PostSliceActionType.AntiAliasOffset;
 }
 public void PostSlice(Slices.Slice renderSlice, AtumPrinter selectedPrinter, PluginTypes.PostSliceActionType postSliceActions)
 {
     ////apply warp correction to polynode
     //if (renderSlice.ModelPolyTrees.Length > 0 && renderSlice.ModelPolyTrees[0].Count > 0)
     //{
     //    foreach (var modelPolynode in renderSlice.ModelPolyTrees[0][0]._allPolys)
     //    {
     //        LensWarpCorrection.CalculateByContour(modelPolynode, selectedPrinter);
     //    }
     //}
 }
 public void PostSlice(byte[] pixelValues, int antiAliasColor, int materialSmoothingOffset, DAL.Print.PrintJob.AntiAliasType antiAliasSide, PluginTypes.PostSliceActionType postSliceAction, int printerResolutionX)
 {
 }
        public List <SlicePolyLine3D> PostSlice(STLModel3D stlModel, float sliceHeight, PluginTypes.PostSliceActionType postSliceAction)
        {
            switch (postSliceAction)
            {
            case PluginTypes.PostSliceActionType.WarpCorrection:
                return(Engines.RenderEngine.GetZIntersections(Engines.RenderEngine.GetZPolys(stlModel, stlModel.SliceIndexes, sliceHeight), sliceHeight));
            }

            return(new List <SlicePolyLine3D>());
        }
Beispiel #6
0
        public void PostSlice(byte[] pixelValues, int antiAliasColor, int materialSmoothingOffset, DAL.Print.PrintJob.AntiAliasType antiAliasSide, PluginTypes.PostSliceActionType postSliceAction, int printerResolutionX)
        {
            var pixelLength = pixelValues.Length;

            switch (postSliceAction)
            {
            case PluginTypes.PostSliceActionType.AntiAliasOffset:
                var antiAliasFactor = antiAliasColor;
                var antiAliasType   = antiAliasSide;
                var smoothingOffset = materialSmoothingOffset;

                if (antiAliasType != DAL.Print.PrintJob.AntiAliasType.None && antiAliasFactor > 1 && antiAliasFactor <= 255 && smoothingOffset > 0)
                {
                    for (var pixelIndex = 0; pixelIndex < pixelLength; pixelIndex += 3)
                    {
                        var currentPixelWhite = pixelValues[pixelIndex] == 255 && pixelValues[pixelIndex + 1] == 255 && pixelValues[pixelIndex + 2] == 255;
                        if (currentPixelWhite)
                        {
                            DrawSmoothing(pixelValues, pixelIndex, pixelLength, currentPixelWhite, printerResolutionX, antiAliasFactor, antiAliasType, smoothingOffset);

                            if (smoothingOffset == 2)
                            {
                                //above
                                var rowAbovePixelIndex = pixelIndex - (printerResolutionX * 3);
                                if (rowAbovePixelIndex > 0)
                                {
                                    DrawSmoothing(pixelValues, rowAbovePixelIndex, pixelLength, currentPixelWhite, printerResolutionX, antiAliasFactor, antiAliasType, smoothingOffset);
                                }

                                //below
                                var rowBelowPixelIndex = pixelIndex + (printerResolutionX * 3);
                                if (rowBelowPixelIndex > 0)
                                {
                                    DrawSmoothing(pixelValues, rowBelowPixelIndex, pixelLength, currentPixelWhite, printerResolutionX, antiAliasFactor, antiAliasType, smoothingOffset);
                                }

                                //left
                                var pixelLeft = pixelIndex - 3;
                                if (pixelLeft > 0)
                                {
                                    DrawSmoothing(pixelValues, pixelLeft, pixelLength, currentPixelWhite, printerResolutionX, antiAliasFactor, antiAliasType, smoothingOffset);
                                }

                                //Right
                                var pixelRight = pixelIndex + 3;
                                if (pixelRight < pixelLength)
                                {
                                    DrawSmoothing(pixelValues, pixelRight, pixelLength, currentPixelWhite, printerResolutionX, antiAliasFactor, antiAliasType, smoothingOffset);
                                }
                            }
                        }
                    }
                }

                break;
            }
        }
Beispiel #7
0
 public void PostSlice(Slices.Slice renderSlice, DAL.Hardware.AtumPrinter selectedPrinter, PluginTypes.PostSliceActionType postSliceActions)
 {
 }