]> OCCT Git - occt-copy.git/commit
0029683: Add functionality to make the TopoDS_Shape periodic in 3D space
authoremv <emv@opencascade.com>
Mon, 19 Mar 2018 04:50:06 +0000 (07:50 +0300)
committeremv <emv@opencascade.com>
Fri, 13 Apr 2018 08:25:44 +0000 (11:25 +0300)
commitf6d80ad0bffb34f9c61c6ab1138d0282d5013da6
treedf935b12bccb68233dbb25c3e7fe7d10c5ee6fa7
parenta0540d9bb983213420f18ef2edc4fcad527703f8
0029683: Add functionality to make the TopoDS_Shape periodic in 3D space

Implementation of the new class *BOPAlgo_MakePeriodic* for making the shape periodic in 3D space.
Periodicity of the shape means that the shape can be repeated in any periodic direction any number of times without creation of the new geometry or splits.
The idea of this algorithm is to make the shape look similarly on the opposite sides or on the period bounds of periodic directions.
It does not mean that the opposite sides of the shape will be mirrored. It just means the the opposite sides of the shape should be split by each other and obtain the same geometry on opposite sides.
Such approach will allow repeating the shape, i.e. translating the copy of a shape on the period, without creation of new geometry because there will be no coinciding parts of different dimension.

Draw commands for the new algorithm:
* makeperiodic - makes the shape periodic in required directions;
* repeatshape - repeats the periodic shape in requested periodic direction;
* periodictwins - returns the periodic twins for the shape;
* clearrepetitions - clears all previous repetitions of the periodic shape.

Documentation & test cases for the algorithm.
31 files changed:
dox/user_guides/draw_test_harness/draw_test_harness.md
dox/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im001.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im002.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im003.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im004.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im005.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_mkperiodic_im006.png [new file with mode: 0644]
dox/user_guides/modeling_algos/modeling_algos.md
src/BOPAlgo/BOPAlgo.msg
src/BOPAlgo/BOPAlgo_Alerts.hxx
src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
src/BOPAlgo/BOPAlgo_Builder_1.cxx
src/BOPAlgo/BOPAlgo_MakePeriodic.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_MakePeriodic.hxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.hxx
src/BOPAlgo/BOPAlgo_Splitter.cxx
src/BOPAlgo/BOPAlgo_Splitter.hxx
src/BOPAlgo/FILES
src/BOPTest/BOPTest.cxx
src/BOPTest/BOPTest.hxx
src/BOPTest/BOPTest_PeriodicityCommands.cxx [new file with mode: 0644]
src/BOPTest/FILES
tests/boolean/grids.list
tests/boolean/periodicity/A1 [new file with mode: 0644]
tests/boolean/periodicity/A2 [new file with mode: 0644]
tests/boolean/periodicity/A3 [new file with mode: 0644]
tests/boolean/periodicity/A4 [new file with mode: 0644]
tests/boolean/periodicity/A5 [new file with mode: 0644]
tests/boolean/periodicity/A6 [new file with mode: 0644]
tests/bugs/modalg_7/bug29502