<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>