/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }