Salome HOME
Improve swig generation process on Windows platform.
[tools/medcoupling.git] / src / INTERP_KERNEL / InterpolationOptions.hxx
index 53655259df6db2bba97e0f7084825731d93d9ff0..4187a69d5c7e671642cf6f39aa4cd0ac4cc1b56c 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 namespace INTERP_KERNEL
 {
-  typedef enum { Triangulation, Convex, Geometric2D, PointLocator, Barycentric, BarycentricGeo2D } IntersectionType;
+  typedef enum { Triangulation, Convex, Geometric2D, PointLocator, Barycentric, BarycentricGeo2D, MappedBarycentric } IntersectionType;
   
   /*!
-   * \class InterpolationOptions
-   * Class defining the options for all interpolation algorithms.
+   * Class defining the options for all interpolation algorithms used in the \ref remapper "remapper" and
+   * in some of the \ref para-dec "DECs".
    * 
    * List of options, possible values and default values can be found on this page:
    * \ref InterpKerIntersectors
@@ -50,6 +50,7 @@ namespace INTERP_KERNEL
     //! this measure is absolute \b not relative to the cell size
     double _bounding_box_adjustment_abs ;
     double _max_distance_for_3Dsurf_intersect;
+    double _min_dot_btw_3Dsurf_intersect;
     int _orientation ;
     bool _measure_abs;
     SplittingPolicy _splitting_policy ;
@@ -65,6 +66,9 @@ namespace INTERP_KERNEL
     double getPrecision() const { return _precision; }
     void setPrecision(double p) { _precision=p; }
 
+    double getArcDetectionPrecision() const;
+    void setArcDetectionPrecision(double p);
+
     double getMedianPlane() const { return _median_plane; }
     void setMedianPlane(double mp) { _median_plane=mp; }
     
@@ -80,6 +84,9 @@ namespace INTERP_KERNEL
     double getMaxDistance3DSurfIntersect() const { return _max_distance_for_3Dsurf_intersect; }
     void setMaxDistance3DSurfIntersect(double bba) { _max_distance_for_3Dsurf_intersect=bba; }
 
+    double getMinDotBtwPlane3DSurfIntersect() const { return _min_dot_btw_3Dsurf_intersect; }
+    void setMinDotBtwPlane3DSurfIntersect(double v) { _min_dot_btw_3Dsurf_intersect=v; }
+
     int getOrientation() const { return _orientation; }
     void setOrientation(int o) { _orientation=o; }
 
@@ -110,16 +117,21 @@ namespace INTERP_KERNEL
     bool setOptionInt(const std::string& key, int value);
     bool setOptionString(const std::string& key, const std::string& value);
     std::string printOptions() const;
+  public:
+    static void CheckAndSplitInterpolationMethod(const std::string& method, std::string& srcMeth, std::string& trgMeth);
   private:
     static const double DFT_MEDIAN_PLANE;
     static const double DFT_SURF3D_ADJ_EPS;
     static const double DFT_MAX_DIST_3DSURF_INTERSECT;
+    static const double DFT_MIN_DOT_BTW_3DSURF_INTERSECT;
   public:
     static const char PRECISION_STR[];
+    static const char ARC_DETECTION_PRECISION_STR[];
     static const char MEDIANE_PLANE_STR[];
     static const char BOUNDING_BOX_ADJ_STR[];
     static const char BOUNDING_BOX_ADJ_ABS_STR[];
     static const char MAX_DISTANCE_3DSURF_INSECT_STR[];
+    static const char MIN_DOT_BTW_3DSURF_INSECT_STR[];
     static const char PRINT_LEV_STR[];
     static const char DO_ROTATE_STR[];
     static const char ORIENTATION_STR[];