<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/6b202f1d9a6d7e7cd51826be93e1ba9ab5c70d3e">https://github.com/macports/macports-ports/commit/6b202f1d9a6d7e7cd51826be93e1ba9ab5c70d3e</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 6b202f1  freecad: fix Catalina build failure
</span>6b202f1 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 6b202f1d9a6d7e7cd51826be93e1ba9ab5c70d3e
</span>Author: Marius Schamschula <mps@macports.org>
AuthorDate: Wed Apr 22 15:47:45 2020 -0500

<span style='display:block; white-space:pre;color:#404040;'>    freecad: fix Catalina build failure
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/60375
</span><span style='display:block; white-space:pre;color:#404040;'>    add graphviz build dependency with revision bump
</span>---
 cad/freecad/Portfile                               |  14 +-
 ...atch-src-Mod-Drawing-App-DrawingExport.cpp.diff | 280 +++++++++++++++++++++
 .../files/patch-src-Mod-Part-App-Geometry.cpp.diff | 165 ++++++++++++
 .../patch-src-Mod-Part-App-Geometry2d.cpp.diff     | 101 ++++++++
 ...tch-src-Mod-Part-App-PropertyTopoShape.cpp.diff |  17 ++
 ...src-Mod-Raytracing-App-AppRaytracingPy.cpp.diff |  38 +++
 ...atch-src-Mod-Raytracing-App-LuxFeature.cpp.diff |  41 +++
 ...atch-src-Mod-Raytracing-App-RayFeature.cpp.diff |  30 +++
 8 files changed, 684 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/Portfile b/cad/freecad/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 1dc9924..8134561 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/cad/freecad/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,7 +7,7 @@ PortGroup               github 1.0
</span> PortGroup               qt4 1.0
 
 github.setup            FreeCAD FreeCAD 0.18.4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                1
</span> name                    freecad
 categories              cad
 platforms               darwin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,7 +31,8 @@ checksums               rmd160  2fdb6bb247571e2ffaffaca1defb02ca0b2e1cc5 \
</span>                         sha256  d2f10f861cbcc9d19b34f79cd1c96baca2f23174f232e834f64a7c4a74f5f1e7 \
                         size    219760632
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build-append    port:doxygen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append    port:doxygen \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:graphviz
</span> 
 depends_lib-append      port:boost \
                         port:Coin-framework \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,6 +61,15 @@ patchfiles-append       patch-CMakeLists.txt.diff
</span> 
 patchfiles-append       FindPySideTools.cmake.patch
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# see: https://trac.macports.org/ticket/60375
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append       patch-src-Mod-Drawing-App-DrawingExport.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-src-Mod-Part-App-Geometry.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-src-Mod-Part-App-Geometry2d.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-src-Mod-Part-App-PropertyTopoShape.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-src-Mod-Raytracing-App-AppRaytracingPy.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-src-Mod-Raytracing-App-LuxFeature.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-src-Mod-Raytracing-App-RayFeature.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
     reinplace "s|QLibraryInfo::location.*|QLatin1String\(\"${applications_dir}/Qt4/\"\);|" \
         ${worksrcpath}/src/Gui/Assistant.cpp
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Drawing-App-DrawingExport.cpp.diff b/cad/freecad/files/patch-src-Mod-Drawing-App-DrawingExport.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2ee5a0b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Drawing-App-DrawingExport.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,280 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Drawing/App/DrawingExport.cpp.orig     2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Drawing/App/DrawingExport.cpp  2020-04-22 13:44:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -434,7 +434,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             out << c << " " << nodes(i).X() << " " << nodes(i).Y()<< " " ; 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             c = 'L';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "\" />" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "\" />" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (c.GetType() == GeomAbs_Line) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         //BRep_Tool::Polygon3D assumes the edge has polygon representation - ie already been "tessellated"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         //this is not true for all edges, especially "floating edges"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -447,7 +447,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         out << c << " " << s.X() << " " << s.Y()<< " " ; 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         c = 'L';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         out << c << " " << e.X() << " " << e.Y()<< " " ; 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "\" />" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "\" />" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -485,10 +485,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void DXFOutput::printHeader( std::ostream& out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out        << 0          << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "SECTION"  << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << 2          << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "ENTITIES" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out        << 0          << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "SECTION"  << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << 2          << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "ENTITIES" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void DXFOutput::printCircle(const BRepAdaptor_Curve& c, std::ostream& out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -512,22 +512,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (s.SquareDistance(e) < 0.001) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         //out << "<circle cx =\"" << p.X() << "\" cy =\"" 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             //<< p.Y() << "\" r =\"" << r << "\" />";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 0                      << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << "CIRCLE"             << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 8                      << endl;  // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << "sheet_layer"        << endl;  // Layer number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "AcDbEntity" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "AcDbCircle"   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 10                     << endl;  // Centre X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << p.X()          << endl;  // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 20                     << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << p.Y()          << endl;  // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 30                     << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 0              << endl;  // Z in WCS coordinates-leaving flat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << 40                     << endl;  //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      out << r              << endl;  // Radius
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 0                      << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << "CIRCLE"             << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 8                      << std::endl;     // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << "sheet_layer"        << std::endl;     // Layer number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "AcDbEntity" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "AcDbCircle"   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 10                     << std::endl;     // Centre X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << p.X()          << std::endl;     // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 20                     << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << p.Y()          << std::endl;     // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 30                     << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 0              << std::endl;     // Z in WCS coordinates-leaving flat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << 40                     << std::endl;     //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      out << r              << std::endl;     // Radius
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -555,28 +555,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           double temp = start_angle;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           start_angle = end_angle;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           end_angle = temp;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 0                  << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << "ARC"            << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 8                  << endl;  // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << "sheet_layer"    << endl;  // Layer number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbEntity" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbCircle" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 10                 << endl;  // Centre X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << p.X()              << endl;  // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 20                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << p.Y()              << endl;  // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 30                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 0          << endl;  // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 40                 << endl;  //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << r          << endl;  // Radius
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbArc" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 50                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << start_angle        << endl;  // Start angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 51                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << end_angle  << endl;  // End angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 0                  << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << "ARC"            << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 8                  << std::endl;     // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << "sheet_layer"    << std::endl;     // Layer number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbEntity" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbCircle" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 10                 << std::endl;     // Centre X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << p.X()              << std::endl;     // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 20                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << p.Y()              << std::endl;     // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 30                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 0          << std::endl;     // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 40                 << std::endl;     //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << r          << std::endl;     // Radius
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbArc" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 50                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << start_angle        << std::endl;     // Start angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 51                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << end_angle  << std::endl;     // End angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -628,32 +628,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           start_angle = end_angle;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           end_angle = temp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 0                  << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << "ELLIPSE"                << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 8                  << endl;  // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << "sheet_layer"    << endl;  // Layer number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbEntity" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbEllipse"   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 10                 << endl;  // Centre X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << p.X()              << endl;  // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 20                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << p.Y()              << endl;  // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 30                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 0          << endl;  // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 11                 << endl;  //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << major_x            << endl;  // Major X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 21                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << major_y            << endl;  // Major Y
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 31                 << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 0          << endl;  // Major Z
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 40                 << endl;  //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << ratio              << endl;  // Ratio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 41         << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << start_angle        << endl;  // Start angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << 42         << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  out << end_angle  << endl;  // End angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 0                  << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << "ELLIPSE"                << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 8                  << std::endl;     // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << "sheet_layer"    << std::endl;     // Layer number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbEntity" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbEllipse"   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 10                 << std::endl;     // Centre X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << p.X()              << std::endl;     // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 20                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << p.Y()              << std::endl;     // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 30                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 0          << std::endl;     // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 11                 << std::endl;     //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << major_x            << std::endl;     // Major X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 21                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << major_y            << std::endl;     // Major Y
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 31                 << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 0          << std::endl;     // Major Z
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 40                 << std::endl;     //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << ratio              << std::endl;     // Ratio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 41         << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << start_angle        << std::endl;     // Start angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << 42         << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  out << end_angle  << std::endl;     // End angle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void DXFOutput::printBSpline(const BRepAdaptor_Curve& c, int id, std::ostream& out) //Not even close yet- DF 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -692,31 +692,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         spline->Poles(poles);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        str << 0 << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "SPLINE" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << 8 << endl // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "sheet_layer" << endl // Layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "100"        << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "AcDbEntity" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "100"        << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "AcDbSpline"   << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << 70 << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << spline->IsRational()*4 << endl //flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << 71 << endl << spline->Degree() << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << 72 << endl << knotsequence.Length() << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << 73 << endl << poles.Length() << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << 74 << endl << 0 << endl; //fitpoints
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        str << 0 << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "SPLINE" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << 8 << std::endl // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "sheet_layer" << std::endl // Layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "100"        << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "AcDbEntity" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "100"        << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "AcDbSpline"   << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << 70 << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << spline->IsRational()*4 << std::endl //flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << 71 << std::endl << spline->Degree() << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << 72 << std::endl << knotsequence.Length() << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << 73 << std::endl << poles.Length() << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << 74 << std::endl << 0 << std::endl; //fitpoints
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for (int i = knotsequence.Lower() ; i <= knotsequence.Upper(); i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            str << 40 << endl << knotsequence(i) << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            str << 40 << std::endl << knotsequence(i) << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for (int i = poles.Lower(); i <= poles.Upper(); i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             gp_Pnt pole = poles(i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            str << 10 << endl << pole.X() << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                << 20 << endl << pole.Y() << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                << 30 << endl << pole.Z() << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            str << 10 << std::endl << pole.X() << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                << 20 << std::endl << pole.Y() << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                << 30 << std::endl << pole.Z() << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (spline->IsRational()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                str << 41 << endl << spline->Weight(i) << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                str << 41 << std::endl << spline->Weight(i) << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -740,24 +740,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gp_Vec VE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     c.D1(uEnd, PE, VE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "0"                    << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "LINE"         << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "8"                    << endl;  // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "sheet_layer" << endl; // Layer name 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbEntity" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "100"        << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "AcDbLine"   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "10"                   << endl;  // Start point of line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << PS.X()           << endl;  // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "20"                   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << PS.Y()           << endl;  // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "30"                   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "0"            << endl;  // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "11"                   << endl;  // End point of line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << PE.X()           << endl;  // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "21"                   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << PE.Y()           << endl;  // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "31"                   << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out << "0"            << endl;  // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "0"                    << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "LINE"         << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "8"                    << std::endl;     // Group code for layer name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "sheet_layer" << std::endl; // Layer name 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbEntity" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "100"        << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "AcDbLine"   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "10"                   << std::endl;     // Start point of line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << PS.X()           << std::endl;     // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "20"                   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << PS.Y()           << std::endl;     // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "30"                   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "0"            << std::endl;     // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "11"                   << std::endl;     // End point of line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << PE.X()           << std::endl;     // X in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "21"                   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << PE.Y()           << std::endl;     // Y in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "31"                   << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out << "0"            << std::endl;     // Z in WCS coordinates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Part-App-Geometry.cpp.diff b/cad/freecad/files/patch-src-Mod-Part-App-Geometry.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0b392ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Part-App-Geometry.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,165 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Part/App/Geometry.cpp.orig     2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Part/App/Geometry.cpp  2020-04-22 09:45:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -203,7 +203,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geometry::Save(Base::Writer &writer) const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char c = Construction?'1':'0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    writer.Stream() << writer.ind() << "<Construction value=\"" <<  c << "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    writer.Stream() << writer.ind() << "<Construction value=\"" <<  c << "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geometry::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -323,7 +323,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 << "X=\"" <<  Point.x <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" Y=\"" <<  Point.y <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" Z=\"" <<  Point.z <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomPoint::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -793,7 +793,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          << writer.ind()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              << "<BezierCurve "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 << "PolesCount=\"" <<  poles.size() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\">" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\">" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.incInd();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -808,11 +808,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             "\" Y=\"" << (*itp).y <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             "\" Z=\"" << (*itp).z <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             "\" Weight=\"" << (*itw) <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.decInd();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    writer.Stream() << writer.ind() << "</BezierCurve>" << endl ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    writer.Stream() << writer.ind() << "</BezierCurve>" << std::endl ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomBezierCurve::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1270,7 +1270,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  "\" KnotsCount=\"" <<  knots.size() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  "\" Degree=\"" <<  degree <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  "\" IsPeriodic=\"" <<  (int) isperiodic <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\">" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\">" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.incInd();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1285,7 +1285,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             "\" Y=\"" << (*itp).y <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             "\" Z=\"" << (*itp).z <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             "\" Weight=\"" << (*itw) <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     std::vector<double>::const_iterator itk;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1297,11 +1297,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "<Knot "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "Value=\"" << (*itk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "\" Mult=\"" << (*itm) <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.decInd();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    writer.Stream() << writer.ind() << "</BSplineCurve>" << endl ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    writer.Stream() << writer.ind() << "</BSplineCurve>" << std::endl ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomBSplineCurve::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1903,7 +1903,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" NormalZ=\"" <<  normal.Z() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" AngleXU=\"" <<  AngleXU <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" Radius=\"" <<  this->myCurve->Radius() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomCircle::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2132,7 +2132,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" Radius=\"" <<  circle->Radius() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" StartAngle=\"" <<  this->myCurve->FirstParameter() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" EndAngle=\"" <<  this->myCurve->LastParameter() <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomArcOfCircle::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2383,7 +2383,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "MajorRadius=\"" <<  this->myCurve->MajorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "MinorRadius=\"" <<  this->myCurve->MinorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "AngleXU=\"" << AngleXU << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomEllipse::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2653,7 +2653,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "AngleXU=\"" << AngleXU << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "StartAngle=\"" <<  this->myCurve->FirstParameter() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "EndAngle=\"" <<  this->myCurve->LastParameter() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomArcOfEllipse::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2826,7 +2826,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "MajorRadius=\"" <<  this->myCurve->MajorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "MinorRadius=\"" <<  this->myCurve->MinorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "AngleXU=\"" << AngleXU << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomHyperbola::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3083,7 +3083,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "AngleXU=\"" << AngleXU << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "StartAngle=\"" <<  this->myCurve->FirstParameter() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "EndAngle=\"" <<  this->myCurve->LastParameter() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomArcOfHyperbola::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3236,7 +3236,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "NormalZ=\"" <<  normal.Z() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "Focal=\"" <<  this->myCurve->Focal() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "AngleXU=\"" << AngleXU << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomParabola::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3436,7 +3436,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "AngleXU=\"" << AngleXU << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "StartAngle=\"" <<  this->myCurve->FirstParameter() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             << "EndAngle=\"" <<  this->myCurve->LastParameter() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomArcOfParabola::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3581,7 +3581,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" DirX=\"" <<  Dir.x <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" DirY=\"" <<  Dir.y <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" DirZ=\"" <<  Dir.z <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomLine::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3722,7 +3722,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" EndX=\"" <<  End.x <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" EndY=\"" <<  End.y <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 "\" EndZ=\"" <<  End.z <<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             "\"/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             "\"/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void GeomLineSegment::Restore    (Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Part-App-Geometry2d.cpp.diff b/cad/freecad/files/patch-src-Mod-Part-App-Geometry2d.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..1a332bd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Part-App-Geometry2d.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,101 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Part/App/Geometry2d.cpp.orig   2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Part/App/Geometry2d.cpp        2020-04-22 09:16:36.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -183,7 +183,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "<Geom2dPoint "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "X=\"" << Point.x << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "Y=\"" << Point.y << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dPoint::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -875,7 +875,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SaveAxis(writer, axis);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "Radius=\"" << c.Radius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dCircle::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -990,7 +990,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SaveAxis(writer, axis, u, v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "Radius=\"" << c.Radius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dArcOfCircle::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1152,7 +1152,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MajorRadius=\"" << e.MajorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MinorRadius=\"" << e.MinorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dEllipse::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1329,7 +1329,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MajorRadius=\"" << e.MajorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MinorRadius=\"" << e.MinorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dArcOfEllipse::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1458,7 +1458,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MajorRadius=\"" <<  h.MajorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MinorRadius=\"" <<  h.MinorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dHyperbola::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1591,7 +1591,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MajorRadius=\"" <<  h.MajorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "MinorRadius=\"" <<  h.MinorRadius() << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dArcOfHyperbola::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1702,7 +1702,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SaveAxis(writer, axis);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "Focal=\"" << focal << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dParabola::Restore(Base::XMLReader& reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1815,7 +1815,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SaveAxis(writer, axis, u, v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     writer.Stream()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "Focal=\"" << focal << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dArcOfParabola::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1930,7 +1930,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "PosY=\"" << Pos.y << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "DirX=\"" << Dir.x << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "DirY=\"" << Dir.y << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dLine::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2064,7 +2064,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "StartY=\"" << Start.y << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "EndX=\"" << End.x << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         << "EndY=\"" << End.y << "\" "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        << "/>" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        << "/>" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Geom2dLineSegment::Restore(Base::XMLReader &reader)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Part-App-PropertyTopoShape.cpp.diff b/cad/freecad/files/patch-src-Mod-Part-App-PropertyTopoShape.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..dbb6c45
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Part-App-PropertyTopoShape.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Part/App/PropertyTopoShape.cpp.orig    2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Part/App/PropertyTopoShape.cpp 2020-04-22 08:26:29.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,11 +281,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static Standard_Boolean  BRepTools_Write(const TopoDS_Shape& Sh, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    const Standard_CString File)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ofstream os;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  std::ofstream os;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if OCC_VERSION_HEX >= 0x060800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  OSD_OpenStream(os, File, ios::out);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  OSD_OpenStream(os, File, std::ios::out);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  os.open(File, ios::out);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  os.open(File, std::ios::out);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!os.rdbuf()->is_open()) return Standard_False;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Raytracing-App-AppRaytracingPy.cpp.diff b/cad/freecad/files/patch-src-Mod-Raytracing-App-AppRaytracingPy.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..fbe3aad
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Raytracing-App-AppRaytracingPy.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,38 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Raytracing/App/AppRaytracingPy.cpp.orig        2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Raytracing/App/AppRaytracingPy.cpp     2020-04-22 10:16:13.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -105,13 +105,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         PovTools::writeShape(out,PartName,aShape,(float)0.1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // This must not be done in PovTools::writeShape!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "// instance to render" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "object {" << PartName << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "  texture {" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "      pigment {color rgb <"<<r<<","<<g<<","<<b<<">}" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "      finish {StdFinish } //definition on top of the project" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "  }" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            << "}" << endl   ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "// instance to render" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "object {" << PartName << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "  texture {" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "      pigment {color rgb <"<<r<<","<<g<<","<<b<<">}" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "      finish {StdFinish } //definition on top of the project" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "  }" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            << "}" << std::endl   ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return Py::String(out.str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Py::Object getPartAsLux(const Py::Tuple& args)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -128,10 +128,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // write a material entry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // This must not be done in PovTools::writeShape!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "MakeNamedMaterial \"FreeCADMaterial_" << PartName << "\"" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "    \"color Kd\" [" << r << " " << g << " " << b << "]" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "    \"float sigma\" [0.000000000000000]" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        out << "    \"string type\" [\"matte\"]" << endl << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "MakeNamedMaterial \"FreeCADMaterial_" << PartName << "\"" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "    \"color Kd\" [" << r << " " << g << " " << b << "]" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "    \"float sigma\" [0.000000000000000]" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        out << "    \"string type\" [\"matte\"]" << std::endl << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         LuxTools::writeShape(out,PartName,aShape,(float)0.1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return Py::String(out.str());
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Raytracing-App-LuxFeature.cpp.diff b/cad/freecad/files/patch-src-Mod-Raytracing-App-LuxFeature.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5f775af
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Raytracing-App-LuxFeature.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Raytracing/App/LuxFeature.cpp.orig     2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Raytracing/App/LuxFeature.cpp  2020-04-22 11:37:33.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,23 +88,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const App::Color& c = Color.getValue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     long t = Transparency.getValue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (t == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        result << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"float sigma\" [0.000000000000000]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"string type\" [\"matte\"]" << endl << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        result << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"float sigma\" [0.000000000000000]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"string type\" [\"matte\"]" << std::endl << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         float trans = t/100.0f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        result << "MakeNamedMaterial \"FreeCADMaterial_Base_" << Name << "\"" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"float sigma\" [0.000000000000000]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"string type\" [\"matte\"]" << endl << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "MakeNamedMaterial \"FreeCADMaterial_Null_" << Name << "\"" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"string type\" [\"null\"]" << endl << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"string namedmaterial1\" [\"FreeCADMaterial_Null_" << Name << "\"]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"string namedmaterial2\" [\"FreeCADMaterial_Base_" << Name << "\"]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"float amount\" [" << trans << "]" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               << "    \"string type\" [\"mix\"]" << endl << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        result << "MakeNamedMaterial \"FreeCADMaterial_Base_" << Name << "\"" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"float sigma\" [0.000000000000000]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"string type\" [\"matte\"]" << std::endl << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "MakeNamedMaterial \"FreeCADMaterial_Null_" << Name << "\"" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"string type\" [\"null\"]" << std::endl << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"string namedmaterial1\" [\"FreeCADMaterial_Null_" << Name << "\"]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"string namedmaterial2\" [\"FreeCADMaterial_Base_" << Name << "\"]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"float amount\" [" << trans << "]" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               << "    \"string type\" [\"mix\"]" << std::endl << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LuxTools::writeShape(result,Name.c_str(),shape);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/cad/freecad/files/patch-src-Mod-Raytracing-App-RayFeature.cpp.diff b/cad/freecad/files/patch-src-Mod-Raytracing-App-RayFeature.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..ec391f3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/cad/freecad/files/patch-src-Mod-Raytracing-App-RayFeature.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/Mod/Raytracing/App/RayFeature.cpp.orig     2019-10-22 11:53:35.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/Mod/Raytracing/App/RayFeature.cpp  2020-04-22 10:59:21.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,19 +81,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // This must not be done in PovTools::writeShape!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     long t = Transparency.getValue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const App::Color& c = Color.getValue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    result << "// instance to render" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           << "object {" << Name << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           << " texture {" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    result << "// instance to render" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           << "object {" << Name << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           << " texture {" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (t == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<">}" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<">}" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         float trans = t/100.0f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<"> transmit "<<trans<<"}" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<"> transmit "<<trans<<"}" << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    result << "      finish {StdFinish } //definition on top of the project" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           << "  }" << endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           << "}" << endl   ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    result << "      finish {StdFinish } //definition on top of the project" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           << "  }" << std::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           << "}" << std::endl   ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Apply the resulting fragment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Result.setValue(result.str().c_str());
</span></pre><pre style='margin:0'>

</pre>