View Issue Details

IDProjectCategoryView StatusLast Update
0027805Open CASCADEOCCT:Visualizationpublic2016-12-09 16:40
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.0.0 
Target Version7.1.0Fixed in Version7.1.0 
Summary0027805: Visualization - AIS_InteractiveContext::FitSelected() is broken for global selection
DescriptionAIS_InteractiveContext::FitSelected() is broken for global selection since #0026272.

+  const Handle(AIS_Selection)& aSelection = AIS_Selection::Selection (aSelName);
+  AIS_MapOfObjectOwners anObjectOwnerMap;
+  for (aSelection->Init(); aSelection->More(); aSelection->Next())
+  {
+    const Handle(AIS_InteractiveObject)& anObj =
+      Handle(AIS_InteractiveObject)::DownCast (aSelection->Value());
+    if (!anObj.IsNull())
+    {

The code used for checking global selection does not work anymore because AIS_Selection::Selection() is always SelectMgr_EntityOwner.

Note that some methods allows assigning to AIS_Selection interactive object which contradicts new selection logic - these places should be checked and AIS_Selection should be probably corrected.
Steps To Reproduce
pload MODELING VISUALIZATION
box b 1 2 3
vclear
vinit View1
vdisplay -dispMode 1 b
vfit
# OK - object fits the screen
vselect 200 200
vfit -selected
# KO - object does not fit the screen
TagsNo tags attached.
Test case numberbugs vis bug27805

Attached Files

  • fitsel_OK.png (2,753 bytes)
  • fitsel_KO.png (2,682 bytes)

Relationships

related to 0026886 closedbugmaster Open CASCADE Visualization, TKV3d - eliminate global variables 

Activities

kgv

2016-08-24 22:24

developer  

fitsel_OK.png (2,753 bytes)

kgv

2016-08-24 22:25

developer  

fitsel_KO.png (2,682 bytes)

git

2016-09-03 12:24

administrator   ~0057441

Branch CR27805 has been created by kgv.

SHA-1: 19fb269e15d911042df20d41323aaba125052948


Detailed log of new commits:

Author: kgv
Date: Sat Sep 3 12:23:55 2016 +0300

    0027805: Visualization - AIS_InteractiveContext::FitSelected() is broken for global selection
    
    AIS_Selection class has been cleaned up:
    - SelectMgr_EntityOwner is now used in interface instead of Standard_Transient.
    - Method ::Select() has been renamed to ::Clear() for clarity.
    - Dropped unused class fields.
    - Owners without Selectable are not added to the list (should never happen).
    
    SelectMgr_SelectableObject::BndBoxOfSelected() has been modified
    to properly compute bounding box of ALL selection Entities
    for specified Owner (only first Entity has been used before the patch).
    
    Methods of AIS_InteractiveContext::DisplaySelected(), ::SetSelectedAspect(),
    ::FitSelected(), ::SubIntensityOff() have been fixed (wrong DownCast).
    AIS_InteractiveContext::AddSelect() now handles properly AIS_InteractiveObject as argument.

kgv

2016-09-03 12:24

developer   ~0057442

Patch is ready for review.

git

2016-09-05 12:56

administrator   ~0057453

Branch CR27805 has been updated forcibly by kgv.

SHA-1: 8fb7b960e9a74c0366a2a5bb37c2f1ec2b03da5e

san

2016-09-05 13:16

developer   ~0057454

Branch CR27805 reviewed without remarks, ready for testing.

apv

2016-09-06 11:53

tester   ~0057496

Dear BugMaster,

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

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: 1141

Compilation error has been detected during building of MFC Products samples on Windows:
http://jenkins-test-05.nnov.opencascade.com/view/CR27805-master/job/CR27805-master-Products-Windows-64-VC10-mfc-samples/1/parsed_console/

Regressions/Differences:
Not detected

Testing cases:
bugs vis bug27805 - OK
http://occt-tests/CR27805-master-OCCT/Debian70-64/bugs/vis/bug27805.html
http://occt-tests/CR27805-master-OCCT/Windows-64-VC10/bugs/vis/bug27805.html

Testing on Linux:
Total MEMORY difference: 89773200 / 89481297 [+0.33%]
Total CPU difference: 19347.770000000095 / 19241.240000000013 [+0.55%]

Testing on Windows:
Total MEMORY difference: 57136785 / 57155154 [-0.03%]
Total CPU difference: 18043.418862198836 / 18057.115749998855 [-0.08%]

apv

2016-09-06 11:54

tester   ~0057497

Dear Kirill,

Branch CR27805 has been rejected due to:
- compilation errors

kgv

2016-09-06 12:04

developer   ~0057500

Branch CR27805 has been pushed to the Products repository.
It updates MFC/ShapeHealer sample - please check its compilation, regression testing is not needed.

apv

2016-09-07 11:40

tester   ~0057547

Dear BugMaster,

Branch CR27805 from occt git-repository (and CR27805 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 3437df85e9474a8d865713f7585fec95f50917bb
SHA-1: 18b1c66ac96df4e57f5dfbed00d2fd1205e65138

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: 1137

Regressions/Differences:
Not detected

Testing cases:
bugs vis bug27805 - OK
http://occt-tests/CR27805-CR27805-OCCT/Debian70-64/bugs/vis/bug27805.html
http://occt-tests/CR27805-CR27805-OCCT/Windows-64-VC10/bugs/vis/bug27805.html

Testing on Linux:
occt component:
Total MEMORY difference: 89759129 / 89458216 [+0.34%]
Total CPU difference: 19385.059999999954 / 19240.850000000013 [+0.75%]
products component:
Total MEMORY difference: 30061243 / 29985574 [+0.25%]
Total CPU difference: 5117.549999999982 / 5115.309999999973 [+0.04%]

Testing on Windows:
occt component:
Total MEMORY difference: 57138470 / 57155154 [-0.03%]
Total CPU difference: 17880.990620998913 / 18057.115749998855 [-0.98%]
products component:
Total MEMORY difference: 21259235 / 21225231 [+0.16%]
Total CPU difference: 4845.983863799949 / 4849.119483899957 [-0.06%]

git

2016-10-28 21:48

administrator   ~0059567

Branch CR27805 has been deleted by kgv.

SHA-1: 8fb7b960e9a74c0366a2a5bb37c2f1ec2b03da5e

Related Changesets

occt: master 02974a19

2016-09-03 09:23:55

kgv


Committer: bugmaster Details Diff
0027805: Visualization - AIS_InteractiveContext::FitSelected() is broken for global selection

AIS_Selection class has been cleaned up:
- SelectMgr_EntityOwner is now used in interface instead of Standard_Transient.
- Method ::Select() has been renamed to ::Clear() for clarity.
- Dropped unused class fields.
- Owners without Selectable are not added to the list (should never happen).

SelectMgr_SelectableObject::BndBoxOfSelected() has been modified
to properly compute bounding box of ALL selection Entities
for specified Owner (only first Entity has been used before the patch).

Methods of AIS_InteractiveContext::DisplaySelected(), ::SetSelectedAspect(),
::FitSelected(), ::SubIntensityOff() have been fixed (wrong DownCast).
AIS_InteractiveContext::AddSelect() now handles properly AIS_InteractiveObject as argument.
Affected Issues
0027805
mod - src/AIS/AIS_InteractiveContext.cxx Diff File
mod - src/AIS/AIS_InteractiveContext.hxx Diff File
mod - src/AIS/AIS_InteractiveContext_1.cxx Diff File
mod - src/AIS/AIS_InteractiveContext_2.cxx Diff File
mod - src/AIS/AIS_LocalContext.cxx Diff File
mod - src/AIS/AIS_LocalContext.hxx Diff File
mod - src/AIS/AIS_LocalContext_1.cxx Diff File
rm - src/AIS/AIS_NDataMapOfTransientIteratorOfListTransient.hxx Diff File
rm - src/AIS/AIS_NListIteratorOfListTransient.hxx Diff File
mod - src/AIS/AIS_Selection.cxx Diff File
mod - src/AIS/AIS_Selection.hxx Diff File
rm - src/AIS/AIS_Selection.lxx Diff File
mod - src/AIS/FILES Diff File
mod - src/SelectMgr/SelectMgr_SelectableObject.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObject.hxx Diff File
add - tests/bugs/vis/bug27805 Diff File

Issue History

Date Modified Username Field Change
2016-08-24 22:23 kgv New Issue
2016-08-24 22:23 kgv Assigned To => kgv
2016-08-24 22:23 kgv Assigned To kgv => vpa
2016-08-24 22:23 kgv Status new => assigned
2016-08-24 22:24 kgv File Added: fitsel_OK.png
2016-08-24 22:25 kgv File Added: fitsel_KO.png
2016-09-03 07:30 kgv Steps to Reproduce Updated
2016-09-03 12:24 git Note Added: 0057441
2016-09-03 12:24 kgv Note Added: 0057442
2016-09-03 12:24 kgv Assigned To vpa => apl
2016-09-03 12:24 kgv Status assigned => resolved
2016-09-03 12:25 kgv Relationship added related to 0026886
2016-09-03 21:27 kgv Assigned To apl => san
2016-09-05 12:56 git Note Added: 0057453
2016-09-05 13:16 san Note Added: 0057454
2016-09-05 13:16 san Assigned To san => bugmaster
2016-09-05 13:16 san Status resolved => reviewed
2016-09-05 14:36 apv Assigned To bugmaster => apv
2016-09-05 16:35 apv Test case number => bugs vis bug27805
2016-09-06 11:53 apv Note Added: 0057496
2016-09-06 11:53 apv Assigned To apv => kgv
2016-09-06 11:53 apv Status reviewed => assigned
2016-09-06 11:54 apv Note Added: 0057497
2016-09-06 12:04 kgv Note Added: 0057500
2016-09-06 12:04 kgv Assigned To kgv => bugmaster
2016-09-06 12:04 kgv Status assigned => resolved
2016-09-06 12:04 kgv Status resolved => reviewed
2016-09-06 12:46 apv Assigned To bugmaster => apv
2016-09-07 11:40 apv Note Added: 0057547
2016-09-07 11:40 apv Assigned To apv => bugmaster
2016-09-07 11:40 apv Status reviewed => tested
2016-09-09 09:40 bugmaster Changeset attached => occt master 02974a19
2016-09-09 09:40 bugmaster Status tested => verified
2016-09-09 09:40 bugmaster Resolution open => fixed
2016-10-28 21:48 git Note Added: 0059567
2016-12-09 16:29 aiv Status verified => closed
2016-12-09 16:40 aiv Fixed in Version => 7.1.0