diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp
index d18a3275a221374d18a4045972378cda871c5506..0c138c10d29af91614a47d2d20c503f520ff2bdb 100644
--- a/Geo/GEdge.cpp
+++ b/Geo/GEdge.cpp
@@ -1,4 +1,4 @@
-// $Id: GEdge.cpp,v 1.16 2006-10-12 01:35:32 geuzaine Exp $
+// $Id: GEdge.cpp,v 1.17 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -119,3 +119,30 @@ SVector3 GEdge::secondDer(double par) const
   SVector3 x2 = firstDer(par+eps);
   return 500*(x2-x1);
 }
+
+double GEdge::curvature(double par) const 
+{
+  double eps1 = 1.e-3;
+  double eps2 = 1.e-3;
+
+  Range<double> r = parBounds(0);
+  if (r.low() == par) eps2 = 0;
+  if (r.high() == par) eps1 = 0;
+
+
+  SVector3 n1 = firstDer(par-eps1);
+  SVector3 n2 = firstDer(par+eps2);
+
+  GPoint P1 = point(par-eps1);
+  GPoint P2 = point(par+eps2);
+
+  double D = sqrt ( (P1.x()-P2.x())*(P1.x()-P2.x())+
+		    (P1.y()-P2.y())*(P1.y()-P2.y())+
+		    (P1.z()-P2.z())*(P1.z()-P2.z()));  
+
+  n1.normalize();
+  n2.normalize();
+  const double one_over_D = 1./D;
+  SVector3 d = one_over_D*(n2-n1);
+  return norm(d);
+}
diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index 209376b878d3ad3124a428f34744f1bec72154d4..d7396e839729ee88d434ce2fdaf0dc21ed64b7c6 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -73,6 +73,7 @@ class GEdge : public GEntity {
   // Get second derivative of edge at the given parameter.
   // Default implentation using central differences
   virtual SVector3 secondDer(double par) const ;
+  virtual double curvature (double par) const;  
 
   // Reparmaterize the point onto the given face.
   virtual SPoint2 reparamOnFace(GFace *face, double epar,int dir) const = 0;
diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index f80e5d58b72aa923ea5ff86333a1166c32560b75..fe455d84e7a9d28d1366681d47503a81a28933ab 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -1,4 +1,4 @@
-// $Id: GFace.cpp,v 1.18 2006-11-14 20:20:18 remacle Exp $
+// $Id: GFace.cpp,v 1.19 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -481,3 +481,11 @@ SPoint2 GFace::parFromPoint(const SPoint3 &p) const
 
   return SPoint2(U,V);
 }
+
+void GFace::parFromPoint(const SPoint3 &p, std::list<double> &u, std::list<double> &v ) const
+{
+  double U,V;  
+  XYZtoUV(p.x(),p.y(),p.z(),U,V,1.0);
+  u.push_back(U);
+  v.push_back(V);
+}
diff --git a/Geo/GFace.h b/Geo/GFace.h
index 53037481eaea393a3cc2a4e052522671db3f7266..c879862567fa4b2a19737ed6df0a9c8fd3d40f9a 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -28,6 +28,8 @@
 #include "Pair.h"
 #include "ExtrudeParams.h"
 
+#include <set>
+
 struct mean_plane
 {
   double plan[3][3];
@@ -41,6 +43,11 @@ 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;
+  // list of al the edges of the face
   std::list<GEdge *> l_edges;
   std::list<int> l_dirs;
   GRegion *r1, *r2;
@@ -86,7 +93,8 @@ class GFace : public GEntity
 
   // Return the parmater location on the face given a point in space
   // that is on the face.
-  virtual SPoint2 parFromPoint(const SPoint3 &) const;
+  virtual SPoint2            parFromPoint(const SPoint3 &) const;
+  virtual void               parFromPoint(const SPoint3 &, std::list<double> &u, std::list<double> &v ) const;
 
   // True if the parameter value is interior to the face.
   virtual int containsParam(const SPoint2 &pt) const = 0;
diff --git a/Geo/Makefile b/Geo/Makefile
index 145032d249c727bebef1eedb58c823e750ec463d..e70f6fe12ad733c911e8df0e12d9842737ecbcb5 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.108 2006-11-15 14:35:03 remacle Exp $
+# $Id: Makefile,v 1.109 2006-11-15 20:46:46 remacle Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -45,6 +45,7 @@ SRC = CAD.cpp \
       gmshEdge.cpp\
       gmshFace.cpp\
       gmshRegion.cpp\
+      OCCVertex.cpp\
       OCCEdge.cpp\
       OCCFace.cpp\
       OCCRegion.cpp\
@@ -144,7 +145,39 @@ GFace.o: GFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.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
+  ../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 \
@@ -195,13 +228,429 @@ GModelIO_Fourier.o: GModelIO_Fourier.cpp GModel.h GVertex.h GEntity.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
+  ../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/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 \
@@ -240,8 +689,1169 @@ gmshRegion.o: gmshRegion.cpp GModel.h GVertex.h GEntity.h Range.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
-OCCEdge.o: OCCEdge.cpp
-OCCFace.o: OCCFace.cpp
+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 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/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 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/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 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/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 \
diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp
index 611635c2ea44467f3558c4b99c43357746df16f2..7d3cb53b1f6b86172a8681577f97aae153925c8b 100644
--- a/Geo/OCCEdge.cpp
+++ b/Geo/OCCEdge.cpp
@@ -1,4 +1,4 @@
-// $Id: OCCEdge.cpp,v 1.3 2006-11-15 15:06:45 geuzaine Exp $
+// $Id: OCCEdge.cpp,v 1.4 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -75,11 +75,21 @@ GEntity::GeomType OCCEdge::geomType() const
 
 int OCCEdge::minimumMeshSegments () const
 {
-  return CTX.mesh.min_circ_points; ;
+  return 2 ;
 }
 
 int OCCEdge::minimumDrawSegments () const
 {
   return CTX.geom.circle_points;
 }
+
+double OCCEdge::curvature(double par) const 
+{
+  return GEdge::curvature(par);
+  BRepAdaptor_Curve brepc(c);
+  BRepLProp_CLProps prop(brepc, 1, 1e-5);
+  prop.SetParameter (par); 
+  printf("curvature = %12.5E\n",prop.Curvature()); 
+  return fabs(prop.Curvature());
+}
 #endif
diff --git a/Geo/OCCEdge.h b/Geo/OCCEdge.h
index 31c89d21135dde0dc15a55472aceb7e463e8b1c2..a4d3d94bbacdff053d736f4a1f5dc6554b699433 100644
--- a/Geo/OCCEdge.h
+++ b/Geo/OCCEdge.h
@@ -45,6 +45,7 @@ class OCCEdge : public GEdge {
   virtual int containsPoint(const SPoint3 &pt) const { throw; }
   virtual int containsParam(double pt) const;
   virtual SVector3 firstDer(double par) const;
+  virtual double curvature (double par) const;
   virtual SPoint2 reparamOnFace(GFace * face, double epar, int dir) const { throw; }
   ModelType getNativeType() const { return OpenCascadeModel; }
   void * getNativePtr() const { return (void*) &c; }
diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp
index 3978cab58f8099bb1fba9ef370bc96b180d647bc..867c7d68c270dd99071caf4bfede5504de7e76fd 100644
--- a/Geo/OCCFace.cpp
+++ b/Geo/OCCFace.cpp
@@ -1,4 +1,4 @@
-// $Id: OCCFace.cpp,v 1.4 2006-11-15 15:06:45 geuzaine Exp $
+// $Id: OCCFace.cpp,v 1.5 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -27,7 +27,7 @@
 #include "Message.h"
 
 OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape &emap)
-  : GFace(m, num), s(_s)
+  : GFace(m, num), s(_s),_periodic(false)
 {
   TopExp_Explorer exp0, exp01, exp1, exp2, exp3;
   for (exp2.Init (s, TopAbs_WIRE); exp2.More(); exp2.Next())
@@ -35,22 +35,28 @@ 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
+      else if (!_periodic)
 	{
 	  GVertex *last;
 	  std::list<GEdge*>::iterator it = l_wire.begin();
-	  GEdge *e1 = *it;
+	  GEdge *e1 = *it;	  
 	  ++it;
 	  GEdge *e2 = *it;
 
@@ -83,7 +89,7 @@ OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape
 		}
 	      else
 		{
-		  Msg(GERROR,"Incoherent surface %d",num);
+		  Msg(GERROR,"Incoherent surface %d Edge %d (%d,%d) ",num,e->tag(),e->getBeginVertex()->tag(),e->getEndVertex()->tag());
 		}
 	    }
 	}      
@@ -179,11 +185,36 @@ SPoint2 OCCFace::parFromPoint(const SPoint3 &qp) const
     {
       Msg(GERROR,"OCC Project Point on Surface FAIL");
       return GFace::parFromPoint(qp);
-    } 
-  pnt = proj.NearestPoint();
-  double pp[2];
-  proj.LowerDistanceParameters (pp[0], pp[1]);
-  return SPoint2(pp[0],pp[1]);
+    }   
+//   if (proj.NbPoints() != 1)
+//     {
+//       Msg(WARNING,"More than one points match the projection (%d) ", proj.NbPoints());
+//     }
+
+  double U,V;
+  proj.LowerDistanceParameters (U, V);
+  //  proj.Parameters (1,U,V);
+  return SPoint2(U,V);
+}
+
+void OCCFace::parFromPoint(const SPoint3 &qp, std::list<double> &u, std::list<double> &v ) const
+{
+  gp_Pnt pnt(qp.x(),qp.y(),qp.z());
+  GeomAPI_ProjectPointOnSurf proj(pnt, occface, umin, umax, vmin, vmax);
+  if (!proj.NbPoints())
+    {
+      Msg(GERROR,"OCC Project Point on Surface FAIL");
+      GFace::parFromPoint(qp,u,v);
+      return;
+    }   
+
+  for (int i = 1;i <= proj.NbPoints();i++)
+    {
+      double U,V;
+      proj.Parameters (i,U,V);
+      u.push_back(U);
+      v.push_back(V);
+    }
 }
 
 GEntity::GeomType OCCFace::geomType() const
@@ -191,6 +222,20 @@ GEntity::GeomType OCCFace::geomType() const
   return Unknown;
 }
 
+double OCCFace::curvature (const SPoint2 &param) const
+{
+  BRepAdaptor_Surface sf(s, Standard_True);
+  BRepLProp_SLProps prop(sf, 2, 1e-5);
+  prop.SetParameters (param.x(),param.y());
+
+  if (!prop.IsCurvatureDefined())
+    {
+      return GFace::curvature (param);
+    }
+  return std::max(fabs(prop.MinCurvature()), fabs(prop.MaxCurvature()));
+}
+
+
 int OCCFace::containsPoint(const SPoint3 &pt) const
 { 
   Msg(GERROR,"Not Done Yet ...");
diff --git a/Geo/OCCFace.h b/Geo/OCCFace.h
index 23a2153f8d3dfbc67d9a78763eef7a71eef58da8..a22397beb98d6a2056f44a7ca1eb9ddadde88232 100644
--- a/Geo/OCCFace.h
+++ b/Geo/OCCFace.h
@@ -31,7 +31,7 @@ class OCCFace : public GFace {
   TopoDS_Face s;
   Handle(Geom_Surface) occface;
   double umin, umax, vmin, vmax;
-  void buildVisTriangulation ();
+  bool _periodic;
  public:
   OCCFace(GModel *m, TopoDS_Face s, int num, TopTools_IndexedMapOfShape &emap);
 
@@ -55,13 +55,14 @@ class OCCFace : public GFace {
   virtual int geomDirection() const { return 1; }
   
   virtual bool continuous(int dim) const { return true; }
-  virtual bool periodic(int dim) const { return false; }
   virtual bool degenerate(int dim) const { return false; }
   virtual double period(int dir) const {throw;}
   ModelType getNativeType() const { return OpenCascadeModel; }
   void * getNativePtr() const { return (void*)&s; }
-  virtual bool surfPeriodic(int dim) const {throw;}
+  virtual bool surfPeriodic(int dim) const {return _periodic;}
   virtual SPoint2 parFromPoint(const SPoint3 &) const;
+  virtual void parFromPoint(const SPoint3 &, std::list<double> &u, std::list<double> &v ) const;
+  virtual double curvature(const SPoint2 &param) const;
 };
 
 #endif
diff --git a/Geo/OCCVertex.h b/Geo/OCCVertex.h
index 699284b2d13a8018a06b2f0c6cb9fac830a43d5b..817b081eb953a9f7b4fa9008cae17ceacc42876d 100644
--- a/Geo/OCCVertex.h
+++ b/Geo/OCCVertex.h
@@ -30,10 +30,12 @@
 class OCCVertex : public GVertex {
  protected:
   TopoDS_Vertex v;
-
+  mutable double max_curvature;
+  double max_curvature_of_surfaces() const;
  public:
   OCCVertex(GModel *m, int num, TopoDS_Vertex _v) : GVertex(m, num), v(_v)
   {
+    max_curvature = -1;
     mesh_vertices.push_back(new MVertex(x(), y(), z(), this));
   }
   virtual ~OCCVertex() {}
@@ -60,8 +62,11 @@ class OCCVertex : public GVertex {
   void * getNativePtr() const { return (void*) &v; }
   virtual double prescribedMeshSizeAtVertex() const { 
     SBoundingBox3d b = model()->bounds();
-    double lc = norm ( SVector3 ( b.max() , b.min() ) );
-    return lc*CTX.mesh.lc_factor; 
+    double lc = 0.1*norm ( SVector3 ( b.max() , b.min() ) ) * CTX.mesh.lc_factor;
+    double maxc = max_curvature_of_surfaces();
+    if (maxc !=0)       
+      lc = std::min (lc,6.28/(CTX.mesh.min_circ_points*maxc));
+    return lc;
   }
 };
 
diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp
index 1f1941b9b091e51bbf3f7cfdfaeea6fcaf7cd0bf..413f5d462ee4e87976da9fee49e1d08e5fce3bf9 100644
--- a/Mesh/BDS.cpp
+++ b/Mesh/BDS.cpp
@@ -1,4 +1,4 @@
-// $Id: BDS.cpp,v 1.62 2006-09-14 15:23:29 remacle Exp $
+// $Id: BDS.cpp,v 1.63 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -39,11 +39,9 @@ void outputScalarField(std::list < BDS_Face * >t, const char *iii)
     BDS_Point *pts[4];
     (*tit)->getNodes(pts);
     fprintf(f, "ST(%g,%g,%g,%g,%g,%g,%g,%g,%g){%g,%g,%g};\n",
-            pts[0]->X, pts[0]->Y, pts[0]->Z,
-            pts[1]->X, pts[1]->Y, pts[1]->Z,
-            pts[2]->X, pts[2]->Y, pts[2]->Z,
-            pts[0]->radius(), pts[1]->radius(),
-            pts[2]->radius());
+            pts[0]->u, pts[0]->v, 0.0,
+            pts[1]->u, pts[1]->v, 0.0,
+            pts[2]->u, pts[2]->v, 0.0,(double)pts[0]->iD,(double)pts[1]->iD,(double)pts[2]->iD);
     ++tit;
   }
   fprintf(f, "};\n");
@@ -225,17 +223,23 @@ BDS_Edge *BDS_Mesh::recover_edge(int num1, int num2)
 	  e = (*it);
 	  //	  if (e->p1->iD >= 0 && e->p2->iD >= 0)Msg(INFO," %d %d %g %g - %g %g",e->p1->iD,e->p2->iD,e->p1->u,e->p1->v,e->p2->u,e->p2->v);
 	  if (!e->deleted && e->p1 != p1 && e->p1 != p2 && e->p2 != p1 && e->p2 != p2)
-	    if(Intersect_Edges_2d(e->p1->X, e->p1->Y,
-				  e->p2->X, e->p2->Y,
-				  p1->X, p1->Y,
-				  p2->X, p2->Y))
+	    if(Intersect_Edges_2d(e->p1->u, e->p1->v,
+				  e->p2->u, e->p2->v,
+				  p1->u, p1->v,
+				  p2->u, p2->v))
 	      intersected.push_back(e);	  
 	  ++it;
 	}
 
-      if (!intersected.size())
+      if (!intersected.size() || ix > 10000)
 	{
-	  return find_edge (num1, num2);
+	  BDS_Edge *eee = find_edge (num1, num2);
+	  if (!eee)
+	    {
+	      outputScalarField(triangles, "debug.pos");
+	      throw;
+	    }
+	  return eee;
 	}
       
       int ichoice = ix++ % intersected.size();
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index 92354a1e3e38027bc2a76be53e7af5a8f97f6cf3..d4ca9908d57c28b83bba394f133fdb7d304e38e3 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGEdge.cpp,v 1.14 2006-08-26 15:13:22 remacle Exp $
+// $Id: meshGEdge.cpp,v 1.15 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -45,33 +45,15 @@ double F_LC_ANALY (double xx, double yy, double zz)
   return 0.05 + .1*fabs(xx*yy) ;
 }
 
-double max_surf_curvature ( GPoint & gp )
-{
-  std::list<GFace *> faces = _myGEdge->faces();
-  std::list<GFace *>::iterator it =  faces.begin();
-  double curv = 0;
-  while (it != faces.end())
-    {
-      SPoint2 par = (*it)->parFromPoint(SPoint3 (gp.x(),gp.y(),gp.z()));
-      curv = std::max(curv, (*it)->curvature ( par ) );					
-      ++it;
-    }  
-  return curv;
-}
-
 double F_Lc_bis(double t)
 {
   //  const double nb_points_per_radius_of_curv = 2;
   GPoint point = _myGEdge -> point(t) ;      
   const double fact = (t-t_begin)/(t_end-t_begin);
-  double lc_here = lc_begin + fact * (lc_end-lc_begin);
+  double lc_here   = lc_begin + fact * (lc_end-lc_begin);
   SVector3 der  = _myGEdge -> firstDer(t) ;
   const double d      = norm(der);
 
-  //  double curv = max_surf_curvature ( point );
-  //  if (curv != 0)
-  //    lc_here = std::min( 1./(curv * nb_points_per_radius_of_curv),lc_here);
-
   if(CTX.mesh.bgmesh_type == ONFILE) {
     const double Lc = BGMXYZ(point.x(), point.y(), point.z());
     if(CTX.mesh.constrained_bgmesh)
@@ -172,8 +154,13 @@ void meshGEdge :: operator() (GEdge *ge)
   // to pass an extra argument... 
   _myGEdge = ge;
     
-  // first compute the length of the curve by integrating one
+
+  // compute bounds
   _myGEdgeBounds = ge->parBounds(0) ;
+  t_begin = _myGEdgeBounds.low();
+  t_end   = _myGEdgeBounds.high();
+  
+  // first compute the length of the curve by integrating one
   _myGEdgeLength = Integration(_myGEdgeBounds.low(), _myGEdgeBounds.high(), 
 			       F_One_bis, Points, 1.e-4);
   List_Reset(Points);
@@ -181,9 +168,6 @@ void meshGEdge :: operator() (GEdge *ge)
   lc_begin  =  _myGEdge->getBeginVertex()->prescribedMeshSizeAtVertex();
   lc_end    =  _myGEdge->getEndVertex()->prescribedMeshSizeAtVertex();
     
-  t_begin = _myGEdgeBounds.low();
-  t_end   = _myGEdgeBounds.high();
-
   // Integrate detJ/lc du 
   double a;
   int N;
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index 7cad7eeb888f81a5ccb01f4f2148b823ccebea9b..c928b98bb816ef36cfeb56890397a802d0417ac1 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGFace.cpp,v 1.17 2006-11-14 17:11:33 remacle Exp $
+// $Id: meshGFace.cpp,v 1.18 2006-11-15 20:46:46 remacle Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -751,12 +751,15 @@ void gmsh2DMeshGenerator ( GFace *gf )
 
   // mesh the domain in the parametric space -> 
   // project all points in their parametric space
+
+  Msg(DEBUG1,"Calculation of local coordinates");
   fromCartesianToParametric c2p ( gf );
   std::for_each (all_vertices.begin(),all_vertices.end(),c2p);    
 
   // compute the bounding box in parametric space
   // I do not have SBoundingBox, so I use a 3D one...
   // At the same time, number the vertices locally
+  Msg(DEBUG1,"Calculation of the bounding box");
   SBoundingBox3d bbox;
   itv = all_vertices.begin();
   int NUM = 0;
@@ -819,6 +822,7 @@ void gmsh2DMeshGenerator ( GFace *gf )
   /// At this stage the triangulation is not what we need
   ///   -) It does not necessary recover the boundaries 
   ///   -) It contains triangles outside the domain (the first edge loop is the outer one)
+  Msg(DEBUG1,"Meshing of the convex hull (%d points)",all_vertices.size());
   Make_Mesh_With_Points(&doc,doc.points,all_vertices.size()+4);
 
   // Buid a BDS_Mesh structure that is convenient for doing the actual meshing procedure
@@ -1029,7 +1033,7 @@ void meshGFace :: operator() (GFace *gf)
   Msg(STATUS2, "Meshing surface %d", gf->tag());
 
   // TEST TEST 
-  // if (gf->tag() > 5) return;
+  if (gf->surfPeriodic(2)) return;
 
   // destroy the mesh if it exists
   deMeshGFace dem;
@@ -1046,11 +1050,16 @@ void meshGFace :: operator() (GFace *gf)
   // compute loops on the fly
   // indices indicate start and end points of a loop
   // loops are not yet oriented
+  Msg(DEBUG1, "Computing edge loops");
   computeEdgeLoops(gf, points, indices);
+  Msg(DEBUG1, "Computing mean plane");
+
+
 
   // compute the mean plane, this is sometimes useful 
   gf->computeMeanPlane(points);
 
+  Msg(DEBUG1, "Generating the mesh");
   // mesh the face
   gmsh2DMeshGenerator ( gf ) ;
 
@@ -1093,7 +1102,7 @@ void orientMeshGFace::operator()(GFace *gf)
   int sign = *ori.begin();
   MEdge ref(sign > 0 ? v1 : v2, sign > 0 ? v2 : v1);
   if(shouldRevert(ref, gf->triangles) || shouldRevert(ref, gf->quadrangles)){
-    Msg(DEBUG, "Reverting orientation of mesh in face %d", gf->tag());
+    Msg(DEBUG1, "Reverting orientation of mesh in face %d", gf->tag());
     for(unsigned int i = 0; i < gf->triangles.size(); i++)
       gf->triangles[i]->revert();
     for(unsigned int i = 0; i < gf->quadrangles.size(); i++)