Salome HOME
Missing int64 porting entry
[tools/medcoupling.git] / src / INTERP_KERNEL / PlanarIntersector.hxx
index 07986359f4f280e18756cf9a1d90d4053c4b5523..f648c7533347d2a46073ff5330055acb64ab428a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2019  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
@@ -39,30 +39,28 @@ namespace INTERP_KERNEL
     static const int MESHDIM=MyMeshType::MY_MESHDIM;
     typedef typename MyMeshType::MyConnType ConnType;
     static const NumberingPolicy numPol=MyMeshType::My_numPol;
-    typedef typename std::map<int,std::set<int> > DuplicateFacesType;
+    typedef typename std::map<ConnType,std::set<ConnType> > DuplicateFacesType;
   public:
-    //! \addtogroup InterpKerGrpIntPlan @{
-    PlanarIntersector(const MyMeshType& meshT, const MyMeshType& meshS, double dimCaracteristic, double precision, double md3DSurf, double medianPlane, bool doRotate, int orientation, int printLevel);
-    //! @}
+    PlanarIntersector(const MyMeshType& meshT, const MyMeshType& meshS, double dimCaracteristic, double precision, double md3DSurf, double minDot3DSurf, double medianPlane, bool doRotate, int orientation, int printLevel);
     virtual ~PlanarIntersector();
     void createBoundingBoxes(const MyMeshType& mesh, std::vector<double>& bbox);
     void adjustBoundingBoxes(std::vector<double>& bbox, double surf3DAdjustmentEps, double surf3DAdjustmentEpsAbs);
     inline void getElemBB(double* bb, const MyMeshType& mesh, ConnType iP, ConnType nb_nodes);
-    static int projection(double *Coords_A, double *Coords_B,
-                          int nb_NodesA, int nb_NodesB, double epsilon, double md3DSurf, double median_plane, bool do_rotate);
+    static int Projection(double *Coords_A, double *Coords_B,
+                          ConnType nb_NodesA, ConnType nb_NodesB, double epsilon, double md3DSurf, double minDot3DSurf, double median_plane, bool do_rotate);
     virtual const DuplicateFacesType* getIntersectFaces() const
     {
       return NULL;
     }
   protected :
-    int projectionThis(double *Coords_A, double *Coords_B, int nb_NodesA, int nb_NodesB);
+    int projectionThis(double *Coords_A, double *Coords_B, ConnType nb_NodesA, ConnType nb_NodesB);
     void getRealTargetCoordinates(ConnType icellT, std::vector<double>& coordsT);
     void getRealSourceCoordinates(ConnType icellS, std::vector<double>& coordsS);
-    void getRealTargetCoordinatesPermute(ConnType icellT, int offset, std::vector<double>& coordsT);
-    void getRealSourceCoordinatesPermute(ConnType icellS, int offset, std::vector<double>& coordsS);
+    void getRealTargetCoordinatesPermute(ConnType icellT, ConnType offset, std::vector<double>& coordsT);
+    void getRealSourceCoordinatesPermute(ConnType icellS, ConnType offset, std::vector<double>& coordsS);
     void getRealCoordinates(ConnType icellT, ConnType icellS, ConnType nbNodesT, ConnType nbNodesS, std::vector<double>& coordsT, std::vector<double>& coordsS, int& orientation);
     double getValueRegardingOption(double val) const;
-    static void rotate3DTriangle( double* PP1, double*PP2, double*PP3,
+    static void Rotate3DTriangle( double* PP1, double*PP2, double*PP3,
                                   TranslationRotationMatrix& rotation_matrix);
   protected:
     const ConnType *_connectT;
@@ -75,6 +73,7 @@ namespace INTERP_KERNEL
     const MyMeshType& _meshS;
     double _dim_caracteristic;
     double _max_distance_3Dsurf_intersect;
+    double _min_dot_btw_3Dsurf_intersect;
     double _precision;
     double _median_plane;
     bool _do_rotate;