View Issue Details

IDProjectCategoryView StatusLast Update
0024876Open CASCADEOCCT:Modeling Algorithmspublic2016-12-09 08:43
ReporterabvAssigned Toapn  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Target Version6.8.0Fixed in Version6.8.0 
Summary0024876: Add protection of shapes against modification of geometry
DescriptionImplementation of topological data model and modeling algorithms in OCCT should follow general approach that each operation produces new shape without modifying its arguments. This is especially important for OCAF which relies on this feature for its Undo/Redo mechanism.

The problem is that this rule seems to be not documented and is not always followed, see #24302.

OCCT shape data structure (TopoDS_Shape) and low-level tools modifying it (BRep package) use special flag Free/Frozen to protect against modification of topology. The idea is to add similar flag for modification of geometric data in the shapes (including tolerances), and use it to protect against modification of input shapes by algorithms. Having this protection available, it will be possible to find all places in the code violating the rule, and fix them.
TagsNo tags attached.
Test case numberNot needed

Relationships

parent of 0025173 closedbugmaster Community VS 2012: linker errors 

Activities

ink

2014-05-19 11:05

developer   ~0029380

Added flag "locked" for protection of geometric data in the shapes (including tolerances). To set a flag added command "setflags".
These changes are located in branch CR24876. Please review.

gka

2014-05-21 11:41

developer   ~0029429

Branch CR24876 is ready to be tested.

apv

2014-05-28 11:46

tester   ~0029568

Last edited: 2014-05-28 12:02

Dear BugMaster,

Branch CR24876 (and products from GIT master) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 5db6f333972d3df9b411cef2a150dcdc69c8a183

Number of compiler warnings:

Linux: 17 (17 on master)
Windows: 0 (0 on master)
MacOS: 202 (202 on master)

products component :
Linux: 11 (11 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24876-master-occt/Debian60-64/summary.html
http://occt-tests/CR24876-master-occt/Windows-32-VC9/summary.html
boolean - bopcut_2d (005) - D5

Testing cases:
Absent

Testing on Linux:
Total MEMORY difference: 359749648 / 359742796
Total CPU difference: 51283.3099999998 / 51526.670000000115

Testing on Windows:
Total MEMORY difference: 382183620 / 382734216
Total CPU difference: 38962.71875 / 39034.0625

gka

2014-07-08 13:32

developer   ~0030000

This fix is rebased on current master, test case "bopcut_2d(005) D5" was modified.
Branch CR24876_1 is ready to be tested.

mkv

2014-07-09 15:33

tester   ~0030036

Dear BugMaster,

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

Number of compiler warnings:

occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
MacOS: 199 (199 on master)

products component :
Linux: 11 (11 on master)
Windows: 2 (2 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 350220960 / 349968948
Total CPU difference: 54527.42000000005 / 52504.370000000075

Testing on Windows:
Total MEMORY difference: 377051416 / 377481972
Total CPU difference: 39175.96875 / 39673.921875

There are no differences in images found by testdiff.

git

2014-07-22 16:10

administrator   ~0030333

Branch CR24876 has been deleted by inv.

SHA-1: 5db6f333972d3df9b411cef2a150dcdc69c8a183

git

2014-07-22 16:10

administrator   ~0030334

Branch CR24876_1 has been deleted by inv.

SHA-1: bd7b30001727e53d2bc3b18176d3be9f5ee5e194

Related Changesets

occt: master ebfb9ce2

2014-07-10 10:42:12

ink


Committer: apn Details Diff
0024876: Add protection of shapes against modification of geometry

Added flag "locked" for protection of geometric data in the shapes (including tolerances).
Modification test case to avoid regression.
Affected Issues
0024876
mod - src/BRep/BRep_Builder.cxx Diff File
mod - src/DBRep/DBRep.cxx Diff File
mod - src/TopoDS/TopoDS.cdl Diff File
mod - src/TopoDS/TopoDS_Shape.cdl Diff File
mod - src/TopoDS/TopoDS_Shape.lxx Diff File
mod - src/TopoDS/TopoDS_TShape.cdl Diff File
mod - src/TopoDS/TopoDS_TShape.lxx Diff File
add - tests/boolean/bopcut_2d/D5 Diff File

Issue History

Date Modified Username Field Change
2014-04-28 16:35 abv New Issue
2014-04-28 16:35 abv Assigned To => ifv
2014-05-19 10:14 abv Assigned To ifv => ink
2014-05-19 10:14 abv Status new => assigned
2014-05-19 11:05 ink Note Added: 0029380
2014-05-19 11:10 ink Assigned To ink => abv
2014-05-19 14:53 abv Status assigned => resolved
2014-05-21 11:18 abv Assigned To abv => gka
2014-05-21 11:41 gka Note Added: 0029429
2014-05-21 11:41 gka Status resolved => reviewed
2014-05-22 11:10 bugmaster Assigned To gka => apn
2014-05-26 17:42 apn Assigned To apn => apv
2014-05-28 11:46 apv Note Added: 0029568
2014-05-28 11:47 apv Note Edited: 0029568
2014-05-28 11:47 apv Note Edited: 0029568
2014-05-28 11:48 apv Assigned To apv => ink
2014-05-28 11:48 apv Status reviewed => assigned
2014-05-28 12:02 apn Note Edited: 0029568
2014-07-08 13:32 gka Note Added: 0030000
2014-07-08 13:32 gka Status assigned => resolved
2014-07-08 13:32 gka Status resolved => reviewed
2014-07-08 14:39 mkv Assigned To ink => mkv
2014-07-09 15:33 mkv Note Added: 0030036
2014-07-09 15:34 mkv Test case number => Not needed
2014-07-09 15:34 mkv Assigned To mkv => bugmaster
2014-07-09 15:34 mkv Status reviewed => tested
2014-07-11 14:22 apn Changeset attached => occt master ebfb9ce2
2014-07-11 14:22 apn Assigned To bugmaster => apn
2014-07-11 14:22 apn Status tested => verified
2014-07-11 14:22 apn Resolution open => fixed
2014-07-22 16:10 git Note Added: 0030333
2014-07-22 16:10 git Note Added: 0030334
2014-08-20 17:26 Pawel Relationship added parent of 0025173
2014-11-11 12:45 aiv Fixed in Version => 6.8.0
2014-11-11 12:57 aiv Status verified => closed