]> 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, 7 Dec 2018 06:36:28 +0000 (09:36 +0300)
commit3f96b7411e2d03d9dc7ed31df236c43dc5d04642
tree6cfe8ee2a52590271051bd9c4c884691b2e25fb8
parent42da0d5115bff683c6b596e66cdeaff957f81e7d
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