DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0032008

Modeling Algorithms - disallow implicit copy of Extrema algorithms

Open CASCADEOCCT:Modeling Algorithmsclosed19 public notes

Search issues

Description

Extrema classes provides implicit copy constructors, however these tools look too heavy for such usage and better to be avoided.

Public activity

19 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Fri Dec 18 14:29:59 2020 +0300

    0032008: Foundation Classes - NCollection_Array2::Resize() does not allocate pointer array
    
    NCollection_Array2::Resize() has been fixed to set myDeletable before calling Allocate().
    
    Extrema_GenExtPS now prefers resizing of Array2 tables instead of managing tables by extra handles.
    Removed unsafe casts to Adaptor3d_SurfacePtr/Adaptor3d_CurvePtr in Extrema classes.
02Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
03Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
04Author
Patch is ready for review
- OCCT branch: [archived branch]

http://jenkins-test-12.nnov.opencascade.com:8080/view/CR32008-master-KGV/
05Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Fri Dec 18 14:29:59 2020 +0300

    0032008: Modeling Algorithms - disallow implicit copy of Extrema algorithms
    
    Extrema_GenExtPS now prefers resizing of Array2 tables instead of managing tables by extra handles.
    Removed unsafe casts to Adaptor3d_SurfacePtr/Adaptor3d_CurvePtr in Extrema classes.
    
    Extrema_GenExtPS, Extrema_GenExtSS, Extrema_ExtCS -
    copies by value are now disallowed;
    several unexpected places copying the object have been fixed.
    
    IntTools_Context - maps of void* have been replaced by typed maps.
06Commenter 6
Why didn't you get rid of void* for the type of curves in Extrema_ExtCC?
  Standard_Address myC[2];


+ myECC = Extrema_ECC (C1, C2),
...
+ myECC = Extrema_ECC (C1, C2, U1, U2, V1, V2),

(Use semicolon instead of comma at the end of statements.)
Avoid usage of these copy-ctors, as in Perform() the first thing is done is initialization of myECC.

+ NCollection_DataMap<Handle(Standard_Transient), GeomAPI_ProjectPointOnCurve*, TColStd_MapTransientHasher> myProjPTMap;

Please replace the key type Handle(Standard_Transient) with Handle(Geom_Curve).
07Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
08Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
09Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
10Commenter 2
Branch [archived branch] has been updated by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Wed Mar 3 23:17:59 2021 +0300

    Extrema_ExtCC, Extrema_ExtCC2d - eliminated unsafe casts.

11Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Fri Dec 18 14:29:59 2020 +0300

    0032008: Modeling Algorithms - disallow implicit copy of Extrema algorithms
    
    Extrema_GenExtPS now prefers resizing of Array2 tables instead of managing tables by extra handles.
    Removed unsafe casts to Adaptor3d_SurfacePtr/Adaptor3d_CurvePtr in Extrema classes.
    Removed unsafe casts to curve adaptors in Extrema_ExtCC, Extrema_ExtCC2d classes.
    
    Extrema_GenExtPS, Extrema_GenExtSS, Extrema_ExtCS -
    copies by value are now disallowed;
    several unexpected places copying the object have been fixed.
    
    IntTools_Context - maps of void* have been replaced by typed maps.
12Author
Remarks have been pushed to the patch
- OCCT: branch CR32008_2.

http://jenkins-test-12.nnov.opencascade.com:8080/view/CR32008_2-master-KGV/
13Commenter 2
Branch [archived branch] has been updated forcibly by Author.

[revision removed]
14Commenter 14
For integration:
occt - CR32008_2
products - none
15Commenter 2
Branch [archived branch] has been updated by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Fri Mar 5 12:20:46 2021 +0300

    # fix compatibility with VS2008

16Commenter 1
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
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: 17744.80000000016 / 17811.87000000015 [-0.38%]
Products
Total CPU difference: 11539.9800000001 / 11543.6500000001 [-0.03%]
Windows-64-VC14:
OCCT
Total CPU difference: 19321.640625 / 19344.390625 [-0.12%]
Products
Total CPU difference: 12868.796875 / 12900.578125 [-0.25%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
17Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
18Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
19Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records