View Issue Details

IDProjectCategoryView StatusLast Update
0028642Open CASCADEOCCT:Modeling Algorithmspublic2022-01-22 12:40
Reporterisn Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status verifiedResolutionopen 
Target Version7.7.0 
Summary0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
DescriptionBRepOffsetAPI_ThruSections/BRepFill_Generator algorithms sometimes modify the properties (flags, tolerances, etc..) of the input shape(s) (wire sections).
Steps To Reproduce(modified version of thrusection specific A1)

vertex v1 0 0 0
vertex v2 5 5 0
vertex v3 0 10 0
vertex v4 5 2.5 20
vertex v5 5 2.5 -20
edge e1 v1 v2
edge e2 v2 v3
edge e3 v3 v1
wire w1 e1 e2 e3
setflags v4 locked
setflags w1 locked
setflags v5 locked
thrusections result 0 1 v4 w1 v5

A result of this is an exception ("Algorithm is not done")
TagsNo tags attached.
Test case numberthrusection/not_solids_locked/A1 B1 C1 thrusection/solids_locked/A1 A2 thrusection/specific/N5

Relationships

child of 0027166 assignedmsv Non-destructive principle in algorithms 

Activities

git

2017-05-11 16:19

administrator   ~0065838

Branch CR28642 has been created by isn.

SHA-1: fe0221c062058e325e60c9c1ca3cdf394a8abeef


Detailed log of new commits:

Author: isn
Date: Wed Apr 5 15:16:40 2017 +0300

    0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
    
    1) BRepFill_Generator and BRepOffsetAPI_ThruSections now supports 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
    2) New test grids (based on the previous ones) has been added. This new cases uses locked shape as input arguments
    3) mutable-flag has been added to 'thrusections' command

git

2018-01-09 17:59

administrator   ~0073277

Branch CR28642_1 has been created by isn.

SHA-1: e589c2c19e0058689a24ad063805b9b66e5108f4


Detailed log of new commits:

Author: isn
Date: Wed Apr 5 15:16:40 2017 +0300

    0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
    
    1) BRepFill_Generator and BRepOffsetAPI_ThruSections now supports 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
    2) New test grids (based on the previous ones) has been added. This new cases uses locked shape as input arguments
    3) mutable-flag has been added to 'thrusections' command

isn

2018-01-10 12:39

developer   ~0073281

jenkins test job - CR28642_1-master-isn

msv

2018-01-11 12:46

developer   ~0073348

Do the differences in images show regressions? Please check this:

Products/Windows-64-VC10:
IMAGE sat read_parallel_1 A7: A7.png differs

Products/Debian70-64:
IMAGE sat read_parallel_1 B7: B7.png differs

tests/thrusection/grids.list
- mess in the file. After fix it is needed to re-test.

src/BRepTest/BRepTest_SweepCommands.cxx
- 382: "-save" => "-safe".
- add description of the new option in help.

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx
- 149,157: add descriptions
- rename GetMutableInput to IsMutableInput.

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx
- 515: I think it must be cleared in very beginning of Build().
- why myBFGenerator->Modified is called without checking IsModified almost everywhere?
- 990: do not use reference for a double value.
- 999: let leave it as is in this fix.
- 1374: move this code to the scope where FirstEdge is used.

src/BRepFill/BRepFill_Generator.hxx
- rename GetMutableInput to IsMutableInput.

src/BRepFill/BRepFill_Generator.cxx
- 617: no, degen edge must not be shared between faces.
- 860-870: do this only if degen1/degen2 is false. Add comments what for this code is and why such conditions are used.
- 979: if Edge1 is a new one then GeneratedShapes() will work incorrect. It must return generated shapes from the input one.
- 993: yes, it will allow avoiding repeated copying.
- 1013: use more simple TopoDS_Iterator here.

git

2018-01-17 16:53

administrator   ~0073479

Branch CR28642_2 has been created by isn.

SHA-1: a3868a3600255002013298899a6d86a71e5a1c3f


Detailed log of new commits:

Author: isn
Date: Tue Jan 16 16:16:12 2018 +0300

    corrections

Author: isn
Date: Wed Apr 5 15:16:40 2017 +0300

    0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
    
    1) BRepFill_Generator and BRepOffsetAPI_ThruSections now supports 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
    2) New test grids (based on the previous ones) has been added. This new cases uses locked shape as input arguments
    3) mutable-flag has been added to 'thrusections' command

git

2018-01-18 16:10

administrator   ~0073493

Branch CR28642_2 has been updated forcibly by isn.

SHA-1: 8ba7a91005d74fd40656c5e385c1462ce5ba783c

isn

2018-01-18 19:53

developer   ~0073500

test job is /view/CR28642_2-master-isn/
--
>>IMAGE sat read_parallel_1 A7: A7.png differs
>>IMAGE sat read_parallel_1 B7: B7.png differs
not reproduced anymore

msv

2018-01-19 13:57

developer   ~0073517

Why didn't you followed all previous remarks? Some of below are repetitions of above.

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx
- 515: Remove comment and do the proposed above.
- 1368: incorrect change. I meant to move all the code 1362-1373 to 1398.
- 988: do not use reference for a double value.
- 997: remove comment

src/BRepFill/BRepFill_Generator.cxx
- 977-979: unused variable aRED.
- 980: move this line in the scope of below "if".
- 1004-1005: remove extra check.
- 1024: replace explorer with TopoDS_Iterator here.

git

2018-01-19 15:59

administrator   ~0073532

Branch CR28642_2 has been updated by isn.

SHA-1: cdd5ead5ad333885019ebb5dbf6cd620a57a5ece


Detailed log of new commits:

Author: isn
Date: Fri Jan 19 15:58:41 2018 +0300

    remarks

asuraven

2021-11-23 17:59

developer   ~0105374

asuraven

2021-12-06 14:21

developer   ~0105697

git

2021-12-28 19:49

administrator   ~0106238

Branch CR28642_3 has been created by asuraven.

SHA-1: 33ebf1f1dbb4be281927314762282ca7de915411


Detailed log of new commits:

Author: isn
Date: Wed Apr 5 15:16:40 2017 +0300

    0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
    
    1) BRepFill_Generator and BRepOffsetAPI_ThruSections now supports 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
    2) New test grids (based on the previous ones) has been added. This new cases uses locked shape as input arguments
    3) mutable-flag has been added to 'thrusections' command

git

2021-12-30 14:46

administrator   ~0106245

Branch CR28642_3 has been updated by asuraven.

SHA-1: 73b620f60dcfe9d32b70fa33c11c1b30d1d31d16


Detailed log of new commits:

Author: asuraven
Date: Thu Dec 30 14:45:53 2021 +0300

    0028642: test bugs modalg_7 bug30958 fix

git

2022-01-10 13:52

administrator   ~0106278

Branch CR28642_3 has been updated forcibly by asuraven.

SHA-1: 4e62d1dc4cdda1940a289f964ad649809823d904

asuraven

2022-01-10 18:08

developer   ~0106290

Tests results:
http://jenkins-test-occt.nnov.opencascade.com/view/CR28642_3-master-ASURAVEN/view/COMPARE/
Please review branch CR28642_3

msv

2022-01-11 12:17

developer   ~0106292

In the commit message:
supports -> support
grids ... has been added -> grids ... have been added
This new cases uses -> These new cases use
locked shape -> locked shapes
mutable-flag -> The option '-safe'

src/BRepFill/BRepFill_Generator.hxx
src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx
  Standard_EXPORT void SetMutableInput(const Standard_Boolean IsMutableInput);
Use 'the' prefix for argument name.
What is the default value of this parameter? You should tell about it in the description.

src/BRepFill/BRepFill_Generator.cxx
        Edge1 = TopoDS::Edge(anOrEdge1);
no need to cast (the same for Edge2):
        Edge1 = anOrEdge1;
The code under the comment "//update wire's history" is probably wrong. aNewWire is created here and it has no common with the result shape.
Probably it is needed to use myReshaper to restore the true history.
Please correct the comment header above the methods ResultShape, IsMutableInput.
In the method ResultShape, why not to use just myReshaper? myOldNewShapes mapping has already been transferred to myReshaper.

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx
  myBFGenerator.Nullify();
  myBFGenerator = new BRepFill_Generator();

The first line is extra.

      TopoDS_Wire wire1 = TopoDS::Wire(myWires.First());
      TopoDS_Wire wire2 = TopoDS::Wire(myWires.Last());

      //myBFGenerator stores the same 'myWires'
      wire1 = TopoDS::Wire(myBFGenerator->ResultShape(wire1));
      wire2 = TopoDS::Wire(myBFGenerator->ResultShape(wire2));

The first two assignments are extra.

The lines 1384-1394 seem to be extra, due to added lines 1417-1431. The variable aFirstSection in 1417 is not used.
Please correct the comment header above the method IsMutableInput.

src/BRepTest/BRepTest_SweepCommands.cxx
Please revert unrelated white space changes.
Add newline characters in the help of the thrusections command.

tests/thrusection/specific/N5
tests/thrusection/specific/N6
Move bug title to the 'puts' statement.

git

2022-01-13 18:21

administrator   ~0106351

Branch CR28642_4 has been created by asuraven.

SHA-1: 3c0f7374b0862428089c9d4b3681879d66e53179


Detailed log of new commits:

Author: isn
Date: Wed Apr 5 15:16:40 2017 +0300

    0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
    
    1) BRepFill_Generator and BRepOffsetAPI_ThruSections now support 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
    2) New test grids (based on the previous ones) have been added. This new cases use locked shapes as input arguments
    3) The option '-safe' has been added to 'thrusections' command

git

2022-01-14 14:24

administrator   ~0106366

Branch CR28642_4 has been updated forcibly by asuraven.

SHA-1: 579814a63f9f89f23f8f6a026a75f035d8dd3d8e

asuraven

2022-01-14 17:06

developer   ~0106369

tests results: http://jenkins-test-occt.nnov.opencascade.com/view/CR28642_4-master-ASURAVEN/view/COMPARE/

msv

2022-01-14 18:07

developer   ~0106371

Last edited: 2022-01-14 18:16

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx
Move the line 1379 to the place where the variable FirstSection is used.

git

2022-01-14 18:17

administrator   ~0106372

Branch CR28642_4 has been updated forcibly by asuraven.

SHA-1: af3eef5bfd6cd418b504dc307b5d2eae73093ca6

asuraven

2022-01-14 18:18

developer   ~0106373

fixed

msv

2022-01-14 18:39

developer   ~0106376

For integration:
occt- CR28642_4
products - none

smoskvin

2022-01-22 11:46

administrator   ~0106516

Combination -
OCCT branch : IR-2022-01-21
master SHA - 5614b1369a232f43e59cb9be4f5f8efd2075608d
49e51745631c52b6c452c65adae4d6dfa21a1b1e
Products branch : IR-2022-01-21 SHA - 6c9eed61a7023644fdd1361491a49abf318c0d20
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 18406.870000000446 / 18505.100000000388 [-0.53%]
Products
Total CPU difference: 11642.890000000107 / 11656.240000000102 [-0.11%]
Windows-64-VC14:
OCCT
Total CPU difference: 20282.578125 / 20270.375 [+0.06%]
Products
Total CPU difference: 13127.640625 / 13139.84375 [-0.09%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2022-01-22 12:40

administrator   ~0106526

Branch CR28642 has been deleted by mnt.

SHA-1: fe0221c062058e325e60c9c1ca3cdf394a8abeef

git

2022-01-22 12:40

administrator   ~0106527

Branch CR28642_1 has been deleted by mnt.

SHA-1: e589c2c19e0058689a24ad063805b9b66e5108f4

git

2022-01-22 12:40

administrator   ~0106528

Branch CR28642_2 has been deleted by mnt.

SHA-1: cdd5ead5ad333885019ebb5dbf6cd620a57a5ece

git

2022-01-22 12:40

administrator   ~0106529

Branch CR28642_3 has been deleted by mnt.

SHA-1: 4e62d1dc4cdda1940a289f964ad649809823d904

git

2022-01-22 12:40

administrator   ~0106530

Branch CR28642_4 has been deleted by mnt.

SHA-1: af3eef5bfd6cd418b504dc307b5d2eae73093ca6

Related Changesets

occt: master 70737683

2017-04-05 15:16:40

isn


Committer: smoskvin Details Diff
0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections

1) BRepFill_Generator and BRepOffsetAPI_ThruSections now support 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
2) New test grids (based on the previous ones) have been added. These new cases use locked shapes as input arguments
3) The option '-safe' has been added to 'thrusections' command
Affected Issues
0028642
mod - src/BRepFill/BRepFill_Generator.cxx Diff File
mod - src/BRepFill/BRepFill_Generator.hxx Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx Diff File
mod - src/BRepTest/BRepTest_SweepCommands.cxx Diff File
mod - tests/thrusection/grids.list Diff File
add - tests/thrusection/not_solids_locked/A1 Diff File
add - tests/thrusection/not_solids_locked/B1 Diff File
add - tests/thrusection/not_solids_locked/C1 Diff File
add - tests/thrusection/not_solids_locked/D1 Diff File
add - tests/thrusection/not_solids_locked/F1 Diff File
add - tests/thrusection/not_solids_locked/G1 Diff File
add - tests/thrusection/not_solids_locked/H1 Diff File
add - tests/thrusection/not_solids_locked/I1 Diff File
add - tests/thrusection/not_solids_locked/J1 Diff File
add - tests/thrusection/not_solids_locked/K1 Diff File
add - tests/thrusection/not_solids_locked/L1 Diff File
add - tests/thrusection/not_solids_locked/M1 Diff File
add - tests/thrusection/not_solids_locked/N1 Diff File
add - tests/thrusection/not_solids_locked/O1 Diff File
add - tests/thrusection/not_solids_locked/P1 Diff File
add - tests/thrusection/not_solids_locked/Q1 Diff File
add - tests/thrusection/not_solids_locked/R1 Diff File
add - tests/thrusection/not_solids_locked/S1 Diff File
add - tests/thrusection/not_solids_locked/T1 Diff File
add - tests/thrusection/not_solids_locked/U1 Diff File
add - tests/thrusection/not_solids_locked/V1 Diff File
add - tests/thrusection/not_solids_locked/W1 Diff File
add - tests/thrusection/not_solids_locked/W8 Diff File
add - tests/thrusection/solids_locked/A1 Diff File
add - tests/thrusection/solids_locked/A2 Diff File
add - tests/thrusection/solids_locked/A3 Diff File
add - tests/thrusection/solids_locked/A4 Diff File
add - tests/thrusection/solids_locked/A5 Diff File
add - tests/thrusection/solids_locked/A6 Diff File
add - tests/thrusection/solids_locked/A7 Diff File
add - tests/thrusection/solids_locked/A8 Diff File
add - tests/thrusection/solids_locked/A9 Diff File
add - tests/thrusection/specific/N5 Diff File
add - tests/thrusection/specific/N6 Diff File
add - tests/thrusection/specific_locked/A1 Diff File
add - tests/thrusection/specific_locked/A2 Diff File
add - tests/thrusection/specific_locked/A3 Diff File
add - tests/thrusection/specific_locked/A4 Diff File
add - tests/thrusection/specific_locked/A6 Diff File
add - tests/thrusection/specific_locked/A7 Diff File
add - tests/thrusection/specific_locked/A8 Diff File
add - tests/thrusection/specific_locked/B1 Diff File
add - tests/thrusection/specific_locked/B2 Diff File
add - tests/thrusection/specific_locked/B3 Diff File
add - tests/thrusection/specific_locked/B5 Diff File
add - tests/thrusection/specific_locked/B6 Diff File
add - tests/thrusection/specific_locked/B7 Diff File
add - tests/thrusection/specific_locked/B9 Diff File
add - tests/thrusection/specific_locked/C1 Diff File
add - tests/thrusection/specific_locked/C2 Diff File
add - tests/thrusection/specific_locked/C4 Diff File
add - tests/thrusection/specific_locked/C5 Diff File
add - tests/thrusection/specific_locked/C6 Diff File
add - tests/thrusection/specific_locked/C8 Diff File
add - tests/thrusection/specific_locked/C9 Diff File
add - tests/thrusection/specific_locked/D1 Diff File
add - tests/thrusection/specific_locked/D3 Diff File
add - tests/thrusection/specific_locked/D4 Diff File
add - tests/thrusection/specific_locked/D5 Diff File
add - tests/thrusection/specific_locked/D7 Diff File
add - tests/thrusection/specific_locked/D8 Diff File
add - tests/thrusection/specific_locked/D9 Diff File
add - tests/thrusection/specific_locked/E1 Diff File
add - tests/thrusection/specific_locked/E2 Diff File
add - tests/thrusection/specific_locked/E3 Diff File
add - tests/thrusection/specific_locked/E4 Diff File
add - tests/thrusection/specific_locked/E6 Diff File
add - tests/thrusection/specific_locked/E7 Diff File
add - tests/thrusection/specific_locked/E8 Diff File
add - tests/thrusection/specific_locked/F1 Diff File
add - tests/thrusection/specific_locked/F2 Diff File
add - tests/thrusection/specific_locked/F3 Diff File
add - tests/thrusection/specific_locked/F5 Diff File
add - tests/thrusection/specific_locked/F6 Diff File
add - tests/thrusection/specific_locked/F7 Diff File
add - tests/thrusection/specific_locked/F9 Diff File
add - tests/thrusection/specific_locked/G1 Diff File
add - tests/thrusection/specific_locked/G2 Diff File
add - tests/thrusection/specific_locked/G4 Diff File
add - tests/thrusection/specific_locked/G6 Diff File
add - tests/thrusection/specific_locked/N5 Diff File
add - tests/thrusection/specific_locked/N6 Diff File

Issue History

Date Modified Username Field Change
2017-04-07 20:56 isn New Issue
2017-04-07 20:56 isn Assigned To => msv
2017-04-07 20:57 isn Assigned To msv => isn
2017-04-07 20:57 isn Status new => assigned
2017-04-07 20:58 isn Steps to Reproduce Updated
2017-04-07 20:59 isn Description Updated
2017-04-10 18:07 isn Relationship added child of 0027166
2017-05-11 16:19 git Note Added: 0065838
2017-07-24 09:22 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:09 msv Target Version 7.3.0 => 7.4.0
2018-01-09 17:59 git Note Added: 0073277
2018-01-10 12:39 isn Note Added: 0073281
2018-01-10 12:39 isn Assigned To isn => msv
2018-01-10 12:39 isn Status assigned => resolved
2018-01-11 12:46 msv Note Added: 0073348
2018-01-11 12:46 msv Assigned To msv => isn
2018-01-11 12:46 msv Status resolved => assigned
2018-01-17 16:53 git Note Added: 0073479
2018-01-18 16:10 git Note Added: 0073493
2018-01-18 19:53 isn Note Added: 0073500
2018-01-18 19:53 isn Assigned To isn => msv
2018-01-18 19:53 isn Status assigned => resolved
2018-01-19 13:57 msv Note Added: 0073517
2018-01-19 13:58 msv Assigned To msv => isn
2018-01-19 13:58 msv Status resolved => assigned
2018-01-19 15:59 git Note Added: 0073532
2019-08-12 16:54 msv Target Version 7.4.0 => 7.5.0
2020-09-14 22:54 msv Target Version 7.5.0 => 7.6.0
2021-08-29 18:51 msv Target Version 7.6.0 => 7.7.0
2021-11-23 16:13 szy Assigned To isn => asuraven
2021-11-23 17:59 asuraven Note Added: 0105374
2021-12-06 14:21 asuraven Note Added: 0105697
2021-12-24 11:21 asuraven Time allocated 24.12.2021: 6 h. => set
2021-12-27 17:29 asuraven Time allocated 24.12.2021: 6 h. => set
2021-12-28 19:49 git Note Added: 0106238
2021-12-28 20:04 asuraven Time allocated 28.12.2021: 8 h. => set
2021-12-28 21:09 asuraven Time allocated Deleted 2021-12-28: 8,00 h. => deleted
2021-12-28 21:09 asuraven Time allocated 28.12.2021: 6 h. => set
2021-12-30 14:46 git Note Added: 0106245
2021-12-30 14:56 asuraven Time allocated 27.12.2021: 7 h. => set
2021-12-30 14:57 asuraven Time allocated 29.12.2021: 8 h. => set
2021-12-30 14:57 asuraven Time allocated 30.12.2021: 7 h. => set
2022-01-10 13:52 git Note Added: 0106278
2022-01-10 18:08 asuraven Assigned To asuraven => msv
2022-01-10 18:08 asuraven Status assigned => resolved
2022-01-10 18:08 asuraven Note Added: 0106290
2022-01-11 12:17 msv Note Added: 0106292
2022-01-11 12:17 msv Assigned To msv => asuraven
2022-01-11 12:17 msv Status resolved => assigned
2022-01-13 18:21 git Note Added: 0106351
2022-01-14 14:24 git Note Added: 0106366
2022-01-14 17:06 asuraven Assigned To asuraven => msv
2022-01-14 17:06 asuraven Status assigned => resolved
2022-01-14 17:06 asuraven Note Added: 0106369
2022-01-14 17:08 asuraven Time allocated 10.1.2022: 4 h. => set
2022-01-14 17:09 asuraven Time allocated 11.1.2022: 3 h. => set
2022-01-14 17:13 asuraven Time allocated 14.1.2022: 4 h. => set
2022-01-14 18:07 msv Note Added: 0106371
2022-01-14 18:07 msv Assigned To msv => asuraven
2022-01-14 18:07 msv Status resolved => assigned
2022-01-14 18:16 msv Note Edited: 0106371
2022-01-14 18:17 git Note Added: 0106372
2022-01-14 18:18 asuraven Assigned To asuraven => msv
2022-01-14 18:18 asuraven Status assigned => resolved
2022-01-14 18:18 asuraven Note Added: 0106373
2022-01-14 18:39 msv Assigned To msv => bugmaster
2022-01-14 18:39 msv Status resolved => reviewed
2022-01-14 18:39 msv Note Added: 0106376
2022-01-22 11:46 smoskvin Status reviewed => tested
2022-01-22 11:46 smoskvin Note Added: 0106516
2022-01-22 11:49 smoskvin Test case number => thrusection/not_solids_locked/A1 B1 C1 thrusection/solids_locked/A1 A2 thrusection/specific/N5
2022-01-22 12:09 smoskvin Changeset attached => occt master 70737683
2022-01-22 12:28 bugmaster Status tested => verified
2022-01-22 12:40 git Note Added: 0106526
2022-01-22 12:40 git Note Added: 0106527
2022-01-22 12:40 git Note Added: 0106528
2022-01-22 12:40 git Note Added: 0106529
2022-01-22 12:40 git Note Added: 0106530