diff options
author | jaseg <git@jaseg.de> | 2021-01-24 18:44:56 +0100 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2021-01-24 18:44:56 +0100 |
commit | f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead (patch) | |
tree | d7b110b65e93b87fc65472559ac74e7eb961bc7c /upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset | |
download | gerbolyze-f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead.tar.gz gerbolyze-f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead.tar.bz2 gerbolyze-f7b4cc602b9a646fbc66f3f17d6bb9c20efc3ead.zip |
Initial commit
Diffstat (limited to 'upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset')
8 files changed, 689 insertions, 0 deletions
diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/AddPath.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/AddPath.htm new file mode 100644 index 0000000..6aa26b8 --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/AddPath.htm @@ -0,0 +1,73 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>AddPath</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.AddPath</h1>
+
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>procedure</b> AddPath(<b>const</b> Path: TPath; JoinType: TJoinType; EndType: TEndType);</p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>void</b> AddPath(<b>const</b> Path& path, JoinType jointype, EndType endtype);</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public void</b> AddPath(Path path, JoinType jointype, EndType endtype);</p>
+<br>
+
+
+ <p class="Body"> Adds a <a href="../../../Types/Path.htm"><b>Path</b></a> to a ClipperOffset object in preparation for offsetting.<br><br> Any number of paths can be added, and each has its own <a href="../../../Types/JoinType.htm">JoinType</a> and <a href="../../../Types/EndType.htm">EndType</a>. All 'outer' Paths must have the same orientation, and any 'hole' paths must have reverse orientation. <em>Closed</em> paths must have at least 3 vertices. <em>Open</em> paths may have as few as one vertex. Open paths can only be offset with positive deltas.<br><br> </p>
+
+ <h2 id="Auto-SeeAlso">See Also</h2>
+ <p class="Body"><a href="../../../Types/EndType.htm">EndType</a>, <a href="../../../Types/JoinType.htm">JoinType</a>, <a href="../../../Types/Path.htm">Path</a></p>
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/AddPaths.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/AddPaths.htm new file mode 100644 index 0000000..b0fe3bc --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/AddPaths.htm @@ -0,0 +1,74 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>AddPaths</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.AddPaths</h1>
+
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>procedure</b> AddPaths(<b>const</b> Paths: TPaths; JoinType: TJoinType; EndType: TEndType);</p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>void</b> AddPaths(<b>const</b> Paths& paths, JoinType jointype, EndType endtype);</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public void</b> AddPaths(Paths paths, JoinType jointype, EndType endtype);</p>
+<br>
+
+
+ <p class="Body"> Adds <a href="../../../Types/Paths.htm"><b>Paths</b></a> to a ClipperOffset object in preparation for offsetting.<br><br> Any number of paths can be added, and each path has its own <a href="../../../Types/JoinType.htm">JoinType</a> and <a href="../../../Types/EndType.htm">EndType</a>. All 'outer' Paths must have the same orientation, and any 'hole' paths must have reverse orientation. <em>Closed</em> paths must have at least 3 vertices. <em>Open</em> paths may have as few as one vertex. Open paths can only be offset with positive deltas.<br><br> </p>
+
+
+ <h2 id="Auto-SeeAlso">See Also</h2>
+ <p class="Body"><a href="../../../Types/EndType.htm">EndType</a>, <a href="../../../Types/JoinType.htm">JoinType</a>, <a href="../../../Types/Paths.htm">Paths</a></p>
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Clear.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Clear.htm new file mode 100644 index 0000000..7df15a6 --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Clear.htm @@ -0,0 +1,72 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>Clear</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.Clear</h1>
+
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>procedure</b> Clear;</p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>void</b> Clear();</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public void</b> Clear();</p>
+<br>
+
+
+ <p class="Body"> This method clears all paths from the ClipperOffset object, allowing new paths to be assigned.<br><br> </p>
+
+
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Constructor.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Constructor.htm new file mode 100644 index 0000000..59eed6e --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Constructor.htm @@ -0,0 +1,74 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>Constructor</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.Constructor</h1>
+
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>constructor</b> Create(MiterLimit: Double = 2; RoundPrecision: Double = 0.25);</p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> ClipperOffset( double miterLimit = 2.0, double roundPrecision = 0.25);</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public</b> ClipperOffset( double miterLimit = 2.0, double roundPrecision = 0.25);</p>
+<br>
+
+
+ <p class="Body"> The ClipperOffset constructor takes 2 optional parameters: <a href="../Properties/MiterLimit.htm">MiterLimit</a> and <a href="../Properties/ArcTolerance.htm">ArcTolerance</a>. Thes two parameters corresponds to properties of the same name. MiterLimit is only relevant when JoinType is jtMiter, and ArcTolerance is only relevant when JoinType is jtRound or when EndType is etOpenRound.<br><br> </p>
+
+
+ <h2 id="Auto-SeeAlso">See Also</h2>
+ <p class="Body"><a href="../Properties/ArcTolerance.htm">ArcTolerance</a>, <a href="../Properties/MiterLimit.htm">MiterLimit</a></p>
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Execute.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Execute.htm new file mode 100644 index 0000000..5ac748d --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Methods/Execute.htm @@ -0,0 +1,111 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>Execute</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.Execute</h1>
+
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>procedure</b> Execute(<b>out</b> solution: TPaths; Delta: Double); <b>overload</b>;</p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>void</b> Execute(Paths& solution, double delta);</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public void</b> Execute(ref Paths solution, double delta);</p>
+<br>
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>procedure</b> Execute(<b>out</b> PolyTree: TPolyTree; Delta: Double); <b>overload</b>;</p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>void</b> Execute(PolyTree& polytree, double delta);</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public void</b> Execute(ref PolyTree polytree, double delta);</p>
+<br>
+
+
+ <p class="Body"> This method takes two parameters. The first is the structure that receives the result of the offset operation (either a PolyTree or a Paths structure). The second parameter is the amount to which the supplied paths will be offset. Negative delta values shrink polygons and positive delta expand them.<br><br> This method can be called multiple times, offsetting the same paths by different amounts (ie using different deltas).<br><br> <img src="../../../../../../Images/offset1.png" alt="" width="310" height="314" border="0" align="right">
+ <table cellspacing="0" cellpadding="0" border="0" align="left" style="margin: 0;" width="560px">
+
+ <tr>
+ <td class="White">
+
+ <pre class="brush: cpp;">
+#include "clipper.hpp"
+...
+using namespace ClipperLib;
+
+int main()
+{
+ Path subj;
+ Paths solution;
+ subj <<
+ IntPoint(348,257) << IntPoint(364,148) << IntPoint(362,148) <<
+ IntPoint(326,241) << IntPoint(295,219) << IntPoint(258,88) <<
+ IntPoint(440,129) << IntPoint(370,196) << IntPoint(372,275);
+ ClipperOffset co;
+ co.AddPath(subj, jtRound, etClosedPolygon);
+ co.Execute(solution, -7.0);
+
+ //draw solution ...
+ DrawPolygons(solution, 0x4000FF00, 0xFF009900);
+}
+ </pre>
+
+
+ </td>
+ </tr>
+
+ </table> <div style="clear:both"> </div> </p>
+
+
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Properties/ArcTolerance.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Properties/ArcTolerance.htm new file mode 100644 index 0000000..9cfc79c --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Properties/ArcTolerance.htm @@ -0,0 +1,74 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>ArcTolerance</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.ArcTolerance</h1>
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>property</b> ArcTolerance: double; <span class="Comment">//read and write</span></p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>double</b> ArcTolerance;</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public double</b> ArcTolerance {get; set;}</p>
+<br>
+
+ <p class="Body"> Firstly, this field/property is only relevant when JoinType = jtRound and/or EndType = etRound.<br><br> Since flattened paths can never perfectly represent arcs, this field/property specifies a maximum acceptable imprecision ('tolerance') when arcs are approximated in an offsetting operation. Smaller values will increase 'smoothness' up to a point though at a cost of performance and in creating more vertices to construct the arc.<br><br> The default ArcTolerance is 0.25 units. This means that the maximum distance the flattened path will deviate from the 'true' arc will be no more than 0.25 units (before rounding).<br><br> <span class="maroon">Reducing tolerances below 0.25 will <b>not</b> improve smoothness since vertex coordinates will still be rounded to integer values.</span> The only way to achieve sub-integer precision is through coordinate scaling before and after offsetting (see example below).<br><br> <span class="maroon">It's important to make ArcTolerance a sensible fraction of the offset delta (arc radius)</span>. Large tolerances relative to the offset delta will produce poor arc approximations but, just as importantly, very small tolerances will substantially slow offsetting performance while providing unnecessary degrees of precision. This is most likely to be an issue when offsetting polygons whose coordinates have been scaled to preserve floating point precision.<br><br> <b>Example:</b> Imagine a set of polygons (defined in floating point coordinates) that is to be offset by 10 units using <em>round</em> joins, and the solution is to retain floating point precision up to at least 6 decimal places.<br> To preserve this degree of floating point precision, and given that Clipper and ClipperOffset both operate on integer coordinates, the polygon coordinates will be scaled up by 10<sup>8
+ </sup> (and rounded to integers) prior to offsetting. Both offset delta and ArcTolerance will also need to be scaled by this same factor. <em>If ArcTolerance was left unscaled at the default 0.25 units, every arc in the solution would contain a fraction of 44 THOUSAND vertices</em> while the final arc imprecision would be 0.25 × 10<sup>-8
+ </sup> units (ie once scaling was reversed). However, if 0.1 units was an acceptable imprecision in the final <em>unscaled</em> solution, then ArcTolerance should be set to 0.1 × scaling_factor (0.1 × 10<sup>8
+ </sup>). Now if scaling is applied equally to both ArcTolerance and to Delta Offset, then in this example the number of vertices (steps) defining each arc would be a fraction of 23.<br><br> The <a href="../../../../../../offset_triginometry2.svg">formula</a> for the number of steps in a full circular arc is ... Pi / acos(1 - arc_tolerance / abs(delta)) </p>
+
+ <h2 id="Auto-SeeAlso">See Also</h2>
+ <p class="Body"><a href="../../../../../../offset_triginometry2.svg">offset_triginometry2</a></p>
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Properties/MiterLimit.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Properties/MiterLimit.htm new file mode 100644 index 0000000..3bdf826 --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/Properties/MiterLimit.htm @@ -0,0 +1,75 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>MiterLimit</title>
+
+ <link rel="stylesheet" href="../../../../../../Styles/default.css" type="text/css">
+
+
+ <script type="text/javascript" src="../../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../../_Body.htm" class="Banner"><img src="../../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../../../../../Images/_Class.gif" align="absmiddle">ClipperOffset</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset.MiterLimit</h1>
+
+
+ <p class="Decl"><span class="Comment">Del.»</span> <b>property</b> MiterLimit: double; <span class="Comment">//read and write</span></p>
+
+ <p class="Decl2"><span class="Comment"> C++ »</span> <b>double</b> MiterLimit;</p>
+
+ <p class="Decl3"><span class="Comment">C# »</span> <b>public double</b> MiterLimit {get; set;}</p>
+<br>
+
+
+ <p class="Body"> This property sets the maximum distance <em>in multiples of delta</em> that vertices can be offset from their original positions before squaring is applied. (Squaring truncates a miter by 'cutting it off' at 1 × delta distance from the original vertex.)<br><br> <b>The default value for MiterLimit is 2</b> (ie twice delta). This is also the smallest MiterLimit that's allowed. If mitering was unrestricted (ie without any squaring), then offsets at very acute angles would generate unacceptably long 'spikes'.<br><br> An example of an offsetting 'spike' at a narrow angle that's a consequence of using a large MiterLimit (25) ...<br> <img src="../../../../../../Images/miterlimit.png" alt="" border="0"> </p>
+
+
+
+ <h2 id="Auto-SeeAlso">See Also</h2>
+ <p class="Body"><a href="../../../Types/JoinType.htm">JoinType</a></p>
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/_Body.htm b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/_Body.htm new file mode 100644 index 0000000..337ed71 --- /dev/null +++ b/upstream/clipper-6.4.2/Documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/_Body.htm @@ -0,0 +1,136 @@ +<html>
+
+<head>
+
+ <script type="text/javascript" src="../../../../../Scripts/jquery.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../Scripts/SyntaxHighlighter/scripts/shCore.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js">
+ </script>
+
+ <script type="text/javascript" src="../../../../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js">
+ </script>
+
+ <link type="text/css" rel="stylesheet" href="../../../../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css">
+
+ <link type="text/css" rel="stylesheet" href="../../../../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css">
+
+
+ <title>ClipperOffset</title>
+
+ <link rel="stylesheet" href="../../../../../Styles/default.css" type="text/css">
+
+ <meta name="Ancestor" content="">
+
+
+ <script type="text/javascript" src="../../../../../Scripts/bootstrap.js">
+ </script>
+
+</head>
+
+<body bgcolor="#FFFFFF">
+
+ <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY -->
+
+ <!-- DO NOT EDIT MANUALLY !!! -->
+
+ <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0">
+ <tr>
+ <td class="Banner" nowrap=""><a href="../../../../_Body.htm" class="Banner"><img src="../../../../../Images/_Home.gif" align="absmiddle">Home</a>
+ </td>
+ <td class="Banner" nowrap=""><a href="../../_Body.htm" class="Banner"><img src="../../../../../Images/_Unit.gif" align="absmiddle">ClipperLib</a>
+ </td>
+ <td class="Banner" width="100%" align="right"><img src="../../../../../Images/_Project_Logo.gif" align="absmiddle">
+ </td>
+ </tr>
+ </table>
+ <h1>ClipperOffset</h1>
+<br>
+
+ <p class="Body">The ClipperOffset class encapsulates the process of offsetting (inflating/deflating) both open and closed paths using a number of different join types and end types.<br><br> <em>(This class replaces the now deprecated OffsetPaths function which was less flexible.)</em><br><br> <b>Preconditions for offsetting:</b><br> 1. The orientations of closed paths must be consistent such that outer polygons share the same orientation, and any holes have the opposite orientation (ie non-zero filling). Open paths must be oriented with closed outer polygons.<br> 2. Polygons must not self-intersect. <br><br> <b>Limitations:</b><br> When offsetting, small artefacts may appear where polygons overlap. To avoid these artefacts, offset overlapping polygons separately.<br><br><br> <img src="../../../../../Images/offset1.png" alt="" width="310" height="314" border="0" align="right">
+ <table cellspacing="0" cellpadding="0" border="0" align="left" style="margin: 0;" width="560px">
+
+ <tr>
+ <td class="White">
+
+ <pre class="brush: cpp;">
+#include "clipper.hpp"
+...
+using namespace ClipperLib;
+
+int main()
+{
+ Path subj;
+ Paths solution;
+ subj <<
+ IntPoint(348,257) << IntPoint(364,148) << IntPoint(362,148) <<
+ IntPoint(326,241) << IntPoint(295,219) << IntPoint(258,88) <<
+ IntPoint(440,129) << IntPoint(370,196) << IntPoint(372,275);
+ ClipperOffset co;
+ co.AddPath(subj, jtRound, etClosedPolygon);
+ co.Execute(solution, -7.0);
+
+ //draw solution ...
+ DrawPolygons(solution, 0x4000FF00, 0xFF009900);
+}
+ </pre>
+
+
+ </td>
+ </tr>
+
+ </table> <div style="clear:both"> </div> </p>
+
+ <h2 id="Auto-Reference">Reference</h2>
+ <table>
+ <tr><th>Methods
+ </th><th>Properties
+ </th>
+ </tr>
+ <tr>
+ <td colspan="2" class="White">In ClipperOffset:
+ </td>
+ </tr>
+ <tr>
+ <td><a href="Methods/AddPath.htm">AddPath</a>
+ </td>
+ <td><a href="Properties/ArcTolerance.htm">ArcTolerance</a>
+ </td>
+ </tr>
+ <tr>
+ <td><a href="Methods/AddPaths.htm">AddPaths</a>
+ </td>
+ <td><a href="Properties/MiterLimit.htm">MiterLimit</a>
+ </td>
+ </tr>
+ <tr>
+ <td><a href="Methods/Clear.htm">Clear</a>
+ </td>
+ <td>
+ </td>
+ </tr>
+ <tr>
+ <td><a href="Methods/Constructor.htm">Constructor</a>
+ </td>
+ <td>
+ </td>
+ </tr>
+ <tr>
+ <td><a href="Methods/Execute.htm">Execute</a>
+ </td>
+ <td>
+ </td>
+ </tr>
+ </table>
+
+ <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p>
+
+</body>
+
+</html>
\ No newline at end of file |