From ac0d1fd58eb1dbd754e3474eebe5c383bd634dde Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@uliege.be>
Date: Wed, 20 Oct 2021 08:41:01 +0200
Subject: [PATCH] Boundary of OCC shapes now include the orientation (like for
 the built-in modeler) - beware that these orientations are currently not
 understood :-)

---
 SlidingSurface3D/rfpm.geo | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/SlidingSurface3D/rfpm.geo b/SlidingSurface3D/rfpm.geo
index 28eb4eb..9d39e57 100644
--- a/SlidingSurface3D/rfpm.geo
+++ b/SlidingSurface3D/rfpm.geo
@@ -149,7 +149,7 @@ Function Cube2Face
   _bbox() = cube();
   _bbox(Modulo(FaceId + 3, 6)) = _bbox(FaceId);
   face() = {};
-  _surfaces() = Boundary{ Volume{ Volumes() }; };
+  _surfaces() = Abs(Boundary{ Volume{ Volumes() }; });
   For s In { 0:#_surfaces()-1 }
     NbIn = 0;
     _points() = PointsOf { Surface { _surfaces(s) } ; };
@@ -226,9 +226,9 @@ surfaces() += face();
 FaceId = 5; Call Cube2Face;
 surfaces() += face();
 
-lines() = Boundary { Surface{ SlidingSlave() }; };
+lines() = Abs(Boundary { Surface{ SlidingSlave() }; });
 For num In { 0:#surfaces()-1 }
-  lines() += Boundary { Surface{ surfaces(num) }; };
+  lines() += Abs(Boundary { Surface{ surfaces(num) }; });
 EndFor
 For num In { 0:#lines()-1 }
   points() = PointsOf { Line { lines(num) }; };
@@ -256,7 +256,7 @@ Transfinite Volume { 10 };
 
 // Identify 'SlidingSubmaster' Curve
 
-lines() = Boundary { Surface{ SlidingMaster() }; };
+lines() = Abs(Boundary { Surface{ SlidingMaster() }; });
 For l In { 0:#lines()-1 }
   points() = PointsOf { Line { lines(l) }; };
   If(#points() != 2)
@@ -272,7 +272,7 @@ EndFor
 
 // Identify 'SlidingSubslave' curve
 
-lines() = Boundary { Surface{ SlidingSlave() }; };
+lines() = Abs(Boundary { Surface{ SlidingSlave() }; });
 For l In { 0:#lines()-1 }
   points() = PointsOf { Line { lines(l) }; };
   If(#points() != 2)
@@ -309,14 +309,14 @@ For num In {0:#StatorPerMaster()-1}
     { StatorPerMaster(num) } Rotate { {0,0,1}, {0,0,0}, AnglePole };
 EndFor
 
-treeLines()  = CombinedBoundary { Physical Surface { 10 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 11 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 12 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 13 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 14 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 15 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 16 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 17 }; } ;
-treeLines() += CombinedBoundary { Physical Surface { 18 }; } ;
+treeLines()  = Abs(CombinedBoundary { Physical Surface { 10 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 11 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 12 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 13 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 14 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 15 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 16 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 17 }; }) ;
+treeLines() += Abs(CombinedBoundary { Physical Surface { 18 }; }) ;
 
 Physical Line("TreeLines", 22) = { treeLines() };
-- 
GitLab