Пример #1
0
        /// <inheritdoc/>
        internal override ShapeItem Load(string path, ReadableIdentifier identifier)
        {
            var lines       = File.ReadAllLines(path);
            var points      = new List <Point2Dmm>();
            var pointsScale = 100.0;

            foreach (var line in lines)
            {
                if (line.Trim() == "")
                {
                    continue;
                }

                var pointParts = line.Trim().Split('\t');
                var x          = double.Parse(pointParts[0]) * pointsScale;
                var y          = double.Parse(pointParts[1]) * pointsScale;

                var point = new Point2Dmm(-x, -y);
                points.Add(point);
            }

            var shape = new ShapeItem2D(identifier, points);

            shape.MetricWidth = pointsScale;
            return(shape);
        }
Пример #2
0
        /// <inheritdoc/>
        internal override ShapeItem Load(string path, ReadableIdentifier identifier)
        {
            var lines  = File.ReadAllLines(path);
            var points = new List <Point2Dmm>();

            foreach (var line in lines)
            {
                var pointParts = sanitizeDatLine(line).Split(' ');
                if (pointParts.Length != 2)
                {
                    //invalid line
                    continue;
                }

                double x, y;
                if (!double.TryParse(pointParts[0], out x) || !double.TryParse(pointParts[1], out y))
                {
                    continue;
                }

                var point = new Point2Dmm(-x, -y);
                points.Add(point);
            }
            points.Add(points.First());
            var shape = new ShapeItem2D(identifier, points);

            shape.MetricWidth = 50;
            return(shape);
        }
Пример #3
0
        /// <inheritdoc/>
        internal override ShapeItem Load(string path, ReadableIdentifier identifier)
        {
            var points = LoadPoints(path);
            var shape  = new ShapeItem2D(identifier, points.FirstOrDefault());

            shape.MetricWidth = pointsScale;
            return(shape);
        }
Пример #4
0
        /// <inheritdoc/>
        internal override ShapeItem Load(string path, ReadableIdentifier identifier)
        {
            Message("Image processing, please wait.");
            var interpolator = new ImageInterpolator(path);
            var points       = interpolator.InterpolatePoints();

            points = ShapeFactory.Centered(points);
            HideMessage();

            var shape = new ShapeItem2D(identifier, points);

            shape.MetricWidth = 50;
            return(shape);
        }
Пример #5
0
        /// <inheritdoc/>
        internal override ShapeItem Load(string path, ReadableIdentifier identifier)
        {
            var lines      = File.ReadAllLines(path);
            var dimensions = new List <double>();

            foreach (var line in lines)
            {
                var parts = line.Split(' ');
                if (parts.Length == 0)
                {
                    continue;
                }

                var dimension = double.Parse(parts[0]);
                dimensions.Add(dimension);
            }

            var sliceThickness = dimensions[0];
            var sliceLength    = dimensions[1];
            var sliceCount     = (int)Math.Round(dimensions[2]);

            //TODO even counts are now not supported
            sliceCount = ((sliceCount + 1) / 2) * 2;

            var slicePoints = new List <Point2Dmm>();

            for (var i = 0; i < sliceCount; ++i)
            {
                var totalHeight = i * sliceThickness;
                if (i % 2 == 0)
                {
                    slicePoints.Add(new Point2Dmm(0, totalHeight));
                    slicePoints.Add(new Point2Dmm(sliceLength, totalHeight));
                }
                else
                {
                    slicePoints.Add(new Point2Dmm(sliceLength, totalHeight));
                    slicePoints.Add(new Point2Dmm(0, totalHeight));
                }
            }

            //this we can do only for odd slice counts
            slicePoints.Add(new Point2Dmm(0, 0));
            slicePoints.Reverse();

            var item = new ShapeItem2D(identifier, slicePoints);

            item.SetOriginalSize();
            return(item);
        }