diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index d7396e839729ee88d434ce2fdaf0dc21ed64b7c6..905052aea7588cb21c795e13768fbf1c76122cb2 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -93,6 +93,9 @@ class GEdge : public GEntity {
   // Returns a type-specific additional information string
   virtual std::string getAdditionalInfoString();
 
+  // tells if the edge is a 3D edge (in opposition with a trimmed curve on a surface)
+  virtual bool is3D () const {return true;}
+
   struct {
     char   Method;
     double coeffTransfinite;
diff --git a/Geo/GEdgeLoop.cpp b/Geo/GEdgeLoop.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7c930cdcc7e4c4818e5c828a9246b01eb137c368
--- /dev/null
+++ b/Geo/GEdgeLoop.cpp
@@ -0,0 +1,113 @@
+#include "GEdgeLoop.h"
+#include "Message.h"
+
+void GEdgeSigned::print() const
+{
+  Msg(INFO,"GEdgeSigned : Edge %d sign %d Ordered Vertices %d,%d",ge->tag(),_sign,getBeginVertex()->tag(),getEndVertex()->tag());
+}
+
+int countInList ( std::list<GEdge*> &wire , GEdge *ge)
+{
+  std::list<GEdge*>::iterator it = wire.begin();
+  std::list<GEdge*>::iterator ite = wire.end();
+  int count = 0;
+  while (it != ite)
+    {
+      if (*it == ge) count++; 
+      ++it;
+    }
+  return count;
+}
+
+GEdgeSigned nextOne ( GEdgeSigned *thisOne, std::list<GEdge*> &wire)
+{
+
+  if (!thisOne)
+    {
+      GEdge *ge = *(wire.begin());
+      wire.erase(wire.begin());
+      return GEdgeSigned ( 1 , ge );   
+    }
+
+  GVertex *gv = thisOne->getEndVertex();
+
+  std::list<GEdge*> possibleChoices;
+
+  std::list<GEdge*>::iterator it = wire.begin();
+  std::list<GEdge*>::iterator ite = wire.end();
+  while (it != ite)
+    {
+      GEdge *ge = *it;
+      GVertex *v1 = ge->getBeginVertex();
+      GVertex *v2 = ge->getEndVertex();
+      if (v1 == gv || v2 == gv)possibleChoices.push_back(ge);
+      ++it;
+    }
+  it = possibleChoices.begin();
+  ite = possibleChoices.end();
+  while (it != ite)
+    {
+      GEdge *ge = *it;
+      if (countInList (possibleChoices , ge) == 2)
+	{
+	  wire.erase(std::remove_if(wire.begin(),wire.end() , std::bind2nd(std::equal_to<GEdge*>(), ge)) , 
+		 wire.end());
+	  wire.push_back(ge);
+	  GVertex *v1 = ge->getBeginVertex();
+	  GVertex *v2 = ge->getEndVertex();
+	  if (v1 == gv)return GEdgeSigned ( 1  , ge );   
+	  if (v2 == gv)return GEdgeSigned ( -1 , ge );   
+	  throw;
+	}
+      ++it;
+    }
+  it = possibleChoices.begin();
+  ite = possibleChoices.end();
+  while (it != ite)
+    {
+      GEdge *ge = *it;
+      if (ge != thisOne->ge)
+	{
+	  wire.erase(std::remove_if(wire.begin(),wire.end() , std::bind2nd(std::equal_to<GEdge*>(), ge)) , 
+		     wire.end());
+	  GVertex *v1 = ge->getBeginVertex();
+	  GVertex *v2 = ge->getEndVertex();
+	  if (v1 == gv)return GEdgeSigned ( 1  , ge );   
+	  if (v2 == gv)return GEdgeSigned ( -1 , ge );
+	  throw;
+	}   
+      ++it;
+    }
+}
+
+int  GEdgeLoop::count (GEdge* ge) const
+{
+  GEdgeLoop::citer it = begin();
+  GEdgeLoop::citer ite = end();
+  int count = 0;
+  while (it != ite)
+    {
+      if (it->ge == ge) count++; 
+      ++it;
+    }
+  return count;
+}
+
+GEdgeLoop::GEdgeLoop ( const std::list<GEdge*> & cwire )
+{
+
+  std::list<GEdge*> wire (cwire);
+
+  GEdgeSigned *prevOne = 0;
+
+  Msg(INFO,"Building a wire");
+  GEdgeSigned ges(0,0);
+  while (wire.size())
+    {
+      ges = nextOne ( prevOne , wire );
+      prevOne = &ges;
+      ges.print();
+      loop.push_back(ges);
+    }
+
+}
diff --git a/Geo/GEdgeLoop.h b/Geo/GEdgeLoop.h
new file mode 100644
index 0000000000000000000000000000000000000000..972c5ffc9220107e686aac7e08fa1acc7d386633
--- /dev/null
+++ b/Geo/GEdgeLoop.h
@@ -0,0 +1,62 @@
+#ifndef _GEDGELOOP_H_
+#define _GEDGELOOP_H_
+
+// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+// 
+// Please report all bugs and problems to <gmsh@geuz.org>.
+
+#include "GEdge.h"
+#include <list>
+
+struct GEdgeSigned
+{
+  int _sign;
+  GEdge *ge;
+  GEdgeSigned ( int i, GEdge*g ) 
+    : _sign(i) , ge(g)
+  {}
+  GVertex * getBeginVertex() const
+  {
+    return (_sign==1)?ge->getBeginVertex():ge->getEndVertex();
+  }
+  GVertex * getEndVertex() const
+  {
+    return (_sign!=1)?ge->getBeginVertex():ge->getEndVertex();
+  }
+  void print() const;
+};
+
+class GEdgeLoop 
+{
+public:
+  typedef std::list<GEdgeSigned>::iterator iter;
+  typedef std::list<GEdgeSigned>::const_iterator citer;
+  GEdgeLoop ( const std::list<GEdge*> &);
+  inline iter begin () {return loop.begin();}
+  inline iter end   () {return loop.end();}
+  inline citer begin () const {return loop.begin();}
+  inline citer end   () const {return loop.end();}
+  int  count (GEdge*) const;
+private:
+  std::list< GEdgeSigned > loop ;
+};
+
+
+
+
+#endif
diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index fe455d84e7a9d28d1366681d47503a81a28933ab..d7e4d8625d0cde55ee8b8e6b0c75878861198ed4 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -1,4 +1,4 @@
-// $Id: GFace.cpp,v 1.19 2006-11-15 20:46:46 remacle Exp $
+// $Id: GFace.cpp,v 1.20 2006-11-16 18:32:41 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -388,13 +388,6 @@ double GFace::curvature (const SPoint2 &param) const
   return  c;
 }
 
-// edges are given, compute their orientation
-// i.e. two following edges should 
-void GFace :: computeDirs ()
-{
-  throw;
-}
-
 void GFace::XYZtoUV(const double X, const double Y, const double Z, 
 		    double &U, double &V,
 		    const double relax) const
diff --git a/Geo/GFace.h b/Geo/GFace.h
index c879862567fa4b2a19737ed6df0a9c8fd3d40f9a..3916b146f4b18c7fa327356afdc1976e3813a290 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -22,13 +22,13 @@
 
 #include "GPoint.h"
 #include "GEntity.h"
+#include "GEdgeLoop.h"
 #include "MElement.h"
 #include "SPoint2.h"
 #include "SVector3.h"
 #include "Pair.h"
 #include "ExtrudeParams.h"
 
-#include <set>
 
 struct mean_plane
 {
@@ -43,10 +43,8 @@ class GRegion;
 class GFace : public GEntity 
 {
  protected: 
-  // in a manifold representation, edges can
-  // be taken twice in the topology in order 
-  // to represent the periodicity of the surface
-  std::set<GEdge *> edges_taken_twice;
+  // edge loops, will replace what follows
+  std::list<GEdgeLoop> edgeLoops;
   // list of al the edges of the face
   std::list<GEdge *> l_edges;
   std::list<int> l_dirs;
@@ -54,7 +52,11 @@ class GFace : public GEntity
   mean_plane meanPlane;
   std::list<GEdge *> embedded_edges;
   std::list<GVertex *> embedded_vertices;
-  void computeDirs ();
+  // given a list of GEdges, the function builds a 
+  // list of wires, i.e. closed edge loops.
+  // the first wire is the one that is the
+  // outer contour of the face. 
+  void resolveWires ();
 
  public:
   GFace(GModel *model, int tag);
diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp
index 5105da9834135b9251b11b1cbe5507441ff492ec..e382a7e6e3fe08c01b991f4b3e9c5bcf610b4c5c 100644
--- a/Geo/GModelIO_OCC.cpp
+++ b/Geo/GModelIO_OCC.cpp
@@ -1,4 +1,4 @@
-  // $Id: GModelIO_OCC.cpp,v 1.5 2006-11-16 01:56:52 geuzaine Exp $
+  // $Id: GModelIO_OCC.cpp,v 1.6 2006-11-16 18:32:41 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -29,10 +29,23 @@
 #include "OCCFace.h"
 #include "OCCRegion.h"
 
+#include "ShapeAnalysis_ShapeTolerance.hxx"
+#include "ShapeAnalysis_ShapeContents.hxx"
+#include "ShapeAnalysis_CheckSmallFace.hxx"
+#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
+#include "BRepAlgoAPI_Fuse.hxx"
+#include "BRepCheck_Analyzer.hxx"
+#include "BRepLib.hxx"
+#include "ShapeBuild_ReShape.hxx"
+#include "ShapeFix.hxx"
+#include "ShapeFix_FixSmallFace.hxx"
+
+
 class OCC_Internals
 {
   TopoDS_Shape shape;
   TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;
+  double tolerance;
 public:
   OCC_Internals ()
   {
@@ -42,7 +55,9 @@ public:
     wmap.Clear();
     emap.Clear();
     vmap.Clear();
+    tolerance = 1.e-5;
   }
+  void HealGeometry (bool fixsmalledges = true, bool fixspotstripfaces = true, bool sewfaces = false, bool makesolids = false);
   void loadSTEP(const char *);
   void loadIGES(const char *);
   void loadBREP(const char *);  
@@ -263,10 +278,216 @@ void OCC_Internals :: buildLists ()
 
 }
 
+
+void OCC_Internals ::   HealGeometry (bool fixsmalledges , bool fixspotstripfaces, bool sewfaces, bool makesolids)
+{
+  int nrc = 0, nrcs = 0,
+    nrso = somap.Extent(),
+    nrsh = shmap.Extent(),
+    nrf = fmap.Extent(),
+    nrw = wmap.Extent(),
+    nre = emap.Extent(),
+    nrv = vmap.Extent();
+
+  TopExp_Explorer e;
+  for (e.Init(shape, TopAbs_COMPOUND); e.More(); e.Next()) nrc++;
+  for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) nrcs++;
+
+  double surfacecont = 0;
+
+  for (int i = 1; i <= fmap.Extent(); i++)
+    {
+      GProp_GProps system;
+      BRepGProp::LinearProperties(fmap(i), system);
+      surfacecont += system.Mass();
+    }
+
+  cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl
+       << "-----------------------------------" << endl;
+
+  if (fixsmalledges)
+    {
+      cout << endl << "- fixing small edges" << endl;
+
+      Handle(ShapeFix_Wire) sfw;
+      Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
+      rebuild->Apply(shape);
+
+      for (int i = 1; i <= fmap.Extent(); i++)
+	{
+	  TopExp_Explorer exp1;
+	  for (exp1.Init (fmap(i), TopAbs_WIRE); exp1.More(); exp1.Next())
+	    {
+	      TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());
+	      sfw = new ShapeFix_Wire (oldwire, TopoDS::Face(fmap(i)),tolerance);
+	      sfw->ModifyTopologyMode() = Standard_True;
+
+	      if (sfw->FixSmall (false, tolerance))
+		{
+		  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;
+		  TopoDS_Wire newwire = sfw->Wire();
+		  rebuild->Replace(oldwire, newwire, Standard_False);
+		}
+	      if ((sfw->StatusSmall(ShapeExtend_FAIL1)) ||
+		  (sfw->StatusSmall(ShapeExtend_FAIL2)) ||
+		  (sfw->StatusSmall(ShapeExtend_FAIL3)))
+		cout << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire) << endl;
+
+	      
+	    }
+	}
+
+      shape = rebuild->Apply(shape);
+
+
+
+      {
+      Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
+      rebuild->Apply(shape);
+      TopExp_Explorer exp1;
+      for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
+	{
+	  TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
+	  if (vmap.FindIndex(TopExp::FirstVertex (edge)) == 
+	      vmap.FindIndex(TopExp::LastVertex (edge)))
+	    {
+	      GProp_GProps system;
+	      BRepGProp::LinearProperties(edge, system);
+	      if (system.Mass() < tolerance)
+		{
+		  cout << "removing degenerated edge " << emap.FindIndex(edge) << endl;
+		  rebuild->Remove(edge, false);
+		}
+	    }
+	}
+      shape = rebuild->Apply(shape);
+      }
+
+
+      Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;
+      sfwf->SetPrecision(tolerance);
+      sfwf->Load (shape);
+
+      if (sfwf->FixSmallEdges())
+	{
+	  cout << endl << "- fixing wire frames" << endl;  
+	  if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;
+	  if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;
+	  if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;
+	}
+  
+
+      if (sfwf->FixWireGaps())
+	{
+	  cout << endl << "- fixing wire gaps" << endl;
+	  if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;
+	  if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;
+	  if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;
+	  if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;
+	  if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;
+	}
+      
+
+      shape = sfwf->Shape();
+    }
+
+
+
+
+
+  if (fixspotstripfaces)
+    {
+  
+      cout << endl << "- fixing spot and strip faces" << endl;
+      Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();
+      sffsm -> Init (shape);
+      sffsm -> SetPrecision (tolerance);
+      sffsm -> Perform();
+      
+      shape = sffsm -> FixShape();
+    }
+
+  if (sewfaces)
+    {
+      cout << endl << "- sewing faces" << endl;
+
+      TopExp_Explorer exp0;
+
+      BRepOffsetAPI_Sewing sewedObj(tolerance);
+
+      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
+	{
+	  TopoDS_Face face = TopoDS::Face (exp0.Current());
+	  sewedObj.Add (face);
+	}
+      
+      sewedObj.Perform();
+  
+      if (!sewedObj.SewedShape().IsNull())
+	shape = sewedObj.SewedShape();
+      else
+	cout << " not possible";
+    }
+
+  if (makesolids)
+    {  
+      cout << endl << "- making solids" << endl;
+      
+      TopExp_Explorer exp0;
+
+      BRepBuilderAPI_MakeSolid ms;
+      int count = 0;
+      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
+	{
+	  count++;
+	  ms.Add (TopoDS::Shell(exp0.Current()));
+	}
+      
+      if (!count)
+	{
+	  cout << " not possible (no shells)" << endl;
+	}
+      else
+	{
+	  BRepCheck_Analyzer ba(ms);
+	  if (ba.IsValid ())
+	    {
+	      Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
+	      sfs->Init (ms);
+	      sfs->SetPrecision(tolerance);
+	      sfs->SetMaxTolerance(tolerance);
+	      sfs->Perform();
+	      shape = sfs->Shape();
+	      
+	      for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
+		{
+		  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
+		  TopoDS_Solid newsolid = solid;
+		  BRepLib::OrientClosedSolid (newsolid);
+		  Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
+		  //		  rebuild->Apply(shape);
+		  rebuild->Replace(solid, newsolid, Standard_False);
+		  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID, 1);
+		  //		  TopoDS_Shape newshape = rebuild->Apply(shape);
+		  shape = newshape;
+		}
+	    }
+	  else
+	    cout << " not possible" << endl;
+	}
+    }
+  buildLists();
+}
+
+
 void OCC_Internals :: loadBREP (const char *fn)
 {
   BRep_Builder aBuilder;
   Standard_Boolean result = BRepTools::Read( shape, (char*)fn, aBuilder );
+  BRepTools::Clean (shape);
+  buildLists();
+  //  HealGeometry();
+  BRepTools::Clean (shape);
 }
 
 void OCC_Internals :: loadSTEP (const char *fn)
@@ -276,6 +497,7 @@ void OCC_Internals :: loadSTEP (const char *fn)
   Standard_Integer nb = reader.NbRootsForTransfer();
   reader.TransferRoots (); 
   shape = reader.OneShape();  
+  BRepTools::Clean (shape);
 }
 
 void OCC_Internals :: loadIGES (const char *fn)
@@ -285,6 +507,7 @@ void OCC_Internals :: loadIGES (const char *fn)
   Standard_Integer nb = reader.NbRootsForTransfer();
   reader.TransferRoots (); 
   shape = reader.OneShape();  
+  BRepTools::Clean (shape);
 }
 
 void OCC_Internals :: buildGModel (GModel *model)
@@ -348,6 +571,7 @@ int GModel::readOCCBREP(const std::string &fn)
   occ_internals = new OCC_Internals;
   occ_internals->loadBREP (fn.c_str());
   occ_internals->buildLists ();
+  //  occ_internals->HealGeometry();
   occ_internals->buildGModel (this);
   return 1;
 }
diff --git a/Geo/Makefile b/Geo/Makefile
index 7a6c1bb058d9b69fdf48f6e8b38bec30155e179f..563ea418aff652ce05dc5465be0b12885cfea777 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.110 2006-11-15 20:56:08 geuzaine Exp $
+# $Id: Makefile,v 1.111 2006-11-16 18:32:41 remacle Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -33,6 +33,7 @@ SRC = CAD.cpp \
       GEntity.cpp\
       GVertex.cpp\
       GEdge.cpp\
+      GEdgeLoop.cpp\
       GFace.cpp\
       GRegion.cpp\
       MVertex.cpp \
@@ -110,7 +111,7 @@ Geo.o: Geo.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Parser/Parser.h ../Common/Context.h GModel.h GVertex.h GEntity.h \
   Range.h SPoint3.h SBoundingBox3d.h MVertex.h GPoint.h GEdge.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
-  GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h
+  GFace.h GEdgeLoop.h Pair.h GRegion.h ../Common/SmoothNormals.h
 GeoUtils.o: GeoUtils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -125,32 +126,72 @@ GEntity.o: GEntity.cpp GEntity.h Range.h SPoint3.h SBoundingBox3d.h \
   ../Common/GmshDefines.h MRep.h GEdge.h GVertex.h MVertex.h GPoint.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
   ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/VertexArray.h \
-  ../Common/Message.h ../Common/OS.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/VertexArray.h ../Common/Message.h ../Common/OS.h
 GVertex.o: GVertex.cpp GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h
 GEdge.o: GEdge.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
   ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h
+GEdgeLoop.o: GEdgeLoop.cpp GEdgeLoop.h GEdge.h GEntity.h Range.h \
+  SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h GVertex.h MVertex.h \
+  GPoint.h SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h \
+  MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
+  ExtrudeParams.h ../Common/Message.h
 GFace.o: GFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
   ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h \
-  ../Common/Message.h ../Mesh/Utils.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h ../Common/Message.h ../Mesh/Utils.h \
+  ../Mesh/Vertex.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  /sw/include/gsl/gsl_vector.h \
+  /sw/include/gsl/gsl_vector_complex_long_double.h \
+  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
+  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_check_range.h \
+  /sw/include/gsl/gsl_vector_long_double.h \
+  /sw/include/gsl/gsl_block_long_double.h \
+  /sw/include/gsl/gsl_vector_complex.h \
+  /sw/include/gsl/gsl_block_complex_long_double.h \
+  /sw/include/gsl/gsl_vector_complex_double.h \
+  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
+  /sw/include/gsl/gsl_block_complex_double.h \
+  /sw/include/gsl/gsl_vector_complex_float.h \
+  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
+  /sw/include/gsl/gsl_block_complex_float.h \
+  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
+  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
+  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
+  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
+  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
+  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
+  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
+  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
+  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
+  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_matrix.h \
+  /sw/include/gsl/gsl_matrix_complex_long_double.h \
+  /sw/include/gsl/gsl_matrix_complex_double.h \
+  /sw/include/gsl/gsl_matrix_complex_float.h \
+  /sw/include/gsl/gsl_matrix_long_double.h \
+  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
+  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
+  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
+  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
+  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h
 GRegion.o: GRegion.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
   ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h
 MVertex.o: MVertex.cpp MVertex.h SPoint3.h
 MElement.o: MElement.cpp MElement.h ../Common/GmshDefines.h MVertex.h \
   SPoint3.h MEdge.h SVector3.h ../Common/Hash.h MFace.h \
@@ -160,49 +201,471 @@ GModel.o: GModel.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
   ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h \
-  MRep.h ../Common/VertexArray.h ../Common/Message.h ../Common/OS.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h MRep.h ../Common/VertexArray.h \
+  ../Common/Message.h ../Common/OS.h
 GModelIO_Mesh.o: GModelIO_Mesh.cpp ../Common/Message.h \
   ../Common/GmshDefines.h GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h MVertex.h GPoint.h GEdge.h SVector3.h SPoint2.h \
   MElement.h MEdge.h ../Common/Hash.h MFace.h ../Numeric/Numeric.h \
-  ../Common/Context.h ../DataStr/List.h ExtrudeParams.h GFace.h Pair.h \
-  GRegion.h ../Common/SmoothNormals.h gmshRegion.h ../Mesh/Mesh.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h gmshFace.h gmshVertex.h gmshEdge.h
-GModelIO_Geo.o: GModelIO_Geo.cpp GModel.h GVertex.h GEntity.h Range.h \
-  SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \
-  GEdge.h SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h \
-  MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h \
+  ../Common/Context.h ../DataStr/List.h ExtrudeParams.h GFace.h \
+  GEdgeLoop.h Pair.h GRegion.h ../Common/SmoothNormals.h gmshRegion.h \
   ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Geo.h \
-  ../Parser/OpenFile.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h gmshFace.h \
+  gmshVertex.h gmshEdge.h
+GModelIO_Geo.o: GModelIO_Geo.cpp GModel.h GVertex.h GEntity.h Range.h \
+  SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \
+  GEdge.h SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h \
+  MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  Geo.h ../Parser/OpenFile.h ../DataStr/Tools.h ../DataStr/List.h \
   ../DataStr/Tree.h ../Common/Message.h gmshVertex.h gmshFace.h \
   gmshEdge.h gmshRegion.h
 GModelIO_Fourier.o: GModelIO_Fourier.cpp GModel.h GVertex.h GEntity.h \
   Range.h SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h \
   GPoint.h GEdge.h SVector3.h SPoint2.h MElement.h MEdge.h \
   ../Common/Hash.h MFace.h ../Numeric/Numeric.h ../Common/Context.h \
-  ../DataStr/List.h ExtrudeParams.h GFace.h Pair.h GRegion.h \
+  ../DataStr/List.h ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
   ../Common/SmoothNormals.h fourierFace.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
+  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
+  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
+  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
+  /sw/include/gsl/gsl_vector_complex_long_double.h \
+  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
+  /sw/include/gsl/gsl_block_long_double.h \
+  /sw/include/gsl/gsl_vector_complex.h \
+  /sw/include/gsl/gsl_block_complex_long_double.h \
+  /sw/include/gsl/gsl_vector_complex_double.h \
+  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
+  /sw/include/gsl/gsl_block_complex_double.h \
+  /sw/include/gsl/gsl_vector_complex_float.h \
+  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
+  /sw/include/gsl/gsl_block_complex_float.h \
+  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
+  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
+  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
+  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
+  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
+  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
+  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
+  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
+  /sw/include/gsl/gsl_matrix.h \
+  /sw/include/gsl/gsl_matrix_complex_long_double.h \
+  /sw/include/gsl/gsl_matrix_complex_double.h \
+  /sw/include/gsl/gsl_matrix_complex_float.h \
+  /sw/include/gsl/gsl_matrix_long_double.h \
+  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
+  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
+  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
+  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
+  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
+  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
+  /sw/include/gsl/gsl_cblas.h
 GModelIO_OCC.o: GModelIO_OCC.cpp GModel.h GVertex.h GEntity.h Range.h \
   SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \
   GEdge.h SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h \
   MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h \
-  ../Common/Message.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h ../Common/Message.h OCCIncludes.h \
+  /usr/local/opencascade/inc/config.h \
+  /usr/local/opencascade/inc/BRep_Tool.hxx \
+  /usr/local/opencascade/inc/Standard_Boolean.hxx \
+  /usr/local/opencascade/inc/Standard_TypeDef.hxx \
+  /usr/local/opencascade/inc/Standard_Macro.hxx \
+  /usr/local/opencascade/inc/Standard_Stream.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Surface.hxx \
+  /usr/local/opencascade/inc/Standard.hxx \
+  /usr/local/opencascade/inc/Standard_Address.hxx \
+  /usr/local/opencascade/inc/Standard_Integer.hxx \
+  /usr/local/opencascade/inc/Standard_values.h \
+  /usr/local/opencascade/inc/Standard_OStream.hxx \
+  /usr/local/opencascade/inc/Standard_CString.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_PrimitiveTypes.hxx \
+  /usr/local/opencascade/inc/Standard_Real.hxx \
+  /usr/local/opencascade/inc/Standard_Character.hxx \
+  /usr/local/opencascade/inc/Standard_ctype.hxx \
+  /usr/local/opencascade/inc/Standard_ExtCharacter.hxx \
+  /usr/local/opencascade/inc/Standard_ExtString.hxx \
+  /usr/local/opencascade/inc/Standard_Storable.hxx \
+  /usr/local/opencascade/inc/Standard_Transient_proto.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon3D.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon2D.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_PolygonOnTriangulation.hxx \
+  /usr/local/opencascade/inc/GeomAbs_Shape.hxx \
+  /usr/local/opencascade/inc/Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_Type.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Type.hxx \
+  /usr/local/opencascade/inc/Standard_KindOfType.hxx \
+  /usr/local/opencascade/inc/Standard_Type.lxx \
+  /usr/local/opencascade/inc/Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Geom_Surface.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPS.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_SurfacePtr.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElS.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.lxx /usr/local/opencascade/inc/gp.hxx \
+  /usr/local/opencascade/inc/gp.lxx /usr/local/opencascade/inc/gp_Mat.hxx \
+  /usr/local/opencascade/inc/gp_Mat.lxx \
+  /usr/local/opencascade/inc/Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_SStream.hxx \
+  /usr/local/opencascade/inc/Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.lxx \
+  /usr/local/opencascade/inc/Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.lxx \
+  /usr/local/opencascade/inc/gp_Trsf.hxx \
+  /usr/local/opencascade/inc/gp_TrsfForm.hxx \
+  /usr/local/opencascade/inc/gp_Trsf.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.lxx \
+  /usr/local/opencascade/inc/gp_XY.hxx \
+  /usr/local/opencascade/inc/gp_XY.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.lxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.hxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec2d.hxx \
+  /usr/local/opencascade/inc/gp_Vec2d.lxx \
+  /usr/local/opencascade/inc/gp_Dir2d.hxx \
+  /usr/local/opencascade/inc/gp_Dir2d.lxx \
+  /usr/local/opencascade/inc/gp_Ax2d.hxx \
+  /usr/local/opencascade/inc/gp_Ax2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec.hxx \
+  /usr/local/opencascade/inc/gp_Vec.lxx \
+  /usr/local/opencascade/inc/gp_Dir.hxx \
+  /usr/local/opencascade/inc/gp_Dir.lxx \
+  /usr/local/opencascade/inc/gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Handle_gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.lxx \
+  /usr/local/opencascade/inc/Extrema_GenExtPS.hxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray2OfPnt.hxx \
+  /usr/local/opencascade/inc/Extrema_FuncExtPS.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfReal.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.lxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_SeqNode.hxx \
+  /usr/local/opencascade/inc/TCollection_Sequence.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/math_FunctionSetWithDerivatives.hxx \
+  /usr/local/opencascade/inc/math_FunctionSet.hxx \
+  /usr/local/opencascade/inc/GeomAbs_SurfaceType.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/Quantity_Parameter.hxx \
+  /usr/local/opencascade/inc/Quantity_Length.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElC.hxx \
+  /usr/local/opencascade/inc/Extrema_POnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_Point.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_EPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_PCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/math_FunctionWithDerivative.hxx \
+  /usr/local/opencascade/inc/math_Function.hxx \
+  /usr/local/opencascade/inc/GeomAbs_CurveType.hxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.lxx \
+  /usr/local/opencascade/inc/BRepTools.hxx \
+  /usr/local/opencascade/inc/Standard_IStream.hxx \
+  /usr/local/opencascade/inc/TopExp.hxx \
+  /usr/local/opencascade/inc/TopAbs_ShapeEnum.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.hxx \
+  /usr/local/opencascade/inc/TopLoc_SListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_SListNodeOfSListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/TCollection_SList.lxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_Datum3D.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.lxx \
+  /usr/local/opencascade/inc/TopLoc_ItemLocation.hxx \
+  /usr/local/opencascade/inc/TopLoc_TrsfPtr.hxx \
+  /usr/local/opencascade/inc/TopAbs_Orientation.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_MapNode.hxx \
+  /usr/local/opencascade/inc/TCollection_List.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.lxx \
+  /usr/local/opencascade/inc/TopAbs.hxx \
+  /usr/local/opencascade/inc/TopAbs_State.hxx \
+  /usr/local/opencascade/inc/TopTools_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/BRepLib_Command.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShapeModification.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Command.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepOffsetAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/Handle_BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.hxx \
+  /usr/local/opencascade/inc/TCollection_MapNodePtr.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.lxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedMapNodeOfIndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/TopTools_MapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_StdMapNodeOfMapOfShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.lxx \
+  /usr/local/opencascade/inc/BRepLProp_SLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/TopoDS_Face.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/LProp_Status.hxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt.hxx \
+  /usr/local/opencascade/inc/TCollection_Array1.lxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/Poly_Array1OfTriangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.lxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.lxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/GProp_GProps.hxx \
+  /usr/local/opencascade/inc/BRepGProp.hxx \
+  /usr/local/opencascade/inc/TopoDS.hxx \
+  /usr/local/opencascade/inc/TopoDS.lxx \
+  /usr/local/opencascade/inc/Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/TopoDS_Solid.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.hxx \
+  /usr/local/opencascade/inc/TopExp_Stack.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.lxx \
+  /usr/local/opencascade/inc/BRep_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder3D.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Wire.hxx \
+  /usr/local/opencascade/inc/BRepTools_WireExplorer.hxx \
+  /usr/local/opencascade/inc/TopoDS_Edge.hxx \
+  /usr/local/opencascade/inc/TopoDS_Vertex.hxx \
+  /usr/local/opencascade/inc/BRepLProp_CLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurveOnSurface.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.hxx \
+  /usr/local/opencascade/inc/XSControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_XSControl_WorkSession.hxx \
+  /usr/local/opencascade/inc/Handle_IFSelect_WorkSession.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/TopTools_SequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_SequenceNodeOfSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/IFSelect_ReturnStatus.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_InterfaceModel.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintCount.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESModel.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintFail.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.lxx \
+  /usr/local/opencascade/inc/STEPControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_StepData_StepModel.hxx \
+  /usr/local/opencascade/inc/IGESToBRep_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_IGESToBRep_Actor.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfTransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_TransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Handle_MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.lxx \
+  /usr/local/opencascade/inc/Interface_ParamType.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HArray1OfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfInteger.hxx \
+  /usr/local/opencascade/inc/Interface_StaticSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Interface_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/Interface_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueType.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HExtendedString.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.lxx \
+  /usr/local/opencascade/inc/MoniTool_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfHAsciiString.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtCC.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.lxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.hxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.lxx \
+  /usr/local/opencascade/inc/ShapeUpgrade_ShellSewing.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_BasicMsgRegistrator.hxx \
+  /usr/local/opencascade/inc/Message_Gravity.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.lxx \
+  /usr/local/opencascade/inc/Precision.hxx \
+  /usr/local/opencascade/inc/Precision.lxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Edge.hxx \
+  /usr/local/opencascade/inc/ShapeExtend_Status.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Compound.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.lxx \
+  /usr/local/opencascade/inc/ShapeExtend.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_HSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.lxx \
+  /usr/local/opencascade/inc/BRepMesh.hxx \
+  /usr/local/opencascade/inc/BRepMesh_IncrementalMesh.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_FastDiscret.hxx \
+  /usr/local/opencascade/inc/BRepMesh_DataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_DataMapNodeOfDataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.lxx \
+  /usr/local/opencascade/inc/BRepBndLib.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis.hxx \
+  /usr/local/opencascade/inc/ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/IGESControl_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_FinderProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForFinder.hxx \
+  /usr/local/opencascade/inc/IGESData_BasicEditor.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_Protocol.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Protocol.hxx \
+  /usr/local/opencascade/inc/Interface_GeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_NodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GeneralModule.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GlobalNodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/IGESData_SpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_NodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESEntity.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_SpecificModule.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_GlobalNodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/STEPControl_Writer.hxx \
+  /usr/local/opencascade/inc/STEPControl_StepModelType.hxx \
+  /usr/local/opencascade/inc/StlAPI_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_StlMesh_Mesh.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeTolerance.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_DataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_Fuse.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_BooleanOperation.hxx \
+  /usr/local/opencascade/inc/BOP_Operation.hxx \
+  /usr/local/opencascade/inc/BOPTools_PDSFiller.hxx \
+  /usr/local/opencascade/inc/BOP_PBuilder.hxx \
+  /usr/local/opencascade/inc/Handle_BOP_HistoryCollector.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.hxx \
+  /usr/local/opencascade/inc/BRepCheck_DataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_Result.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_DataMapNodeOfDataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.lxx \
+  /usr/local/opencascade/inc/BRepLib.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Plane.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_ElementarySurface.hxx \
+  /usr/local/opencascade/inc/ShapeFix.hxx \
+  /usr/local/opencascade/inc/ShapeFix_FixSmallFace.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_FixSmallFace.hxx OCCVertex.h \
+  ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h OCCEdge.h OCCFace.h \
+  OCCRegion.h
 gmshEdge.o: gmshEdge.cpp gmshEdge.h GEdge.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h GVertex.h MVertex.h GPoint.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
@@ -219,39 +682,1600 @@ gmshFace.o: gmshFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
   SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
   ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h \
-  gmshVertex.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h gmshEdge.h gmshFace.h \
-  ../Mesh/Interpolation.h ../Mesh/Vertex.h ../Mesh/Mesh.h CAD.h Geo.h \
-  ../Mesh/Create.h ../Mesh/Vertex.h ../Mesh/Mesh.h ../Mesh/Utils.h \
-  ../Mesh/Vertex.h ../Mesh/Mesh.h ../Common/Message.h
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h gmshVertex.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  gmshEdge.h gmshFace.h ../Mesh/Interpolation.h ../Mesh/Vertex.h \
+  ../Mesh/Mesh.h CAD.h Geo.h ../Mesh/Create.h ../Mesh/Vertex.h \
+  ../Mesh/Mesh.h ../Mesh/Utils.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
+  ../Common/Message.h
 gmshRegion.o: gmshRegion.cpp GModel.h GVertex.h GEntity.h Range.h \
   SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \
   GEdge.h SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h \
   MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
-  ExtrudeParams.h GFace.h Pair.h GRegion.h ../Common/SmoothNormals.h \
-  gmshFace.h gmshVertex.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h gmshFace.h gmshVertex.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h gmshRegion.h Geo.h ../Mesh/Create.h ../Mesh/Vertex.h \
+  ../Mesh/Mesh.h
+OCCVertex.o: OCCVertex.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
+  SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
+  SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
+  ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h OCCVertex.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  OCCIncludes.h /usr/local/opencascade/inc/config.h \
+  /usr/local/opencascade/inc/BRep_Tool.hxx \
+  /usr/local/opencascade/inc/Standard_Boolean.hxx \
+  /usr/local/opencascade/inc/Standard_TypeDef.hxx \
+  /usr/local/opencascade/inc/Standard_Macro.hxx \
+  /usr/local/opencascade/inc/Standard_Stream.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Surface.hxx \
+  /usr/local/opencascade/inc/Standard.hxx \
+  /usr/local/opencascade/inc/Standard_Address.hxx \
+  /usr/local/opencascade/inc/Standard_Integer.hxx \
+  /usr/local/opencascade/inc/Standard_values.h \
+  /usr/local/opencascade/inc/Standard_OStream.hxx \
+  /usr/local/opencascade/inc/Standard_CString.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_PrimitiveTypes.hxx \
+  /usr/local/opencascade/inc/Standard_Real.hxx \
+  /usr/local/opencascade/inc/Standard_Character.hxx \
+  /usr/local/opencascade/inc/Standard_ctype.hxx \
+  /usr/local/opencascade/inc/Standard_ExtCharacter.hxx \
+  /usr/local/opencascade/inc/Standard_ExtString.hxx \
+  /usr/local/opencascade/inc/Standard_Storable.hxx \
+  /usr/local/opencascade/inc/Standard_Transient_proto.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon3D.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon2D.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_PolygonOnTriangulation.hxx \
+  /usr/local/opencascade/inc/GeomAbs_Shape.hxx \
+  /usr/local/opencascade/inc/Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_Type.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Type.hxx \
+  /usr/local/opencascade/inc/Standard_KindOfType.hxx \
+  /usr/local/opencascade/inc/Standard_Type.lxx \
+  /usr/local/opencascade/inc/Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Geom_Surface.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPS.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_SurfacePtr.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElS.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.lxx /usr/local/opencascade/inc/gp.hxx \
+  /usr/local/opencascade/inc/gp.lxx /usr/local/opencascade/inc/gp_Mat.hxx \
+  /usr/local/opencascade/inc/gp_Mat.lxx \
+  /usr/local/opencascade/inc/Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_SStream.hxx \
+  /usr/local/opencascade/inc/Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.lxx \
+  /usr/local/opencascade/inc/Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.lxx \
+  /usr/local/opencascade/inc/gp_Trsf.hxx \
+  /usr/local/opencascade/inc/gp_TrsfForm.hxx \
+  /usr/local/opencascade/inc/gp_Trsf.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.lxx \
+  /usr/local/opencascade/inc/gp_XY.hxx \
+  /usr/local/opencascade/inc/gp_XY.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.lxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.hxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec2d.hxx \
+  /usr/local/opencascade/inc/gp_Vec2d.lxx \
+  /usr/local/opencascade/inc/gp_Dir2d.hxx \
+  /usr/local/opencascade/inc/gp_Dir2d.lxx \
+  /usr/local/opencascade/inc/gp_Ax2d.hxx \
+  /usr/local/opencascade/inc/gp_Ax2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec.hxx \
+  /usr/local/opencascade/inc/gp_Vec.lxx \
+  /usr/local/opencascade/inc/gp_Dir.hxx \
+  /usr/local/opencascade/inc/gp_Dir.lxx \
+  /usr/local/opencascade/inc/gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Handle_gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.lxx \
+  /usr/local/opencascade/inc/Extrema_GenExtPS.hxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray2OfPnt.hxx \
+  /usr/local/opencascade/inc/Extrema_FuncExtPS.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfReal.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.lxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_SeqNode.hxx \
+  /usr/local/opencascade/inc/TCollection_Sequence.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/math_FunctionSetWithDerivatives.hxx \
+  /usr/local/opencascade/inc/math_FunctionSet.hxx \
+  /usr/local/opencascade/inc/GeomAbs_SurfaceType.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/Quantity_Parameter.hxx \
+  /usr/local/opencascade/inc/Quantity_Length.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElC.hxx \
+  /usr/local/opencascade/inc/Extrema_POnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_Point.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_EPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_PCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/math_FunctionWithDerivative.hxx \
+  /usr/local/opencascade/inc/math_Function.hxx \
+  /usr/local/opencascade/inc/GeomAbs_CurveType.hxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.lxx \
+  /usr/local/opencascade/inc/BRepTools.hxx \
+  /usr/local/opencascade/inc/Standard_IStream.hxx \
+  /usr/local/opencascade/inc/TopExp.hxx \
+  /usr/local/opencascade/inc/TopAbs_ShapeEnum.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.hxx \
+  /usr/local/opencascade/inc/TopLoc_SListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_SListNodeOfSListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/TCollection_SList.lxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_Datum3D.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.lxx \
+  /usr/local/opencascade/inc/TopLoc_ItemLocation.hxx \
+  /usr/local/opencascade/inc/TopLoc_TrsfPtr.hxx \
+  /usr/local/opencascade/inc/TopAbs_Orientation.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_MapNode.hxx \
+  /usr/local/opencascade/inc/TCollection_List.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.lxx \
+  /usr/local/opencascade/inc/TopAbs.hxx \
+  /usr/local/opencascade/inc/TopAbs_State.hxx \
+  /usr/local/opencascade/inc/TopTools_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/BRepLib_Command.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShapeModification.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Command.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepOffsetAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/Handle_BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.hxx \
+  /usr/local/opencascade/inc/TCollection_MapNodePtr.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.lxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedMapNodeOfIndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/TopTools_MapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_StdMapNodeOfMapOfShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.lxx \
+  /usr/local/opencascade/inc/BRepLProp_SLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/TopoDS_Face.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/LProp_Status.hxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt.hxx \
+  /usr/local/opencascade/inc/TCollection_Array1.lxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/Poly_Array1OfTriangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.lxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.lxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/GProp_GProps.hxx \
+  /usr/local/opencascade/inc/BRepGProp.hxx \
+  /usr/local/opencascade/inc/TopoDS.hxx \
+  /usr/local/opencascade/inc/TopoDS.lxx \
+  /usr/local/opencascade/inc/Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/TopoDS_Solid.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.hxx \
+  /usr/local/opencascade/inc/TopExp_Stack.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.lxx \
+  /usr/local/opencascade/inc/BRep_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder3D.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Wire.hxx \
+  /usr/local/opencascade/inc/BRepTools_WireExplorer.hxx \
+  /usr/local/opencascade/inc/TopoDS_Edge.hxx \
+  /usr/local/opencascade/inc/TopoDS_Vertex.hxx \
+  /usr/local/opencascade/inc/BRepLProp_CLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurveOnSurface.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.hxx \
+  /usr/local/opencascade/inc/XSControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_XSControl_WorkSession.hxx \
+  /usr/local/opencascade/inc/Handle_IFSelect_WorkSession.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/TopTools_SequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_SequenceNodeOfSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/IFSelect_ReturnStatus.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_InterfaceModel.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintCount.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESModel.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintFail.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.lxx \
+  /usr/local/opencascade/inc/STEPControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_StepData_StepModel.hxx \
+  /usr/local/opencascade/inc/IGESToBRep_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_IGESToBRep_Actor.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfTransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_TransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Handle_MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.lxx \
+  /usr/local/opencascade/inc/Interface_ParamType.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HArray1OfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfInteger.hxx \
+  /usr/local/opencascade/inc/Interface_StaticSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Interface_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/Interface_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueType.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HExtendedString.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.lxx \
+  /usr/local/opencascade/inc/MoniTool_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfHAsciiString.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtCC.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.lxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.hxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.lxx \
+  /usr/local/opencascade/inc/ShapeUpgrade_ShellSewing.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_BasicMsgRegistrator.hxx \
+  /usr/local/opencascade/inc/Message_Gravity.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.lxx \
+  /usr/local/opencascade/inc/Precision.hxx \
+  /usr/local/opencascade/inc/Precision.lxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Edge.hxx \
+  /usr/local/opencascade/inc/ShapeExtend_Status.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Compound.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.lxx \
+  /usr/local/opencascade/inc/ShapeExtend.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_HSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.lxx \
+  /usr/local/opencascade/inc/BRepMesh.hxx \
+  /usr/local/opencascade/inc/BRepMesh_IncrementalMesh.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_FastDiscret.hxx \
+  /usr/local/opencascade/inc/BRepMesh_DataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_DataMapNodeOfDataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.lxx \
+  /usr/local/opencascade/inc/BRepBndLib.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis.hxx \
+  /usr/local/opencascade/inc/ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/IGESControl_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_FinderProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForFinder.hxx \
+  /usr/local/opencascade/inc/IGESData_BasicEditor.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_Protocol.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Protocol.hxx \
+  /usr/local/opencascade/inc/Interface_GeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_NodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GeneralModule.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GlobalNodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/IGESData_SpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_NodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESEntity.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_SpecificModule.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_GlobalNodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/STEPControl_Writer.hxx \
+  /usr/local/opencascade/inc/STEPControl_StepModelType.hxx \
+  /usr/local/opencascade/inc/StlAPI_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_StlMesh_Mesh.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeTolerance.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_DataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_Fuse.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_BooleanOperation.hxx \
+  /usr/local/opencascade/inc/BOP_Operation.hxx \
+  /usr/local/opencascade/inc/BOPTools_PDSFiller.hxx \
+  /usr/local/opencascade/inc/BOP_PBuilder.hxx \
+  /usr/local/opencascade/inc/Handle_BOP_HistoryCollector.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.hxx \
+  /usr/local/opencascade/inc/BRepCheck_DataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_Result.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_DataMapNodeOfDataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.lxx \
+  /usr/local/opencascade/inc/BRepLib.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Plane.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_ElementarySurface.hxx \
+  /usr/local/opencascade/inc/ShapeFix.hxx \
+  /usr/local/opencascade/inc/ShapeFix_FixSmallFace.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_FixSmallFace.hxx OCCEdge.h \
+  OCCFace.h
+OCCEdge.o: OCCEdge.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
+  SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
+  SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
+  ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h OCCEdge.h OCCVertex.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h OCCIncludes.h /usr/local/opencascade/inc/config.h \
+  /usr/local/opencascade/inc/BRep_Tool.hxx \
+  /usr/local/opencascade/inc/Standard_Boolean.hxx \
+  /usr/local/opencascade/inc/Standard_TypeDef.hxx \
+  /usr/local/opencascade/inc/Standard_Macro.hxx \
+  /usr/local/opencascade/inc/Standard_Stream.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Surface.hxx \
+  /usr/local/opencascade/inc/Standard.hxx \
+  /usr/local/opencascade/inc/Standard_Address.hxx \
+  /usr/local/opencascade/inc/Standard_Integer.hxx \
+  /usr/local/opencascade/inc/Standard_values.h \
+  /usr/local/opencascade/inc/Standard_OStream.hxx \
+  /usr/local/opencascade/inc/Standard_CString.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_PrimitiveTypes.hxx \
+  /usr/local/opencascade/inc/Standard_Real.hxx \
+  /usr/local/opencascade/inc/Standard_Character.hxx \
+  /usr/local/opencascade/inc/Standard_ctype.hxx \
+  /usr/local/opencascade/inc/Standard_ExtCharacter.hxx \
+  /usr/local/opencascade/inc/Standard_ExtString.hxx \
+  /usr/local/opencascade/inc/Standard_Storable.hxx \
+  /usr/local/opencascade/inc/Standard_Transient_proto.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon3D.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon2D.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_PolygonOnTriangulation.hxx \
+  /usr/local/opencascade/inc/GeomAbs_Shape.hxx \
+  /usr/local/opencascade/inc/Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_Type.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Type.hxx \
+  /usr/local/opencascade/inc/Standard_KindOfType.hxx \
+  /usr/local/opencascade/inc/Standard_Type.lxx \
+  /usr/local/opencascade/inc/Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Geom_Surface.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPS.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_SurfacePtr.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElS.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.lxx /usr/local/opencascade/inc/gp.hxx \
+  /usr/local/opencascade/inc/gp.lxx /usr/local/opencascade/inc/gp_Mat.hxx \
+  /usr/local/opencascade/inc/gp_Mat.lxx \
+  /usr/local/opencascade/inc/Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_SStream.hxx \
+  /usr/local/opencascade/inc/Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.lxx \
+  /usr/local/opencascade/inc/Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.lxx \
+  /usr/local/opencascade/inc/gp_Trsf.hxx \
+  /usr/local/opencascade/inc/gp_TrsfForm.hxx \
+  /usr/local/opencascade/inc/gp_Trsf.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.lxx \
+  /usr/local/opencascade/inc/gp_XY.hxx \
+  /usr/local/opencascade/inc/gp_XY.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.lxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.hxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec2d.hxx \
+  /usr/local/opencascade/inc/gp_Vec2d.lxx \
+  /usr/local/opencascade/inc/gp_Dir2d.hxx \
+  /usr/local/opencascade/inc/gp_Dir2d.lxx \
+  /usr/local/opencascade/inc/gp_Ax2d.hxx \
+  /usr/local/opencascade/inc/gp_Ax2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec.hxx \
+  /usr/local/opencascade/inc/gp_Vec.lxx \
+  /usr/local/opencascade/inc/gp_Dir.hxx \
+  /usr/local/opencascade/inc/gp_Dir.lxx \
+  /usr/local/opencascade/inc/gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Handle_gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.lxx \
+  /usr/local/opencascade/inc/Extrema_GenExtPS.hxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray2OfPnt.hxx \
+  /usr/local/opencascade/inc/Extrema_FuncExtPS.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfReal.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.lxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_SeqNode.hxx \
+  /usr/local/opencascade/inc/TCollection_Sequence.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/math_FunctionSetWithDerivatives.hxx \
+  /usr/local/opencascade/inc/math_FunctionSet.hxx \
+  /usr/local/opencascade/inc/GeomAbs_SurfaceType.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/Quantity_Parameter.hxx \
+  /usr/local/opencascade/inc/Quantity_Length.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElC.hxx \
+  /usr/local/opencascade/inc/Extrema_POnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_Point.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_EPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_PCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/math_FunctionWithDerivative.hxx \
+  /usr/local/opencascade/inc/math_Function.hxx \
+  /usr/local/opencascade/inc/GeomAbs_CurveType.hxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.lxx \
+  /usr/local/opencascade/inc/BRepTools.hxx \
+  /usr/local/opencascade/inc/Standard_IStream.hxx \
+  /usr/local/opencascade/inc/TopExp.hxx \
+  /usr/local/opencascade/inc/TopAbs_ShapeEnum.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.hxx \
+  /usr/local/opencascade/inc/TopLoc_SListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_SListNodeOfSListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/TCollection_SList.lxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_Datum3D.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.lxx \
+  /usr/local/opencascade/inc/TopLoc_ItemLocation.hxx \
+  /usr/local/opencascade/inc/TopLoc_TrsfPtr.hxx \
+  /usr/local/opencascade/inc/TopAbs_Orientation.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_MapNode.hxx \
+  /usr/local/opencascade/inc/TCollection_List.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.lxx \
+  /usr/local/opencascade/inc/TopAbs.hxx \
+  /usr/local/opencascade/inc/TopAbs_State.hxx \
+  /usr/local/opencascade/inc/TopTools_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/BRepLib_Command.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShapeModification.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Command.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepOffsetAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/Handle_BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.hxx \
+  /usr/local/opencascade/inc/TCollection_MapNodePtr.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.lxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedMapNodeOfIndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/TopTools_MapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_StdMapNodeOfMapOfShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.lxx \
+  /usr/local/opencascade/inc/BRepLProp_SLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/TopoDS_Face.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/LProp_Status.hxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt.hxx \
+  /usr/local/opencascade/inc/TCollection_Array1.lxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/Poly_Array1OfTriangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.lxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.lxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/GProp_GProps.hxx \
+  /usr/local/opencascade/inc/BRepGProp.hxx \
+  /usr/local/opencascade/inc/TopoDS.hxx \
+  /usr/local/opencascade/inc/TopoDS.lxx \
+  /usr/local/opencascade/inc/Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/TopoDS_Solid.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.hxx \
+  /usr/local/opencascade/inc/TopExp_Stack.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.lxx \
+  /usr/local/opencascade/inc/BRep_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder3D.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Wire.hxx \
+  /usr/local/opencascade/inc/BRepTools_WireExplorer.hxx \
+  /usr/local/opencascade/inc/TopoDS_Edge.hxx \
+  /usr/local/opencascade/inc/TopoDS_Vertex.hxx \
+  /usr/local/opencascade/inc/BRepLProp_CLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurveOnSurface.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.hxx \
+  /usr/local/opencascade/inc/XSControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_XSControl_WorkSession.hxx \
+  /usr/local/opencascade/inc/Handle_IFSelect_WorkSession.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/TopTools_SequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_SequenceNodeOfSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/IFSelect_ReturnStatus.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_InterfaceModel.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintCount.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESModel.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintFail.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.lxx \
+  /usr/local/opencascade/inc/STEPControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_StepData_StepModel.hxx \
+  /usr/local/opencascade/inc/IGESToBRep_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_IGESToBRep_Actor.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfTransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_TransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Handle_MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.lxx \
+  /usr/local/opencascade/inc/Interface_ParamType.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HArray1OfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfInteger.hxx \
+  /usr/local/opencascade/inc/Interface_StaticSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Interface_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/Interface_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueType.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HExtendedString.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.lxx \
+  /usr/local/opencascade/inc/MoniTool_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfHAsciiString.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtCC.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.lxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.hxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.lxx \
+  /usr/local/opencascade/inc/ShapeUpgrade_ShellSewing.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_BasicMsgRegistrator.hxx \
+  /usr/local/opencascade/inc/Message_Gravity.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.lxx \
+  /usr/local/opencascade/inc/Precision.hxx \
+  /usr/local/opencascade/inc/Precision.lxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Edge.hxx \
+  /usr/local/opencascade/inc/ShapeExtend_Status.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Compound.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.lxx \
+  /usr/local/opencascade/inc/ShapeExtend.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_HSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.lxx \
+  /usr/local/opencascade/inc/BRepMesh.hxx \
+  /usr/local/opencascade/inc/BRepMesh_IncrementalMesh.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_FastDiscret.hxx \
+  /usr/local/opencascade/inc/BRepMesh_DataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_DataMapNodeOfDataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.lxx \
+  /usr/local/opencascade/inc/BRepBndLib.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis.hxx \
+  /usr/local/opencascade/inc/ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/IGESControl_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_FinderProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForFinder.hxx \
+  /usr/local/opencascade/inc/IGESData_BasicEditor.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_Protocol.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Protocol.hxx \
+  /usr/local/opencascade/inc/Interface_GeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_NodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GeneralModule.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GlobalNodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/IGESData_SpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_NodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESEntity.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_SpecificModule.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_GlobalNodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/STEPControl_Writer.hxx \
+  /usr/local/opencascade/inc/STEPControl_StepModelType.hxx \
+  /usr/local/opencascade/inc/StlAPI_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_StlMesh_Mesh.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeTolerance.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_DataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_Fuse.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_BooleanOperation.hxx \
+  /usr/local/opencascade/inc/BOP_Operation.hxx \
+  /usr/local/opencascade/inc/BOPTools_PDSFiller.hxx \
+  /usr/local/opencascade/inc/BOP_PBuilder.hxx \
+  /usr/local/opencascade/inc/Handle_BOP_HistoryCollector.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.hxx \
+  /usr/local/opencascade/inc/BRepCheck_DataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_Result.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_DataMapNodeOfDataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.lxx \
+  /usr/local/opencascade/inc/BRepLib.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Plane.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_ElementarySurface.hxx \
+  /usr/local/opencascade/inc/ShapeFix.hxx \
+  /usr/local/opencascade/inc/ShapeFix_FixSmallFace.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_FixSmallFace.hxx
+OCCFace.o: OCCFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
+  SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
+  SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
+  ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h OCCVertex.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  OCCIncludes.h /usr/local/opencascade/inc/config.h \
+  /usr/local/opencascade/inc/BRep_Tool.hxx \
+  /usr/local/opencascade/inc/Standard_Boolean.hxx \
+  /usr/local/opencascade/inc/Standard_TypeDef.hxx \
+  /usr/local/opencascade/inc/Standard_Macro.hxx \
+  /usr/local/opencascade/inc/Standard_Stream.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Surface.hxx \
+  /usr/local/opencascade/inc/Standard.hxx \
+  /usr/local/opencascade/inc/Standard_Address.hxx \
+  /usr/local/opencascade/inc/Standard_Integer.hxx \
+  /usr/local/opencascade/inc/Standard_values.h \
+  /usr/local/opencascade/inc/Standard_OStream.hxx \
+  /usr/local/opencascade/inc/Standard_CString.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_PrimitiveTypes.hxx \
+  /usr/local/opencascade/inc/Standard_Real.hxx \
+  /usr/local/opencascade/inc/Standard_Character.hxx \
+  /usr/local/opencascade/inc/Standard_ctype.hxx \
+  /usr/local/opencascade/inc/Standard_ExtCharacter.hxx \
+  /usr/local/opencascade/inc/Standard_ExtString.hxx \
+  /usr/local/opencascade/inc/Standard_Storable.hxx \
+  /usr/local/opencascade/inc/Standard_Transient_proto.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon3D.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon2D.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_PolygonOnTriangulation.hxx \
+  /usr/local/opencascade/inc/GeomAbs_Shape.hxx \
+  /usr/local/opencascade/inc/Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_Type.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Type.hxx \
+  /usr/local/opencascade/inc/Standard_KindOfType.hxx \
+  /usr/local/opencascade/inc/Standard_Type.lxx \
+  /usr/local/opencascade/inc/Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Geom_Surface.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPS.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_SurfacePtr.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElS.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.lxx /usr/local/opencascade/inc/gp.hxx \
+  /usr/local/opencascade/inc/gp.lxx /usr/local/opencascade/inc/gp_Mat.hxx \
+  /usr/local/opencascade/inc/gp_Mat.lxx \
+  /usr/local/opencascade/inc/Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_SStream.hxx \
+  /usr/local/opencascade/inc/Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.lxx \
+  /usr/local/opencascade/inc/Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.lxx \
+  /usr/local/opencascade/inc/gp_Trsf.hxx \
+  /usr/local/opencascade/inc/gp_TrsfForm.hxx \
+  /usr/local/opencascade/inc/gp_Trsf.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.lxx \
+  /usr/local/opencascade/inc/gp_XY.hxx \
+  /usr/local/opencascade/inc/gp_XY.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.lxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.hxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec2d.hxx \
+  /usr/local/opencascade/inc/gp_Vec2d.lxx \
+  /usr/local/opencascade/inc/gp_Dir2d.hxx \
+  /usr/local/opencascade/inc/gp_Dir2d.lxx \
+  /usr/local/opencascade/inc/gp_Ax2d.hxx \
+  /usr/local/opencascade/inc/gp_Ax2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec.hxx \
+  /usr/local/opencascade/inc/gp_Vec.lxx \
+  /usr/local/opencascade/inc/gp_Dir.hxx \
+  /usr/local/opencascade/inc/gp_Dir.lxx \
+  /usr/local/opencascade/inc/gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Handle_gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.lxx \
+  /usr/local/opencascade/inc/Extrema_GenExtPS.hxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray2OfPnt.hxx \
+  /usr/local/opencascade/inc/Extrema_FuncExtPS.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfReal.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.lxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_SeqNode.hxx \
+  /usr/local/opencascade/inc/TCollection_Sequence.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/math_FunctionSetWithDerivatives.hxx \
+  /usr/local/opencascade/inc/math_FunctionSet.hxx \
+  /usr/local/opencascade/inc/GeomAbs_SurfaceType.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/Quantity_Parameter.hxx \
+  /usr/local/opencascade/inc/Quantity_Length.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElC.hxx \
+  /usr/local/opencascade/inc/Extrema_POnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_Point.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_EPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_PCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/math_FunctionWithDerivative.hxx \
+  /usr/local/opencascade/inc/math_Function.hxx \
+  /usr/local/opencascade/inc/GeomAbs_CurveType.hxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.lxx \
+  /usr/local/opencascade/inc/BRepTools.hxx \
+  /usr/local/opencascade/inc/Standard_IStream.hxx \
+  /usr/local/opencascade/inc/TopExp.hxx \
+  /usr/local/opencascade/inc/TopAbs_ShapeEnum.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.hxx \
+  /usr/local/opencascade/inc/TopLoc_SListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_SListNodeOfSListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/TCollection_SList.lxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_Datum3D.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.lxx \
+  /usr/local/opencascade/inc/TopLoc_ItemLocation.hxx \
+  /usr/local/opencascade/inc/TopLoc_TrsfPtr.hxx \
+  /usr/local/opencascade/inc/TopAbs_Orientation.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_MapNode.hxx \
+  /usr/local/opencascade/inc/TCollection_List.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.lxx \
+  /usr/local/opencascade/inc/TopAbs.hxx \
+  /usr/local/opencascade/inc/TopAbs_State.hxx \
+  /usr/local/opencascade/inc/TopTools_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/BRepLib_Command.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShapeModification.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Command.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepOffsetAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/Handle_BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.hxx \
+  /usr/local/opencascade/inc/TCollection_MapNodePtr.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.lxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedMapNodeOfIndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/TopTools_MapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_StdMapNodeOfMapOfShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.lxx \
+  /usr/local/opencascade/inc/BRepLProp_SLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/TopoDS_Face.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/LProp_Status.hxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt.hxx \
+  /usr/local/opencascade/inc/TCollection_Array1.lxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/Poly_Array1OfTriangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.lxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.lxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/GProp_GProps.hxx \
+  /usr/local/opencascade/inc/BRepGProp.hxx \
+  /usr/local/opencascade/inc/TopoDS.hxx \
+  /usr/local/opencascade/inc/TopoDS.lxx \
+  /usr/local/opencascade/inc/Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/TopoDS_Solid.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.hxx \
+  /usr/local/opencascade/inc/TopExp_Stack.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.lxx \
+  /usr/local/opencascade/inc/BRep_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder3D.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Wire.hxx \
+  /usr/local/opencascade/inc/BRepTools_WireExplorer.hxx \
+  /usr/local/opencascade/inc/TopoDS_Edge.hxx \
+  /usr/local/opencascade/inc/TopoDS_Vertex.hxx \
+  /usr/local/opencascade/inc/BRepLProp_CLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurveOnSurface.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.hxx \
+  /usr/local/opencascade/inc/XSControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_XSControl_WorkSession.hxx \
+  /usr/local/opencascade/inc/Handle_IFSelect_WorkSession.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/TopTools_SequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_SequenceNodeOfSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/IFSelect_ReturnStatus.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_InterfaceModel.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintCount.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESModel.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintFail.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.lxx \
+  /usr/local/opencascade/inc/STEPControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_StepData_StepModel.hxx \
+  /usr/local/opencascade/inc/IGESToBRep_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_IGESToBRep_Actor.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfTransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_TransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Handle_MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.lxx \
+  /usr/local/opencascade/inc/Interface_ParamType.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HArray1OfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfInteger.hxx \
+  /usr/local/opencascade/inc/Interface_StaticSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Interface_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/Interface_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueType.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HExtendedString.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.lxx \
+  /usr/local/opencascade/inc/MoniTool_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfHAsciiString.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtCC.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.lxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.hxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.lxx \
+  /usr/local/opencascade/inc/ShapeUpgrade_ShellSewing.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_BasicMsgRegistrator.hxx \
+  /usr/local/opencascade/inc/Message_Gravity.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.lxx \
+  /usr/local/opencascade/inc/Precision.hxx \
+  /usr/local/opencascade/inc/Precision.lxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Edge.hxx \
+  /usr/local/opencascade/inc/ShapeExtend_Status.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Compound.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.lxx \
+  /usr/local/opencascade/inc/ShapeExtend.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_HSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.lxx \
+  /usr/local/opencascade/inc/BRepMesh.hxx \
+  /usr/local/opencascade/inc/BRepMesh_IncrementalMesh.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_FastDiscret.hxx \
+  /usr/local/opencascade/inc/BRepMesh_DataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_DataMapNodeOfDataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.lxx \
+  /usr/local/opencascade/inc/BRepBndLib.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis.hxx \
+  /usr/local/opencascade/inc/ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/IGESControl_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_FinderProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForFinder.hxx \
+  /usr/local/opencascade/inc/IGESData_BasicEditor.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_Protocol.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Protocol.hxx \
+  /usr/local/opencascade/inc/Interface_GeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_NodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GeneralModule.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GlobalNodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/IGESData_SpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_NodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESEntity.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_SpecificModule.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_GlobalNodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/STEPControl_Writer.hxx \
+  /usr/local/opencascade/inc/STEPControl_StepModelType.hxx \
+  /usr/local/opencascade/inc/StlAPI_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_StlMesh_Mesh.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeTolerance.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_DataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_Fuse.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_BooleanOperation.hxx \
+  /usr/local/opencascade/inc/BOP_Operation.hxx \
+  /usr/local/opencascade/inc/BOPTools_PDSFiller.hxx \
+  /usr/local/opencascade/inc/BOP_PBuilder.hxx \
+  /usr/local/opencascade/inc/Handle_BOP_HistoryCollector.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.hxx \
+  /usr/local/opencascade/inc/BRepCheck_DataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_Result.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_DataMapNodeOfDataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.lxx \
+  /usr/local/opencascade/inc/BRepLib.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Plane.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_ElementarySurface.hxx \
+  /usr/local/opencascade/inc/ShapeFix.hxx \
+  /usr/local/opencascade/inc/ShapeFix_FixSmallFace.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_FixSmallFace.hxx OCCEdge.h \
+  OCCFace.h ../Common/Message.h
+OCCRegion.o: OCCRegion.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
+  SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h GEdge.h \
+  SVector3.h SPoint2.h MElement.h MEdge.h ../Common/Hash.h MFace.h \
+  ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
+  ExtrudeParams.h GFace.h GEdgeLoop.h Pair.h GRegion.h \
+  ../Common/SmoothNormals.h OCCVertex.h ../Mesh/Mesh.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  gmshRegion.h Geo.h ../Mesh/Create.h ../Mesh/Vertex.h ../Mesh/Mesh.h
-OCCVertex.o: OCCVertex.cpp
-OCCEdge.o: OCCEdge.cpp
-OCCFace.o: OCCFace.cpp
-OCCRegion.o: OCCRegion.cpp
+  OCCIncludes.h /usr/local/opencascade/inc/config.h \
+  /usr/local/opencascade/inc/BRep_Tool.hxx \
+  /usr/local/opencascade/inc/Standard_Boolean.hxx \
+  /usr/local/opencascade/inc/Standard_TypeDef.hxx \
+  /usr/local/opencascade/inc/Standard_Macro.hxx \
+  /usr/local/opencascade/inc/Standard_Stream.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Surface.hxx \
+  /usr/local/opencascade/inc/Standard.hxx \
+  /usr/local/opencascade/inc/Standard_Address.hxx \
+  /usr/local/opencascade/inc/Standard_Integer.hxx \
+  /usr/local/opencascade/inc/Standard_values.h \
+  /usr/local/opencascade/inc/Standard_OStream.hxx \
+  /usr/local/opencascade/inc/Standard_CString.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_PrimitiveTypes.hxx \
+  /usr/local/opencascade/inc/Standard_Real.hxx \
+  /usr/local/opencascade/inc/Standard_Character.hxx \
+  /usr/local/opencascade/inc/Standard_ctype.hxx \
+  /usr/local/opencascade/inc/Standard_ExtCharacter.hxx \
+  /usr/local/opencascade/inc/Standard_ExtString.hxx \
+  /usr/local/opencascade/inc/Standard_Storable.hxx \
+  /usr/local/opencascade/inc/Standard_Transient_proto.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon3D.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_Polygon2D.hxx \
+  /usr/local/opencascade/inc/Handle_Poly_PolygonOnTriangulation.hxx \
+  /usr/local/opencascade/inc/GeomAbs_Shape.hxx \
+  /usr/local/opencascade/inc/Geom_Curve.hxx \
+  /usr/local/opencascade/inc/Geom_Geometry.hxx \
+  /usr/local/opencascade/inc/MMgt_TShared.hxx \
+  /usr/local/opencascade/inc/Standard_Transient.hxx \
+  /usr/local/opencascade/inc/Standard_Type.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Type.hxx \
+  /usr/local/opencascade/inc/Standard_KindOfType.hxx \
+  /usr/local/opencascade/inc/Standard_Type.lxx \
+  /usr/local/opencascade/inc/Geom2d_Curve.hxx \
+  /usr/local/opencascade/inc/Geom2d_Geometry.hxx \
+  /usr/local/opencascade/inc/Geom_Surface.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPS.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_SurfacePtr.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElS.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.hxx \
+  /usr/local/opencascade/inc/gp_XYZ.lxx /usr/local/opencascade/inc/gp.hxx \
+  /usr/local/opencascade/inc/gp.lxx /usr/local/opencascade/inc/gp_Mat.hxx \
+  /usr/local/opencascade/inc/gp_Mat.lxx \
+  /usr/local/opencascade/inc/Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_OutOfRange.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_SStream.hxx \
+  /usr/local/opencascade/inc/Standard_RangeError.hxx \
+  /usr/local/opencascade/inc/Standard_DomainError.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.hxx \
+  /usr/local/opencascade/inc/Standard_Failure.lxx \
+  /usr/local/opencascade/inc/Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_ConstructionError.hxx \
+  /usr/local/opencascade/inc/gp_Pnt.lxx \
+  /usr/local/opencascade/inc/gp_Trsf.hxx \
+  /usr/local/opencascade/inc/gp_TrsfForm.hxx \
+  /usr/local/opencascade/inc/gp_Trsf.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.hxx \
+  /usr/local/opencascade/inc/gp_Mat2d.lxx \
+  /usr/local/opencascade/inc/gp_XY.hxx \
+  /usr/local/opencascade/inc/gp_XY.lxx \
+  /usr/local/opencascade/inc/gp_Trsf2d.lxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.hxx \
+  /usr/local/opencascade/inc/gp_Pnt2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec2d.hxx \
+  /usr/local/opencascade/inc/gp_Vec2d.lxx \
+  /usr/local/opencascade/inc/gp_Dir2d.hxx \
+  /usr/local/opencascade/inc/gp_Dir2d.lxx \
+  /usr/local/opencascade/inc/gp_Ax2d.hxx \
+  /usr/local/opencascade/inc/gp_Ax2d.lxx \
+  /usr/local/opencascade/inc/gp_Vec.hxx \
+  /usr/local/opencascade/inc/gp_Vec.lxx \
+  /usr/local/opencascade/inc/gp_Dir.hxx \
+  /usr/local/opencascade/inc/gp_Dir.lxx \
+  /usr/local/opencascade/inc/gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Handle_gp_VectorWithNullMagnitude.hxx \
+  /usr/local/opencascade/inc/Extrema_POnSurf.lxx \
+  /usr/local/opencascade/inc/Extrema_GenExtPS.hxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray2OfPnt.hxx \
+  /usr/local/opencascade/inc/Extrema_FuncExtPS.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfReal.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.hxx \
+  /usr/local/opencascade/inc/TCollection_BaseSequence.lxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_SeqNode.hxx \
+  /usr/local/opencascade/inc/TCollection_Sequence.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnSurf.hxx \
+  /usr/local/opencascade/inc/math_FunctionSetWithDerivatives.hxx \
+  /usr/local/opencascade/inc/math_FunctionSet.hxx \
+  /usr/local/opencascade/inc/GeomAbs_SurfaceType.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineSurface.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/Quantity_Parameter.hxx \
+  /usr/local/opencascade/inc/Quantity_Length.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnSurf.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtPElC.hxx \
+  /usr/local/opencascade/inc/Extrema_POnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_Point.lxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfPOnCurv.hxx \
+  /usr/local/opencascade/inc/Extrema_EPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Extrema_PCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx \
+  /usr/local/opencascade/inc/math_FunctionWithDerivative.hxx \
+  /usr/local/opencascade/inc/math_Function.hxx \
+  /usr/local/opencascade/inc/GeomAbs_CurveType.hxx \
+  /usr/local/opencascade/inc/Extrema_SequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/Handle_Extrema_SequenceNodeOfSequenceOfBoolean.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Adaptor3d_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BezierCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BoundedCurve.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_BSplineCurve.hxx \
+  /usr/local/opencascade/inc/GeomAdaptor_Curve.lxx \
+  /usr/local/opencascade/inc/GeomAPI_ProjectPointOnCurve.lxx \
+  /usr/local/opencascade/inc/BRepTools.hxx \
+  /usr/local/opencascade/inc/Standard_IStream.hxx \
+  /usr/local/opencascade/inc/TopExp.hxx \
+  /usr/local/opencascade/inc/TopAbs_ShapeEnum.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeVertex.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.hxx \
+  /usr/local/opencascade/inc/TopLoc_SListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_SListNodeOfSListOfItemLocation.hxx \
+  /usr/local/opencascade/inc/TCollection_SList.lxx \
+  /usr/local/opencascade/inc/Handle_TopLoc_Datum3D.hxx \
+  /usr/local/opencascade/inc/TopLoc_Location.lxx \
+  /usr/local/opencascade/inc/TopLoc_ItemLocation.hxx \
+  /usr/local/opencascade/inc/TopLoc_TrsfPtr.hxx \
+  /usr/local/opencascade/inc/TopAbs_Orientation.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shape.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.hxx \
+  /usr/local/opencascade/inc/TopoDS_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopoDS_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_MapNode.hxx \
+  /usr/local/opencascade/inc/TCollection_List.lxx \
+  /usr/local/opencascade/inc/TopoDS_TShape.lxx \
+  /usr/local/opencascade/inc/TopAbs.hxx \
+  /usr/local/opencascade/inc/TopAbs_State.hxx \
+  /usr/local/opencascade/inc/TopTools_ListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_ListNodeOfListOfShape.hxx \
+  /usr/local/opencascade/inc/BRepLib_Command.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShapeModification.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Command.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeShell.hxx \
+  /usr/local/opencascade/inc/BRepLib_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_ShellError.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepLib_MakeSolid.hxx \
+  /usr/local/opencascade/inc/BRepOffsetAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/Handle_BRepBuilderAPI_Sewing.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.hxx \
+  /usr/local/opencascade/inc/TCollection_MapNodePtr.hxx \
+  /usr/local/opencascade/inc/TCollection_BasicMap.lxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedMapNodeOfIndexedMapOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_IndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_IndexedDataMapNodeOfIndexedDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeShape.hxx \
+  /usr/local/opencascade/inc/TopTools_DataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_DataMapNodeOfDataMapOfShapeListOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/TopTools_MapOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_StdMapNodeOfMapOfShape.hxx \
+  /usr/local/opencascade/inc/BRepBuilderAPI_Sewing.lxx \
+  /usr/local/opencascade/inc/BRepLProp_SLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.hxx \
+  /usr/local/opencascade/inc/TopoDS_Face.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Surface.lxx \
+  /usr/local/opencascade/inc/LProp_Status.hxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.hxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt.hxx \
+  /usr/local/opencascade/inc/TCollection_Array1.lxx \
+  /usr/local/opencascade/inc/Handle_TColgp_HArray1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/Poly_Array1OfTriangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.hxx \
+  /usr/local/opencascade/inc/Poly_Triangle.lxx \
+  /usr/local/opencascade/inc/Poly_Triangulation.lxx \
+  /usr/local/opencascade/inc/TColgp_Array1OfPnt2d.hxx \
+  /usr/local/opencascade/inc/GProp_GProps.hxx \
+  /usr/local/opencascade/inc/BRepGProp.hxx \
+  /usr/local/opencascade/inc/TopoDS.hxx \
+  /usr/local/opencascade/inc/TopoDS.lxx \
+  /usr/local/opencascade/inc/Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/Handle_Standard_TypeMismatch.hxx \
+  /usr/local/opencascade/inc/TopoDS_Solid.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.hxx \
+  /usr/local/opencascade/inc/TopExp_Stack.hxx \
+  /usr/local/opencascade/inc/TopExp_Explorer.lxx \
+  /usr/local/opencascade/inc/BRep_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder3D.hxx \
+  /usr/local/opencascade/inc/TopoDS_Builder.hxx \
+  /usr/local/opencascade/inc/TopoDS_Wire.hxx \
+  /usr/local/opencascade/inc/BRepTools_WireExplorer.hxx \
+  /usr/local/opencascade/inc/TopoDS_Edge.hxx \
+  /usr/local/opencascade/inc/TopoDS_Vertex.hxx \
+  /usr/local/opencascade/inc/BRepLProp_CLProps.hxx \
+  /usr/local/opencascade/inc/BRepAdaptor_Curve.hxx \
+  /usr/local/opencascade/inc/Handle_Adaptor3d_HCurveOnSurface.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.hxx \
+  /usr/local/opencascade/inc/XSControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_XSControl_WorkSession.hxx \
+  /usr/local/opencascade/inc/Handle_IFSelect_WorkSession.hxx \
+  /usr/local/opencascade/inc/TColStd_SequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_SequenceNodeOfSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/TopTools_SequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_SequenceNodeOfSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/IFSelect_ReturnStatus.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_InterfaceModel.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfTransient.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintCount.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESModel.hxx \
+  /usr/local/opencascade/inc/IFSelect_PrintFail.hxx \
+  /usr/local/opencascade/inc/IGESControl_Reader.lxx \
+  /usr/local/opencascade/inc/STEPControl_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_StepData_StepModel.hxx \
+  /usr/local/opencascade/inc/IGESToBRep_Reader.hxx \
+  /usr/local/opencascade/inc/Handle_IGESToBRep_Actor.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfTransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ActorOfProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_TransientProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForTransient.hxx \
+  /usr/local/opencascade/inc/Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Static.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Handle_MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.hxx \
+  /usr/local/opencascade/inc/TCollection_AsciiString.lxx \
+  /usr/local/opencascade/inc/Interface_ParamType.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HArray1OfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfInteger.hxx \
+  /usr/local/opencascade/inc/Interface_StaticSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Interface_TypedValue.hxx \
+  /usr/local/opencascade/inc/Interface_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/Interface_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/MoniTool_TypedValue.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueType.hxx \
+  /usr/local/opencascade/inc/MoniTool_ValueInterpret.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_TCollection_HExtendedString.hxx \
+  /usr/local/opencascade/inc/TCollection_HAsciiString.lxx \
+  /usr/local/opencascade/inc/MoniTool_ValueSatisfies.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfAsciiString.hxx \
+  /usr/local/opencascade/inc/Handle_Dico_DictionaryOfTransient.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfHAsciiString.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.hxx \
+  /usr/local/opencascade/inc/Extrema_ExtCC.hxx \
+  /usr/local/opencascade/inc/GeomAPI_ExtremaCurveCurve.lxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.hxx \
+  /usr/local/opencascade/inc/Standard_ErrorHandler.lxx \
+  /usr/local/opencascade/inc/ShapeUpgrade_ShellSewing.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shape.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_BasicMsgRegistrator.hxx \
+  /usr/local/opencascade/inc/Message_Gravity.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Root.lxx \
+  /usr/local/opencascade/inc/Precision.hxx \
+  /usr/local/opencascade/inc/Precision.lxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Edge.hxx \
+  /usr/local/opencascade/inc/ShapeExtend_Status.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shape.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Solid.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Shell.hxx \
+  /usr/local/opencascade/inc/TopoDS_Compound.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Shell.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Surface.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Face.lxx \
+  /usr/local/opencascade/inc/ShapeExtend.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeExtend_WireData.hxx \
+  /usr/local/opencascade/inc/Handle_TopTools_HSequenceOfShape.hxx \
+  /usr/local/opencascade/inc/Handle_TColStd_HSequenceOfInteger.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_Wire.lxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_Wireframe.hxx \
+  /usr/local/opencascade/inc/ShapeFix_Wireframe.lxx \
+  /usr/local/opencascade/inc/BRepMesh.hxx \
+  /usr/local/opencascade/inc/BRepMesh_IncrementalMesh.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_FastDiscret.hxx \
+  /usr/local/opencascade/inc/BRepMesh_DataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Handle_BRepMesh_DataMapNodeOfDataMapOfShapeReal.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.hxx \
+  /usr/local/opencascade/inc/Bnd_Box.lxx \
+  /usr/local/opencascade/inc/BRepBndLib.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis.hxx \
+  /usr/local/opencascade/inc/ShapeBuild_ReShape.hxx \
+  /usr/local/opencascade/inc/BRepTools_ReShape.hxx \
+  /usr/local/opencascade/inc/IGESControl_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_FinderProcess.hxx \
+  /usr/local/opencascade/inc/Handle_Transfer_ProcessForFinder.hxx \
+  /usr/local/opencascade/inc/IGESData_BasicEditor.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_Protocol.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_Protocol.hxx \
+  /usr/local/opencascade/inc/Interface_GeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_NodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GeneralModule.hxx \
+  /usr/local/opencascade/inc/Handle_Interface_GlobalNodeOfGeneralLib.hxx \
+  /usr/local/opencascade/inc/IGESData_SpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_NodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_IGESEntity.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_SpecificModule.hxx \
+  /usr/local/opencascade/inc/Handle_IGESData_GlobalNodeOfSpecificLib.hxx \
+  /usr/local/opencascade/inc/STEPControl_Writer.hxx \
+  /usr/local/opencascade/inc/STEPControl_StepModelType.hxx \
+  /usr/local/opencascade/inc/StlAPI_Writer.hxx \
+  /usr/local/opencascade/inc/Handle_StlMesh_Mesh.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeTolerance.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_ShapeContents.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.hxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_CheckSmallFace.lxx \
+  /usr/local/opencascade/inc/ShapeAnalysis_DataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_Fuse.hxx \
+  /usr/local/opencascade/inc/BRepAlgoAPI_BooleanOperation.hxx \
+  /usr/local/opencascade/inc/BOP_Operation.hxx \
+  /usr/local/opencascade/inc/BOPTools_PDSFiller.hxx \
+  /usr/local/opencascade/inc/BOP_PBuilder.hxx \
+  /usr/local/opencascade/inc/Handle_BOP_HistoryCollector.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.hxx \
+  /usr/local/opencascade/inc/BRepCheck_DataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_Result.hxx \
+  /usr/local/opencascade/inc/Handle_BRepCheck_DataMapNodeOfDataMapOfShapeResult.hxx \
+  /usr/local/opencascade/inc/BRepCheck_Analyzer.lxx \
+  /usr/local/opencascade/inc/BRepLib.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_Plane.hxx \
+  /usr/local/opencascade/inc/Handle_Geom_ElementarySurface.hxx \
+  /usr/local/opencascade/inc/ShapeFix.hxx \
+  /usr/local/opencascade/inc/ShapeFix_FixSmallFace.hxx \
+  /usr/local/opencascade/inc/Handle_ShapeFix_FixSmallFace.hxx OCCEdge.h \
+  OCCFace.h OCCRegion.h ../Common/Message.h
 SVector3.o: SVector3.cpp SVector3.h SPoint3.h
 SBoundingBox3d.o: SBoundingBox3d.cpp SBoundingBox3d.h SPoint3.h
 projectionFace.o: projectionFace.cpp projectionFace.h GFace.h GPoint.h \
   GEntity.h Range.h SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h \
-  MElement.h MVertex.h MEdge.h SVector3.h ../Common/Hash.h MFace.h \
-  ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h SPoint2.h \
-  Pair.h ExtrudeParams.h
+  GEdgeLoop.h GEdge.h GVertex.h MVertex.h SVector3.h SPoint2.h MElement.h \
+  MEdge.h ../Common/Hash.h MFace.h ../Numeric/Numeric.h \
+  ../Common/Context.h ../DataStr/List.h ExtrudeParams.h Pair.h
 ExtractContour.o: ExtractContour.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp
index 7d3cb53b1f6b86172a8681577f97aae153925c8b..87c40be98005e244be23c0352607f51bc60adcd1 100644
--- a/Geo/OCCEdge.cpp
+++ b/Geo/OCCEdge.cpp
@@ -1,4 +1,4 @@
-// $Id: OCCEdge.cpp,v 1.4 2006-11-15 20:46:46 remacle Exp $
+// $Id: OCCEdge.cpp,v 1.5 2006-11-16 18:32:41 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -21,12 +21,17 @@
 
 #if defined(HAVE_OCC)
 #include "GModel.h"
+#include "Message.h"
 #include "OCCEdge.h"
 
 OCCEdge::OCCEdge(GModel *model, TopoDS_Edge edge, int num, GVertex *v1, GVertex *v2)
   : GEdge(model, num, v1, v2), c(edge)
 {
-  curve = BRep_Tool::Curve(edge, s0, s1);
+  curve = BRep_Tool::Curve(c, s0, s1);
+  if (curve.IsNull())
+    {
+      Msg(WARNING,"OCC Curve %d is not a 3D curve",tag());
+    }
 }
 
 Range<double> OCCEdge::parBounds(int i) const
@@ -38,8 +43,16 @@ Range<double> OCCEdge::parBounds(int i) const
 
 GPoint OCCEdge::point(double par) const
 {
-  gp_Pnt pnt = curve->Value (par);
-  return GPoint(pnt.X(),pnt.Y(),pnt.Z());
+  double s0,s1;  
+  if (!curve.IsNull())
+    {
+      gp_Pnt pnt = curve->Value (par);
+      return GPoint(pnt.X(),pnt.Y(),pnt.Z());
+    }
+  else
+    {
+      return GPoint(0,0,0);
+    }
 }
 
 GPoint OCCEdge::closestPoint(const SPoint3 & qp)
@@ -54,8 +67,7 @@ int OCCEdge::containsParam(double pt) const
 }
 
 SVector3 OCCEdge::firstDer(double par) const
-{
-  
+{  
   BRepAdaptor_Curve brepc(c);
   BRepLProp_CLProps prop(brepc, 1, 1e-5);
   prop.SetParameter (par);
diff --git a/Geo/OCCEdge.h b/Geo/OCCEdge.h
index a4d3d94bbacdff053d736f4a1f5dc6554b699433..d373b4c8953413822c78cdbb4abe823fd016b302 100644
--- a/Geo/OCCEdge.h
+++ b/Geo/OCCEdge.h
@@ -28,8 +28,9 @@
 class OCCEdge : public GEdge {
  protected:
   TopoDS_Edge c;
-  Handle(Geom_Curve) curve;
   double s0,s1;
+  Handle(Geom_Curve) curve;
+  Handle(Geom2d_Curve) curve2d;
 
  public:
   OCCEdge(GModel *model, TopoDS_Edge _e, int num, GVertex *v1, GVertex *v2);
@@ -52,6 +53,7 @@ class OCCEdge : public GEdge {
   virtual double parFromPoint(const SPoint3 &pt) const;
   virtual int minimumMeshSegments () const;
   virtual int minimumDrawSegments () const;
+  bool is3D() const {return !curve.IsNull();}
 };
 
 #endif
diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp
index 867c7d68c270dd99071caf4bfede5504de7e76fd..c5b01a1b496fcd7dcc4475e972937536832f2c65 100644
--- a/Geo/OCCFace.cpp
+++ b/Geo/OCCFace.cpp
@@ -1,4 +1,4 @@
-// $Id: OCCFace.cpp,v 1.5 2006-11-15 20:46:46 remacle Exp $
+// $Id: OCCFace.cpp,v 1.6 2006-11-16 18:32:41 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -17,10 +17,11 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA.
 // 
-// Please report all bugs and problems to <OCC@geuz.org>.
+// Please report all bugs and problems to <gmsh@geuz.org>.
 
 #if defined(HAVE_OCC)
 #include "GModel.h"
+#include "GEdgeLoop.h"
 #include "OCCVertex.h"
 #include "OCCEdge.h"
 #include "OCCFace.h"
@@ -35,64 +36,27 @@ OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape
       TopoDS_Shape wire = exp2.Current();
       Msg(INFO,"OCC Face %d - New Wire",num);
       std::list<GEdge*> l_wire;
-      std::set<GEdge*> testPeriodic;
       for (exp3.Init (wire, TopAbs_EDGE); exp3.More(); exp3.Next())
 	{	  
 	  TopoDS_Edge edge = TopoDS::Edge (exp3.Current());
 	  int index = emap.FindIndex(edge);
 	  GEdge *e = m->edgeByTag(index);
 	  if(!e) throw;
-	  if (testPeriodic.find(e) !=testPeriodic.end()){
-	    _periodic = true;
-	    edges_taken_twice.insert(e);
-	  }
-	  else testPeriodic.insert(e);
-	  l_edges.push_back(e);
 	  l_wire.push_back(e);
 	  e->addFace(this);
 	}      
-      if (l_wire.size() == 1)l_dirs.push_back(1);
-      else if (!_periodic)
+
+      GEdgeLoop el (l_wire);
+
+      for (GEdgeLoop::citer it = el.begin() ; it != el.end() ; ++it)
 	{
-	  GVertex *last;
-	  std::list<GEdge*>::iterator it = l_wire.begin();
-	  GEdge *e1 = *it;	  
-	  ++it;
-	  GEdge *e2 = *it;
-
-	  if (e1->getEndVertex() == e2->getEndVertex() ||e1->getEndVertex() == e2->getBeginVertex())
-	    {
-	      last = e1->getEndVertex();
-	      l_dirs.push_back(1);
-	      Msg(INFO,"OCC Face %d - Edge %d (%d,%d) dir 1",num,e1->tag(),e1->getBeginVertex()->tag(),e1->getEndVertex()->tag());
-	    }
-	  else if (e1->getBeginVertex() == e2->getEndVertex() ||e1->getBeginVertex() == e2->getBeginVertex())
-	    {
-	      last = e1->getBeginVertex();
-	      l_dirs.push_back(-1);
-	      Msg(INFO,"OCC Face %d - Edge %d (%d,%d) dir -1",num,e1->tag(),e1->getBeginVertex()->tag(),e1->getEndVertex()->tag());
-	    }
-	  for ( ; it != l_wire.end() ; ++it)
-	    {
-	      GEdge *e = *it;
-	      if ( last == e->getBeginVertex())
-		{
-		  l_dirs.push_back(1);
-		  last = e->getEndVertex();
-		  Msg(INFO,"OCC Face %d - Edge %d (%d,%d) dir 1",num,e->tag(),e->getBeginVertex()->tag(),e->getEndVertex()->tag());
-		}
-	      else if (last == e->getEndVertex())
-		{
-		  l_dirs.push_back(-1);
-		  last = e->getBeginVertex();
-		  Msg(INFO,"OCC Face %d - Edge %d (%d,%d) dir -1",num,e->tag(),e->getBeginVertex()->tag(),e->getEndVertex()->tag());
-		}
-	      else
-		{
-		  Msg(GERROR,"Incoherent surface %d Edge %d (%d,%d) ",num,e->tag(),e->getBeginVertex()->tag(),e->getEndVertex()->tag());
-		}
-	    }
-	}      
+	  if(!it->ge->is3D())_periodic = true;
+	  if (el.count (it->ge) > 1)_periodic = true;
+	  l_edges.push_back(it->ge);
+	  l_dirs.push_back(it->_sign);
+	}
+      
+      edgeLoops.push_back(el);
     }
 
   Msg(INFO,"OCC Face %d with %d edges",num,l_edges.size());
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index d4ca9908d57c28b83bba394f133fdb7d304e38e3..95f58c506e47b4c3e68ee67291dc7f4e56b4d117 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGEdge.cpp,v 1.15 2006-11-15 20:46:46 remacle Exp $
+// $Id: meshGEdge.cpp,v 1.16 2006-11-16 18:32:41 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -139,6 +139,7 @@ void deMeshGEdge :: operator() (GEdge *ge)
 void meshGEdge :: operator() (GEdge *ge) 
 {  
   if(ge->geomType() == GEntity::DiscreteCurve) return;
+  if(!ge->is3D()) return;
 
   // Send a messsage to the GMSH environment
   Msg(INFO, "Meshing curve %d", ge->tag());