0028639: Improve performance of the IntPolyh_MaillageAffinage algorithm
authoremv <emv@opencascade.com>
Fri, 7 Apr 2017 04:43:44 +0000 (07:43 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 28 Apr 2017 09:48:40 +0000 (12:48 +0300)
commit68b0769935516a289ab3d38d33c5c0e6776d932a
tree854225f85790586885dfc0587d4b1922f7c59bac
parenta9bdd54d1d5c930cb9b8a720a26407ddf31a89a1
0028639: Improve performance of the IntPolyh_MaillageAffinage algorithm

The following improvements have been made:
1. Linking edges to triangles while creating the edges.
2. Replacing the array of couples of intersecting triangles with the list to avoid unnecessary allocations of memory.
3. Using the algorithm of unbalanced binary tree when looking for pairs of interfering triangles.
4. Building bounding boxes for the triangles only once and then reusing it.
5. Making the simple methods of the IntPolyh_Point, IntPolyh_Edge, IntPolyh_Triangle, IntPolyh_Couple classes inline.
6. The following methods of the *IntPolyh_Triangle* class have been removed as unused:
  - *CheckCommonEdge*
  - *SetEdgeandOrientation*
  - *MultipleMiddleRefinement2*.
7. The method *IntPolyh_Triangle::TriangleDeflection* has been replaced with the *IntPolyh_Triangle::ComputeDeflection*.
8. The following methods of the *IntPolyh_MaillageAffinage* class have been removed as unused:
  - *LinkEdges2Triangles*;
  - *TriangleEdgeContact2*;
  - *StartingPointsResearch2*;
  - *NextStartingPointsResearch2*;
  - *TriangleComparePSP*;
  - *StartPointsCalcul*.
19 files changed:
dox/dev_guides/upgrade/upgrade.md
src/IntPolyh/FILES
src/IntPolyh/IntPolyh_ArrayOfCouples.hxx [deleted file]
src/IntPolyh/IntPolyh_ArrayOfStartPoints.hxx [deleted file]
src/IntPolyh/IntPolyh_Couple.cxx
src/IntPolyh/IntPolyh_Couple.hxx
src/IntPolyh/IntPolyh_CoupleMapHasher.hxx [new file with mode: 0644]
src/IntPolyh/IntPolyh_Edge.cxx
src/IntPolyh/IntPolyh_Edge.hxx
src/IntPolyh/IntPolyh_Intersection.cxx
src/IntPolyh/IntPolyh_Intersection.hxx
src/IntPolyh/IntPolyh_Intersection_1.cxx
src/IntPolyh/IntPolyh_ListOfCouples.hxx [new file with mode: 0644]
src/IntPolyh/IntPolyh_MaillageAffinage.cxx
src/IntPolyh/IntPolyh_MaillageAffinage.hxx
src/IntPolyh/IntPolyh_Point.cxx
src/IntPolyh/IntPolyh_Point.hxx
src/IntPolyh/IntPolyh_Triangle.cxx
src/IntPolyh/IntPolyh_Triangle.hxx