MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0028456Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2017-02-14 18:592017-09-29 16:25
Reporterisn 
Assigned Tobugmaster 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 7.1.0 
Target Version[OCCT] 7.2.0Fixed in Version[OCCT] 7.2.0 
Summary0028456: BRepBuilderAPI_MakeFace modifies the input shape
DescriptionBRepBuilderAPI_MakeFace modifies the input wire: updates the tolerances of wire's edges/vertices or/and updates flags/ranges.
It's proposed to add mutable flag for BRepBuilderAPI_MakeShape which defines if input shape can be modified during make-face operation or some of subshapes from input shape should be empty-copied to avoid modifying.
Steps To Reproducebox a 1 1 1
explode a w
setflags a_1 locked
mkplane result a_1

...
also test cases: mkface mkplane A1 A2 (with additional setflags <inp_sh> locked before mkplane operation)
TagsNo tags attached.
Test case numberheal same_parameter_locked; heal update_tolerance_locked
Attached Files

- Relationships
related to 0027166assignedmsv Non-destructive principle in algorithms 

-  Notes
(0063887)
git (administrator)
2017-02-17 15:15

Branch CR28456 has been created by isn.

SHA-1: 29f72a0e4eaf3d1975d888d5a3e060ad0fb44ee5


Detailed log of new commits:

Author: isn
Date: Tue Feb 14 18:42:54 2017 +0300

    0028456: BRepBuilderAPI_MakeFace modifies the input shape
    
    (draft version)
    1) New 'MutableInput' flag have been added
    2) BRepLib::UpdateTolerances() now supports non-mutable input (finished, but seems to be unoptimal)
    3) BRepLib::SameParameter() also supports non-mutable, but this code unfinished yet
(0064041)
git (administrator)
2017-02-28 20:11

Branch CR28456_1 has been created by isn.

SHA-1: 28db31477208ac8566456c113a85e3716efac4f7


Detailed log of new commits:

Author: isn
Date: Tue Feb 14 18:42:54 2017 +0300

    0028456: BRepBuilderAPI_MakeFace modifies the input shape
    
    1) New 'MutableInput' flag have been added
    2) BRepLib::UpdateTolerances() & BRepLib::SameParameter() now supports non-mutable input
    3) new "-mi" option have been added to mkplane command
(0064189)
msv (developer)
2017-03-09 11:55

Remarks:

Commit message:
1) have => has
2) supports => support
3) have => has
Point that you added new flag in the ancestor algorithm, root of all others. Point the default value.

src\BRepBuilderAPI\BRepBuilderAPI_MakeShape.hxx
- Point the default value of the flag.
- 69: use const for argument.
- It is better to make myMutableInput private, and methods IsMutableInput and SetMutableInput non-virtual (so that to safely call from constructor).

src\BRepBuilderAPI\BRepBuilderAPI_MakeFace.hxx
- 120: wrap the long line.

src\BRepBuilderAPI\BRepBuilderAPI_MakeFace.cxx
- 269: use the method SetMutableInput.

src\BRepLib\BRepLib_MakeFace.cxx
- 269: move into the scope where it is used. Follow coding rules when naming new variables (prefix 'a', see https://dev.opencascade.org/doc/overview/html/occt_dev_guides__coding_rules.html#occt_coding_rules_2_3 [^]). What is ECSH? Can you drop a line in comments?
- 273: what is wrong about forced?
- 277: not clear question

src\BRepLib\BRepLib.hxx
- Follow coding rules for naming of arguments (prefix 'the').
- 141, 149: add description
- 142,165,174: use const for non-modifiable arguments.
- 156-159: absence of punctuation makes hard to understand the text. Also, use
tags to mark the end of line.
"and the new shape will be returned." => "In this case the new shape will be returned."
- 161: "This" => "These".

src\BRepLib\BRepLib.cxx
- use BRepTools_ReShape instead of data map for mapping old->new shape.
- 1201: no such method in the class.
- Please add standard comment header before each method.
- 757: mismatch name
- 834: what kind of checks do you mean?
- 897-899: use BRep_Builder::UpdateFace
- 949-950, 1618: I don't see why do you separate vertices, edges and faces.
- 1784: not clear question

src\BRepTest\BRepTest_SurfaceCommands.cxx
- 185: yes, add usage
- 196: historical reasons, let's leave here as it is.
- Change option name to "-nmi". Character '-' here has no meaning of negation, and "-mi" can be confusing.
(0064388)
git (administrator)
2017-03-16 18:11

Branch CR28456_1 has been updated by isn.

SHA-1: f4feee43a535e63ea6bc633814ef3c93e723b685


Detailed log of new commits:

Author: isn
Date: Fri Mar 10 15:19:23 2017 +0300

    corrections

(0064409)
git (administrator)
2017-03-17 17:51

Branch CR28456_1 has been updated forcibly by isn.

SHA-1: d0a816dd3742bdfa5ea50e376d4cfc13a08d2f08
(0064573)
msv (developer)
2017-03-21 11:15

Remarks:

- As we agreed, changes in MakeShape, MakeFace and BRepTest_SurfaceCommands.cxx are to be dropped.

src\BRepTools\BRepTools_ReShape.hxx
- Add description of the method IsNewShape.
- What is the meaning of the name 'mySMap'? May be to rename it something like myNewShapes?

src\BRepLib\BRepLib.hxx
- 140: why 'AnEdge'? Please read coding rules. 'theEdge' is correct!
- add description of SameParameter at 142
- 149: remove the empty line
- 158: extra '.' at the end.
- update description of the method SameParameter at 164.
- add description of UpdateTolerances at 174
- remove argument isMutableInput from public methods. Methods with reshaper must write all changes in reshaper only. In implementation, make the current methods static and call them from API methods. It is better in implementation accept pointer to reshaper, in order to not create an instance when it is not needed. Null pointer means 'mutable input'. In method SameParameter make reshaper last argument.

src\BRepLib\BRepLib.cxx
- 912: missing header
- 1178: again, no such method in the class. How is it compiled?
- 1590: missing header
(0064832)
git (administrator)
2017-03-31 15:09

Branch CR28456_1 has been updated by isn.

SHA-1: b419b5dd67175d34311c2659cb14fd5211efd00d


Detailed log of new commits:

Author: isn
Date: Fri Mar 31 14:27:35 2017 +0300

    corrections

(0064861)
git (administrator)
2017-04-03 14:43

Branch CR28456_1 has been updated forcibly by isn.

SHA-1: ae5422b13d4d8c2782b45dae7ec3fc6e1cde3b91
(0064863)
git (administrator)
2017-04-03 15:37

Branch CR28456_1 has been updated forcibly by isn.

SHA-1: 01f0e13443230ac722ac1ede44293c2340055f64
(0064864)
git (administrator)
2017-04-03 16:14

Branch CR28456_1 has been updated forcibly by isn.

SHA-1: e4bb9b12b7eade926f939085901bc4a43f7e1124
(0064870)
msv (developer)
2017-04-03 16:59

src/BRepTools/BRepTools_ReShape.hxx
- 142: 'have' -> 'has', and put point at end.

src/BRepLib/BRepLib.hxx
- 29-30: remove unused includes
- 146-150: use punctuation and capital letters to distinct sentences (otherwise doxygen will generate a mess).

src\BRepLib\BRepLib.cxx
- 996: use InternalUpdateTolerances here.

- Squash into one commit and put in the new branch.
(0064871)
msv (developer)
2017-04-03 16:59

And please rebase on last master.
(0064936)
git (administrator)
2017-04-05 14:47

Branch CR28456_2 has been created by isn.

SHA-1: d4dc3d145dc2f69eeb21d1c7cb5bf864e00d04bc


Detailed log of new commits:

Author: isn
Date: Tue Feb 14 18:42:54 2017 +0300

    0028456: BRepBuilderAPI_MakeFace modifies the input shape
    
    1) BRepLib::UpdateTolerances(..) & BRepLib::SameParameter(..) functions now support non-mutable input feature. reshaper is used to store modified copies of subshapes of original (input) shape(s) as substitutions.
    2) IsNewShape(..) method has been added to BRepTools_ReShape to check if the given shape has been recorded as a value
(0064953)
git (administrator)
2017-04-05 21:31

Branch CR28456_2 has been updated forcibly by isn.

SHA-1: 9421eaead8adb2c34501e3be2d85b3ea69b9adf8
(0064965)
msv (developer)
2017-04-06 10:59

- Add possibility in the commands sameparameter/fsameparameter to use the new safe API.
- Create several test cases for the new API of sameparameter in the category heal/same_parameter.
- Add information about new method of reshaper IsNewShape() in its documentation here: https://dev.opencascade.org/doc/overview/html/occt_user_guides__shape_healing.html#occt_shg_5_1 [^]
(0065109)
git (administrator)
2017-04-10 17:54

Branch CR28456_2 has been updated by isn.

SHA-1: 6f244fcbdc60068869f57ca78dda6c46a5b5a33e


Detailed log of new commits:

Author: isn
Date: Mon Apr 10 17:51:02 2017 +0300

    update of tests/docs

(0065115)
msv (developer)
2017-04-11 10:06

src\BRepTest\BRepTest_BasicCommands.cxx
- 330,367: there will be warning on other platforms; include sub-expressions in parentheses.
(0065142)
git (administrator)
2017-04-11 15:38

Branch CR28456_2 has been updated by isn.

SHA-1: 1d39ab3455018ce1654ed6ba0825a9514c4d4028


Detailed log of new commits:

Author: isn
Date: Tue Apr 11 15:38:16 2017 +0300

    remark

(0065145)
msv (developer)
2017-04-11 16:33

Reviewed.
(0065166)
apv (tester)
2017-04-12 10:16

Dear BugMaster,

Branch CR28456_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 1d39ab3455018ce1654ed6ba0825a9514c4d4028

Number of compiler warnings:
occt component:
   Linux: 6 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 1 (0 on master)
products component:
   Linux: 64
   Windows: 0
   MacOS: 1210
New warnings have been detected during OCCT component building
on Linux:
http://jenkins-test-05.nnov.opencascade.com/view/CR28456_2-master/job/CR28456_2-master-OCCT-Debian70-64-opt-compile/1/warnings17Result/new/ [^]
on MacOS:
http://jenkins-test-05.nnov.opencascade.com/view/CR28456_2-master/job/CR28456_2-master-OCCT-MacOS-opt-compile/1/warnings7Result/ [^]

Regressions/Differences:
http://occt-tests/CR28456_2-master-OCCT/Debian70-64/summary.html [^]
http://occt-tests/CR28456_2-master-OCCT/Windows-64-VC10/summary.html [^]
bugs modalg_1 buc60896

Testing cases:
heal same_parameter_locked - OK
http://occt-tests/CR28456_2-master-OCCT/Debian70-64/summary.html#heal-same_parameter_locked [^]
http://occt-tests/CR28456_2-master-OCCT/Windows-64-VC10/summary.html#heal-same_parameter_locked [^]
heal update_tolerance_locked - OK
http://occt-tests/CR28456_2-master-OCCT/Debian70-64/summary.html#heal-update_tolerance_locked [^]
http://occt-tests/CR28456_2-master-OCCT/Windows-64-VC10/summary.html#heal-update_tolerance_locked [^]

Testing on Linux:
Total MEMORY difference: 91551894 / 91388139 [+0.18%]
Total CPU difference: 19598.810000000238 / 19613.190000000242 [-0.07%]

Testing on Windows:
Total MEMORY difference: 57863693 / 57855806 [+0.01%]
Total CPU difference: 18351.318035898534 / 18063.40259029849 [+1.59%]
(0065167)
apv (tester)
2017-04-12 10:18

Dear Ilya,

Branch CR28456_2 has been rejected due to:
- additional warnings
- regressions/difference/improvements
(0065178)
git (administrator)
2017-04-12 14:38

Branch CR28456_2 has been updated by isn.

SHA-1: 70eefcd674fc5da961f19d1356aedd936bceabf0


Detailed log of new commits:

Author: isn
Date: Wed Apr 12 14:38:26 2017 +0300

    elimination of warnings; corrections of test

(0065179)
isn (developer)
2017-04-12 14:52
edited on: 2017-04-12 14:55

Dear Alexey,

>>New warnings have been detected during OCCT component building
Seems to be fixed now.

>>Test bugs vis bug5682
the new changes should not affect this test case...

>>Test bugs modalg_1 buc60896
I guess this script looks somewhat incorrect.
This line:
sameparameter result tol 1.e-2
uses additional (i.e. optional) tolerance value. However, 'tol' is not a tcl value in this context. Before the patch, 'sameparamter' command ignores this 'tol' word along with the next value (1.e-2, for ex.). Thus this draw-command uses a default tolerance value (1.e-7). So I think that the 'tol' word should be dropped. I correct the test case according to this.

Please compile&test the new commit.

(0065195)
apv (tester)
2017-04-13 11:06

Dear BugMaster,

Branch CR28456_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 70eefcd674fc5da961f19d1356aedd936bceabf0

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
    Linux: 64
    Windows: 0
    MacOS: 1188

Regressions/Differences:
Not detected

Testing cases:
heal same_parameter_locked - OK
http://occt-tests/CR28456_2-master-OCCT/Debian70-64/summary.html#heal-same_parameter_locked [^]
http://occt-tests/CR28456_2-master-OCCT/Windows-64-VC10/summary.html#heal-same_parameter_locked [^]
heal update_tolerance_locked - OK
http://occt-tests/CR28456_2-master-OCCT/Debian70-64/summary.html#heal-update_tolerance_locked [^]
http://occt-tests/CR28456_2-master-OCCT/Windows-64-VC10/summary.html#heal-update_tolerance_locked [^]

Testing on Linux:
Total MEMORY difference: 91345181 / 91384662 [-0.04%]
Total CPU difference: 19708.93000000035 / 19613.25000000024 [+0.49%]

Testing on Windows:
Total MEMORY difference: 57862638 / 57855806 [+0.01%]
Total CPU difference: 18352.659644498486 / 18063.40259029849 [+1.60%]
(0065912)
git (administrator)
2017-05-12 11:35

Branch CR28456 has been deleted by kgv.

SHA-1: 29f72a0e4eaf3d1975d888d5a3e060ad0fb44ee5
(0065913)
git (administrator)
2017-05-12 11:35

Branch CR28456_1 has been deleted by kgv.

SHA-1: e4bb9b12b7eade926f939085901bc4a43f7e1124
(0065978)
git (administrator)
2017-05-12 11:40

Branch CR28456_2 has been deleted by kgv.

SHA-1: 70eefcd674fc5da961f19d1356aedd936bceabf0

- Related Changesets
occt: master b60e8432
Timestamp: 2017-02-14 15:42:54
Author: isn
Committer: bugmaster
Details ] Diff ]
0028456: BRepBuilderAPI_MakeFace modifies the input shape

1) BRepLib::UpdateTolerances(..) & BRepLib::SameParameter(..) functions now support non-mutable input feature. reshaper is used to store modified copies of subshapes of original (input) shape(s) as substitutions.
2) IsNewShape(..) method has been added to BRepTools_ReShape to check if the given shape has been recorded as a value
mod - dox/dev_guides/tests/tests.md Diff ] File ]
mod - dox/user_guides/shape_healing/shape_healing.md Diff ] File ]
mod - src/BRepLib/BRepLib.cxx Diff ] File ]
mod - src/BRepLib/BRepLib.hxx Diff ] File ]
mod - src/BRepTest/BRepTest_BasicCommands.cxx Diff ] File ]
mod - src/BRepTools/BRepTools_ReShape.cxx Diff ] File ]
mod - src/BRepTools/BRepTools_ReShape.hxx Diff ] File ]
mod - tests/bugs/modalg_1/buc60896 Diff ] File ]
mod - tests/heal/grids.list Diff ] File ]
add - tests/heal/same_parameter_locked/A1 Diff ] File ]
add - tests/heal/same_parameter_locked/A2 Diff ] File ]
add - tests/heal/same_parameter_locked/A3 Diff ] File ]
add - tests/heal/same_parameter_locked/A4 Diff ] File ]
add - tests/heal/same_parameter_locked/A5 Diff ] File ]
add - tests/heal/same_parameter_locked/A6 Diff ] File ]
add - tests/heal/same_parameter_locked/A7 Diff ] File ]
add - tests/heal/same_parameter_locked/end Diff ] File ]
add - tests/heal/update_tolerance_locked/A1 Diff ] File ]
add - tests/heal/update_tolerance_locked/A2 Diff ] File ]
add - tests/heal/update_tolerance_locked/A3 Diff ] File ]
add - tests/heal/update_tolerance_locked/A4 Diff ] File ]
add - tests/heal/update_tolerance_locked/end Diff ] File ]

- Issue History
Date Modified Username Field Change
2017-02-14 18:59 isn New Issue
2017-02-14 18:59 isn Assigned To => isn
2017-02-14 19:00 isn Relationship added related to 0027166
2017-02-14 19:01 isn Steps to Reproduce Updated View Revisions
2017-02-15 09:16 msv Status new => assigned
2017-02-15 09:16 msv Product Version => 7.1.0
2017-02-15 09:16 msv Summary BRepBuilderAPI_MakeFace modifies modifies the input shape => BRepBuilderAPI_MakeFace modifies the input shape
2017-02-17 15:15 git Note Added: 0063887
2017-02-28 20:11 git Note Added: 0064041
2017-03-01 11:56 isn Assigned To isn =>
2017-03-01 11:57 isn Assigned To => msv
2017-03-01 11:57 isn Status assigned => resolved
2017-03-09 11:55 msv Note Added: 0064189
2017-03-09 11:55 msv Assigned To msv => isn
2017-03-09 11:55 msv Status resolved => assigned
2017-03-16 18:11 git Note Added: 0064388
2017-03-17 17:51 git Note Added: 0064409
2017-03-17 19:59 isn Assigned To isn => msv
2017-03-17 19:59 isn Status assigned => feedback
2017-03-21 11:15 msv Note Added: 0064573
2017-03-21 11:15 msv Assigned To msv => isn
2017-03-21 11:15 msv Status feedback => assigned
2017-03-31 15:09 git Note Added: 0064832
2017-04-03 14:43 git Note Added: 0064861
2017-04-03 15:37 git Note Added: 0064863
2017-04-03 16:14 git Note Added: 0064864
2017-04-03 16:14 isn Assigned To isn => msv
2017-04-03 16:14 isn Status assigned => resolved
2017-04-03 16:59 msv Note Added: 0064870
2017-04-03 16:59 msv Assigned To msv => isn
2017-04-03 16:59 msv Status resolved => assigned
2017-04-03 16:59 msv Note Added: 0064871
2017-04-05 14:47 git Note Added: 0064936
2017-04-05 21:31 git Note Added: 0064953
2017-04-05 21:32 isn Assigned To isn => msv
2017-04-05 21:32 isn Status assigned => resolved
2017-04-06 10:59 msv Note Added: 0064965
2017-04-06 10:59 msv Assigned To msv => isn
2017-04-06 10:59 msv Status resolved => assigned
2017-04-10 17:54 git Note Added: 0065109
2017-04-10 17:57 isn Assigned To isn => msv
2017-04-10 17:57 isn Status assigned => resolved
2017-04-11 10:06 msv Note Added: 0065115
2017-04-11 10:06 msv Assigned To msv => isn
2017-04-11 10:06 msv Status resolved => assigned
2017-04-11 15:38 git Note Added: 0065142
2017-04-11 15:39 isn Assigned To isn => msv
2017-04-11 15:39 isn Status assigned => resolved
2017-04-11 16:33 msv Note Added: 0065145
2017-04-11 16:33 msv Assigned To msv => bugmaster
2017-04-11 16:33 msv Status resolved => reviewed
2017-04-11 16:35 apv Assigned To bugmaster => apv
2017-04-11 16:46 apv Test case number => heal same_parameter_locked; heal update_tolerance_locked
2017-04-12 10:16 apv Note Added: 0065166
2017-04-12 10:16 apv Assigned To apv => isn
2017-04-12 10:16 apv Status reviewed => assigned
2017-04-12 10:18 apv Note Added: 0065167
2017-04-12 14:38 git Note Added: 0065178
2017-04-12 14:52 isn Note Added: 0065179
2017-04-12 14:55 isn Note Edited: 0065179 View Revisions
2017-04-12 14:55 isn Assigned To isn => apv
2017-04-12 14:55 isn Status assigned => feedback
2017-04-13 11:06 apv Note Added: 0065195
2017-04-13 11:06 apv Assigned To apv => bugmaster
2017-04-13 11:06 apv Status feedback => tested
2017-04-14 14:28 bugmaster Changeset attached => occt master b60e8432
2017-04-14 14:28 bugmaster Status tested => verified
2017-04-14 14:28 bugmaster Resolution open => fixed
2017-05-12 11:35 git Note Added: 0065912
2017-05-12 11:35 git Note Added: 0065913
2017-05-12 11:40 git Note Added: 0065978
2017-09-29 16:19 user533 Fixed in Version => 7.2.0
2017-09-29 16:25 user533 Status verified => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker