Salome HOME
Bug fix: BuildIntersectCells() should no try to merge points at all. Done before.
[tools/medcoupling.git] / src / INTERP_KERNEL / CurveIntersector.hxx
old mode 100755 (executable)
new mode 100644 (file)
index f12aa15..f3d6828
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  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
@@ -41,12 +41,16 @@ namespace INTERP_KERNEL
     void createBoundingBoxes(const MyMeshType& mesh, std::vector<double>& bbox);
     void adjustBoundingBoxes(std::vector<double>& bbox, double adjustmentEpsAbs);
     static void getElemBB(double* bb, const MyMeshType& mesh, ConnType iP, ConnType nb_nodes);
-
+    static bool ComputeBaryCoordsOf(double startOfSeg, double endOfSeg, double pt, double& startPos, double& endPos);
   protected :
-    bool getRealTargetCoordinates(ConnType icellT, std::vector<double>& coordsT);
-    bool getRealSourceCoordinates(ConnType icellS, std::vector<double>& coordsS);
-    double intersectSegments(double *Coords_T, double *Coords_S);
-
+    bool projectionThis(const double *coordsT, const double *coordsS, double& xs0, double& xs1, double& xt0, double& xt1) const;
+    bool getRealTargetCoordinates(ConnType icellT, std::vector<double>& coordsT) const;
+    typename MyMeshType::MyConnType getNodeIdOfTargetCellAt(ConnType icellT, ConnType nodeIdInCellT) const;
+    bool getRealSourceCoordinates(ConnType icellS, std::vector<double>& coordsS) const;
+    typename MyMeshType::MyConnType getNodeIdOfSourceCellAt(ConnType icellT, ConnType nodeIdInCellT) const;
+    double intersectSegments(const double *coordsT, const double *coordsS) const;
+    double intersectSegmentsInternal(const double *coordsT, const double *coordsS, double& xs0, double& xs1, double& xt0, double& xt1) const;
+    
     struct TDualSegment
     {
       std::vector<double> _coords;