You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.3 KiB
C#
109 lines
3.3 KiB
C#
/*******************************************************************************
|
|
* Author : Angus Johnson *
|
|
* Date : 16 September 2022 *
|
|
* Website : https://www.angusj.com *
|
|
* Copyright : Angus Johnson 2010-2022 *
|
|
* License : https://www.boost.org/LICENSE_1_0.txt *
|
|
*******************************************************************************/
|
|
|
|
using System.IO;
|
|
|
|
namespace Clipper2Lib
|
|
{
|
|
public static class SvgUtils
|
|
{
|
|
public static void AddCaption(SvgWriter svg, string caption, int x, int y)
|
|
{
|
|
svg.AddText(caption, x, y, 14);
|
|
}
|
|
|
|
public static void AddSubject(SvgWriter svg, Path64 path)
|
|
{
|
|
Paths64 paths = new Paths64();
|
|
paths.Add(path);
|
|
svg.AddClosedPaths(paths, 0x1800009C, 0xAAB3B3DA, 0.8);
|
|
}
|
|
public static void AddSubject(SvgWriter svg, PathD path)
|
|
{
|
|
PathsD paths = new PathsD();
|
|
paths.Add(path);
|
|
svg.AddClosedPaths(paths, 0x1800009C, 0xAAB3B3DA, 0.8);
|
|
}
|
|
|
|
public static void AddSubject(SvgWriter svg, Paths64 paths)
|
|
{
|
|
svg.AddClosedPaths(paths, 0x1800009C, 0xAAB3B3DA, 0.8);
|
|
}
|
|
public static void AddOpenSubject(SvgWriter svg, Paths64 paths)
|
|
{
|
|
svg.AddOpenPaths(paths, 0xAAB3B3DA, 0.8);
|
|
}
|
|
|
|
public static void AddSubject(SvgWriter svg, PathsD paths)
|
|
{
|
|
svg.AddClosedPaths(paths, 0x1800009C, 0xAAB3B3DA, 0.8);
|
|
}
|
|
|
|
public static void AddOpenSubject(SvgWriter svg, PathsD paths)
|
|
{
|
|
svg.AddOpenPaths(paths, 0xAAB3B3DA, 1.2);
|
|
}
|
|
|
|
public static void AddClip(SvgWriter svg, Path64 path)
|
|
{
|
|
Paths64 paths = new Paths64();
|
|
paths.Add(path);
|
|
svg.AddClosedPaths(paths, 0x129C0000, 0xCCFFA07A, 0.8);
|
|
}
|
|
|
|
public static void AddClip(SvgWriter svg, PathD path)
|
|
{
|
|
PathsD paths = new PathsD();
|
|
paths.Add(path);
|
|
svg.AddClosedPaths(paths, 0x129C0000, 0xCCFFA07A, 0.8);
|
|
}
|
|
|
|
public static void AddClip(SvgWriter svg, Paths64 paths)
|
|
{
|
|
svg.AddClosedPaths(paths, 0x129C0000, 0xCCFFA07A, 0.8);
|
|
}
|
|
|
|
public static void AddClip(SvgWriter svg, PathsD paths)
|
|
{
|
|
svg.AddClosedPaths(paths, 0x129C0000, 0xCCFFA07A, 0.8);
|
|
}
|
|
|
|
public static void AddSolution(SvgWriter svg, Paths64 paths,
|
|
bool show_coords, bool is_closed = true, bool is_joined = true)
|
|
{
|
|
svg.AddClosedPaths(paths, 0x4080ff9C, 0xFF003300, 1.5, show_coords);
|
|
}
|
|
|
|
public static void AddOpenSolution(SvgWriter svg, Paths64 paths, bool show_coords)
|
|
{
|
|
svg.AddOpenPaths(paths, 0xFF003300, 2.2, show_coords);
|
|
}
|
|
|
|
public static void AddSolution(SvgWriter svg, PathsD paths, bool show_coords)
|
|
{
|
|
svg.AddClosedPaths(paths, 0x4080ff9C, 0xFF003300, 1.5, show_coords);
|
|
}
|
|
|
|
public static void AddOpenSolution(SvgWriter svg, PathsD paths, bool show_coords)
|
|
{
|
|
svg.AddOpenPaths(paths, 0xFF003300, 2.2, show_coords);
|
|
}
|
|
|
|
public static void SaveToFile(SvgWriter svg,
|
|
string filename, FillRule fill_rule,
|
|
int max_width = 0, int max_height = 0, int margin = 0)
|
|
{
|
|
if (File.Exists(filename)) File.Delete(filename);
|
|
svg.FillRule = fill_rule;
|
|
svg.SaveToFile(filename, max_width, max_height, margin);
|
|
}
|
|
|
|
}
|
|
|
|
}
|