]> OCCT Git - occt-copy.git/commit
0030655: Modeling Data - Provide interfaces for selection of the elements from BVH...
authoremv <emv@opencascade.com>
Wed, 17 Apr 2019 14:29:02 +0000 (17:29 +0300)
committeremv <emv@opencascade.com>
Tue, 28 May 2019 11:40:12 +0000 (14:40 +0300)
commitce37d08a7b7207e4ad16134ff525e028c21209a3
tree9f1c5f9151f74d5426afa74232ced983c130277d
parentf2da78be2ef0003148cbc2531a08d56832ffc312
0030655: Modeling Data - Provide interfaces for selection of the elements from BVH tree

Provide the easy to use interfaces for selection of the elements from BVH tree.
The selection rules should be implemented in the selector class derived from *BVH_Traverse* or in *BVH_PairTraverse* in Reject/Accept methods.

The *BVH_Traverse* is used for selection of the elements from the tree.
The *BVH_PairTraverse* is used for selection of the pairs of elements from two BVH trees.

Auxiliary changes:
- Two methods BVH_Box::IsOut(OtherBox) and BVH_Box::IsOut(Point) have been added;
- Added methods for conversion of Bnd boxes to BVH boxes

Added new class *BVH_Tools* containing useful static methods operating on BVH points and boxes.

The classes BRepExtrema_OverlapTool and BVH_DistanceField have been rebased to use the new traverse methods.

Test case for the issue.
24 files changed:
src/BRepExtrema/BRepExtrema_OverlapTool.cxx
src/BRepExtrema/BRepExtrema_OverlapTool.hxx
src/BRepExtrema/BRepExtrema_ShapeProximity.hxx
src/BVH/BVH_Box.hxx
src/BVH/BVH_BoxSet.hxx [new file with mode: 0644]
src/BVH/BVH_Distance.hxx [new file with mode: 0644]
src/BVH/BVH_DistanceField.lxx
src/BVH/BVH_IndexedBoxSet.hxx [new file with mode: 0644]
src/BVH/BVH_PairDistance.hxx [new file with mode: 0644]
src/BVH/BVH_Tools.hxx [new file with mode: 0644]
src/BVH/BVH_Traverse.hxx [new file with mode: 0644]
src/BVH/BVH_Traverse.lxx [new file with mode: 0644]
src/BVH/FILES
src/Bnd/Bnd_Tools.hxx [new file with mode: 0644]
src/Bnd/FILES
src/QABugs/FILES
src/QABugs/QABugs.cxx
src/QABugs/QABugs.hxx
src/QABugs/QABugs_BVH.cxx [new file with mode: 0644]
tests/lowalgos/bvh/bug30655_1 [new file with mode: 0644]
tests/lowalgos/bvh/bug30655_2 [new file with mode: 0644]
tests/lowalgos/bvh/bug30655_3 [new file with mode: 0644]
tests/lowalgos/bvh/bug30655_4 [new file with mode: 0644]
tests/lowalgos/grids.list