Пример #1
0
    IEnumerator getProgressiveCrosshatches(SCBasePenPathGenerator generator)
    {
        SCPen pen = FindObjectOfType <SCPen>();

        addPenSubscribers(pen);

        int count = 0;

        foreach (PenDrawingPath penPath in generator.generate())
        {
            DebugPenPathToLineMesh(penPath);

            pen.makeMoves(penPath);
            if (showWithLineRenderers)
            {
                lineRenderPenPath(penPath);
            }

            if (++count % 500 == 0)
            {
                yield return(null);

                progressText.text = string.Format("{0}", count);
            }
        }
        progressText.text = string.Format("{0}", count);
        paintFromGCode();
        beFinished();
        painter.applyTexture();
    }
Пример #2
0
    void getCrosshatches(SCBasePenPathGenerator generator)
    {
        var   penIterator = generator.generate();
        SCPen pen         = FindObjectOfType <SCPen>();

        addPenSubscribers(pen);

        foreach (PenDrawingPath penPath in penIterator)
        {
            pen.makeMoves(penPath);
        }

        if (showWithLineRenderers)
        {
            foreach (PenDrawingPath penPath in penIterator)
            {
                lineRenderPenPath(penPath);
            }
        }

        paintFromGCode();
        beFinished();
        painter.applyTexture();
    }
Пример #3
0
    void CreateGenerator()
    {
        SVGViewBox viewBox = SCCSSParser.ParseViewBox(svgFullPath);
        CSSLookup  lookup  = SCCSSParser.Parse(svgFullPath);

        SvgParser.SvgPath plist = getSvgPath(svgFullPath);

        for (var it = plist; it != null; it = it.next)
        {
            lookup.updatePath(it);
        }

        SCSvgFileData _svgFileData = new SCSvgFileData()
        {
            isYAxisInverted = yAxisInverted
        };
        StripeFieldConfig stripeFieldConfig = FindObjectOfType <StripeFieldConfig>();
        StripedPathSet    stripedPathSet    = new StripedPathSet(plist, stripeFieldConfig, _svgFileData);

        //
        // Configure generator
        //
        if (generatorType == GeneratorType.Crosshatch)
        {
            var crosshatchGenerator = new SCCrosshatchGenerator(machineConfig, new HatchConfig(), _svgFileData, viewBox, _generatorConfig);
            crosshatchGenerator.UsePathSet(stripedPathSet);
            generator = crosshatchGenerator;
        }
        else if (generatorType == GeneratorType.Triangles)
        {
            var pixelTree = bitMapPointGenerator.getPixelTriTree();
            //if (ShouldMeshPixelTree)
            //    pixelTreeDebugDisplay.GetComponent<MeshFilter>().mesh = pixelTree.getMesh();

            var pointSetGenerator = new SCTriangleCrosshatchGenerator(
                machineConfig,
                _generatorConfig,
                pixelTree,
                bitMapPointGenerator);

            generator = pointSetGenerator;
        }
        else
        {
            SCTSPCrosshatchGenerator tspGenerator;
            if (useBitMapPointGenerator)
            {
                tspGenerator = new SCTSPCrosshatchGenerator(machineConfig, bitMapPointGenerator.inputImageBox, _generatorConfig);
                tspGenerator.SetTSPPointSets(bitMapPointGenerator.getPoints());

                tspGenerator.BaseFileName = Path.GetFileNameWithoutExtension(bitMapPointGenerator.bmapName);
            }
            else
            {
                List <Vector2f> points;
                tspGenerator = new SCTSPCrosshatchGenerator(machineConfig, viewBox, _generatorConfig);
                points       = stripedPathSet.AllPathsToPoints();
                tspGenerator.AddPoints(points);
            }

            generator = tspGenerator;
        }
    }