View Issue Details

IDProjectCategoryView StatusLast Update
0025467Open CASCADEOCCT:Visualizationpublic2021-11-14 12:12
Reportersan Assigned Tokgv  
PrioritynormalSeverityintegration request 
Status closedResolutionfixed 
Product Version6.8.0 
Target Version7.4.0Fixed in Version7.4.0 
Summary0025467: Visualization - Possibility to remove AIS_LocalContext class
DescriptionAIS_LocalContext has the following roles:

  1. Local selection currently works in a local context only. This looks rather an artificial limitation, because the selection mode management and the selection algorithm itself do not care about local/global contexts.

  2. Temporary selection environment. A convenient aspect is that all local selection modes are deactivated automatically when a local context is closed, and previously active global selection is restored. Using local contexts, a stack of selection states is organized, but it is not clear if more than one local context has ever been used in practice or not.

  3. Temporary visualization environment. Interactive objects displayed in a local context are marked as temporary and they are removed by default when a local context is closed. This is at least a disputable advantage, because normally an application developer wants to fully control the lifecycle of an interactive object.


Meanwhile, the fee is that a lot of code is duplicated among AIS_InteractiveContext and AIS_LocalContext. In general, forcing developers to open a local context in order to use local selection results in numerous issues related to display/erase, display mode management, update of presentations, etc.

The idea is to consider the possibility to get rid of local context and thus simplify local/global selection management. At the same time, it is necessary to keep the features of AIS_LocalContext, which are considered as useful.
TagsNo tags attached.
Test case numberNot needed

Relationships

parent of 0027874 closedbugmaster Community Visualization - There are no way to add local selection in Global Context. 
parent of 0028162 closedapn Open CASCADE Draw Harness - eliminate usage of deprecated Local Context 
parent of 0030450 closedbugmaster Open CASCADE Visualization - AIS_InteractiveContext::MoveTo() never uses V3d_View::ImmediateRedraw() 
parent of 0032165 closedbugmaster Open CASCADE Visualization - remove obsolete method AIS_InteractiveContext::PurgeViewer() 
parent of 0032662 verifiedkgv Community Coding - Missing header file in AIS_DataMapOfSelStat.hxx 
related to 0029470 closedbugmaster Open CASCADE Samples - eliminate references to deprecated Local Context from MFC sample 
related to 0029425 closedbugmaster Community Visualization - AIS_InteractiveContext::SetAutomaticHilight() has no affect 

Activities

git

2018-02-21 21:42

administrator   ~0074097

Branch CR25467 has been created by kgv.

SHA-1: 16953063a9c0772f00f5fb221a2038fbb2e27410


Detailed log of new commits:

Author: kgv
Date: Wed Feb 21 21:42:37 2018 +0300

    0025467: Visualization - Possibility to remove AIS_LocalContext class

git

2018-02-21 22:54

administrator   ~0074098

Branch CR25467 has been updated forcibly by kgv.

SHA-1: 945d6cd6fc42da77639592ed4826450a76d8942c

git

2018-02-21 22:56

administrator   ~0074099

Branch CR25467 has been updated forcibly by kgv.

SHA-1: f30dbcc2d601e66d6c168a019575077301c8a019

git

2018-02-21 23:47

administrator   ~0074102

Branch CR25467 has been updated forcibly by kgv.

SHA-1: ebc03142697c96b4c2a02841382a0cc75db0966b

git

2018-02-22 08:24

administrator   ~0074106

Branch CR25467 has been updated forcibly by kgv.

SHA-1: daa2250ea14a89bc68100b3d312bef4ab8740661

git

2018-02-22 12:00

administrator   ~0074110

Branch CR25467 has been updated forcibly by kgv.

SHA-1: 4493b045043f13f69e72be23025aecc9d7c8c53d

git

2018-02-22 12:20

administrator   ~0074111

Branch CR25467 has been updated forcibly by kgv.

SHA-1: f15ef4360f572f20071c27b5925e383e0c37f080

kgv

2018-02-22 12:21

developer   ~0074112

Patch is ready for review.

git

2018-02-22 12:50

administrator   ~0074113

Branch CR25467 has been updated forcibly by kgv.

SHA-1: ba762a1f6d492f132fc6ca0fb2d0be7dc584cb16

git

2018-02-22 15:00

administrator   ~0074118

Branch CR25467 has been updated forcibly by kgv.

SHA-1: 44894eaf0718953c33e8f567cd3c54ce78b61a34

git

2018-06-20 09:43

administrator   ~0076839

Branch CR25467_1 has been created by kgv.

SHA-1: 5a68d0004ab9bacc9aea0746b770fbfc4e236490


Detailed log of new commits:

Author: kgv
Date: Wed Jun 20 08:48:40 2018 +0300

    0025467: Visualization - Possibility to remove AIS_LocalContext class
    
    Deprecated class AIS_LocalContext has been removed,
    as well as related classes AIS_DataMapOfILC, AIS_LocalStatus,
    SelectMgr_SequenceOfSelector, SelectMgr_DataMapOfObjectSelectors.
    Removed enumeration value AIS_DS_Temporary.
    
    AIS_InteractiveContext - removed methods related to Local Context:
    ::HasOpenedContext(), ::HighestIndex(), ::LocalContext(),
    ::LocalSelector(), ::OpenLocalContext(), ::CloseLocalContext(),
    ::IndexOfCurrentLocal(), ::CloseAllContexts(), ::ResetOriginalState(),
    ::ClearLocalContext(), ::UseDisplayedObjects(), ::NotUseDisplayedObjects(),
    ::SetShapeDecomposition(), ::SetTemporaryAttributes(),
    ::ActivateStandardMode(), ::DeactivateStandardMode(), ::KeepTemporary(),
    ::SubIntensityOn(), ::SubIntensityOff(),
    ::ActivatedStandardModes(), ::IsInLocal()
    ::AddOrRemoveSelected() taking TopoDS_Shape.
    
    SelectMgr_SelectionManager has been simplified so that now it
    support only single Viewer Selector; eliminated code duplication.
    
    Draw Harness - removed unused commands vsetam, vunsetam.
    Removed argument -local from commands vselmode, vremove, vdisplay, vdisplayall, verase.
    Removed unused methods ViewerTest::StandardModeActivation(), ::PickObject(), PickObjects().
    Removed test cases related to testing Local Context issues.
    
    The methods AIS_InteractiveContext::Display() and ::Load()
    taking argument theToAllowDecomposition have been marked as deprecated;
    the new methods without this unused argument should be used instead.
    AIS_InteractiveContext::DisplayedObjects() - removed argument theOnlyFromNeutral.

kgv

2018-06-20 11:34

developer   ~0076844

Please take the patch.

http://jenkins-test-11.nnov.opencascade.com/view/CR25467_1-CR25467_1-KGV/

bugmaster

2018-06-20 19:34

administrator   ~0076858

Combination -
OCCT branch : CR25467_1 SHA - 5a68d0004ab9bacc9aea0746b770fbfc4e236490
Products branch : CR25467_1 SHA - 5035873b798d17e807fa12c4734f83c999caf0bf
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:
Debian70-64:
OCCT
Total CPU difference: 17038.739999999845 / 17005.210000000097 [+0.20%]
Products
Total CPU difference: 7518.600000000038 / 7460.130000000034 [+0.78%]
Windows-64-VC10:
OCCT
Total CPU difference: 16907.684781898606 / 16831.54069379858 [+0.45%]
Products
Total CPU difference: 8223.031111399883 / 8259.114142699882 [-0.44%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2018-06-25 13:58

administrator   ~0077025

Branch CR25467_1 has been deleted by kgv.

SHA-1: 5a68d0004ab9bacc9aea0746b770fbfc4e236490

git

2018-06-30 13:34

administrator   ~0077141

Branch CR25467 has been deleted by inv.

SHA-1: 44894eaf0718953c33e8f567cd3c54ce78b61a34

Related Changesets

occt: master 665fcc31

2018-06-20 05:48:40

kgv


Committer: bugmaster Details Diff
0025467: Visualization - Possibility to remove AIS_LocalContext class

Local/global selection management has been simplified by removing the distinct local context, while keeping its useful features.

The following features have been removed:
Deprecated classes AIS_LocalContext, AIS_DataMapOfILC, AIS_LocalStatus,
SelectMgr_SequenceOfSelector and SelectMgr_DataMapOfObjectSelectors;
Enumeration value AIS_DS_Temporary;
In AIS_InteractiveContext: the following methods related to Local Context:
::HasOpenedContext(), ::HighestIndex(), ::LocalContext(),
::LocalSelector(), ::OpenLocalContext(), ::CloseLocalContext(),
::IndexOfCurrentLocal(), ::CloseAllContexts(), ::ResetOriginalState(),
::ClearLocalContext(), ::UseDisplayedObjects(), ::NotUseDisplayedObjects(),
::SetShapeDecomposition(), ::SetTemporaryAttributes(),
::ActivateStandardMode(), ::DeactivateStandardMode(), ::KeepTemporary(),
::SubIntensityOn(), ::SubIntensityOff(),
::ActivatedStandardModes(), ::IsInLocal() and ::AddOrRemoveSelected() taking TopoDS_Shape;
In Draw Harness: unused commands vsetam and vunsetam;
Argument - local from commands vselmode, vremove, vdisplay, vdisplayall and verase;
Unused methods ViewerTest::StandardModeActivation(), ::PickObject() and ::PickObjects();
Test cases related to testing Local Context issues;
In AIS_InteractiveContext::DisplayedObjects(), the argument theOnlyFromNeutral.

Additional changes:
SelectMgr_SelectionManager now supports only single Viewer Selector.
The methods AIS_InteractiveContext::Display() and ::Load()
taking argument theToAllowDecomposition have been marked as deprecated; new methods without this unused argument should be used instead.
Affected Issues
0025467
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - samples/mfc/standard/09_Animation/src/AnimationDoc.cpp Diff File
rm - src/AIS/AIS_DataMapIteratorOfDataMapOfILC.hxx Diff File
rm - src/AIS/AIS_DataMapOfILC.hxx Diff File
mod - src/AIS/AIS_DisplayStatus.hxx Diff File
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
rm - src/AIS/AIS_LocalContext.cxx Diff File
rm - src/AIS/AIS_LocalContext.hxx Diff File
rm - src/AIS/AIS_LocalContext.lxx Diff File
rm - src/AIS/AIS_LocalContext_1.cxx Diff File
rm - src/AIS/AIS_LocalStatus.cxx Diff File
rm - src/AIS/AIS_LocalStatus.hxx Diff File
rm - src/AIS/AIS_LocalStatus.lxx Diff File
mod - src/AIS/FILES Diff File
mod - src/QABugs/QABugs_14.cxx Diff File
mod - src/QABugs/QABugs_17.cxx Diff File
mod - src/QABugs/QABugs_19.cxx Diff File
mod - src/QABugs/QABugs_3.cxx Diff File
mod - src/SelectMgr/FILES Diff File
rm - src/SelectMgr/SelectMgr_DataMapIteratorOfDataMapOfObjectSelectors.hxx Diff File
rm - src/SelectMgr/SelectMgr_DataMapOfObjectSelectors.hxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.hxx Diff File
rm - src/SelectMgr/SelectMgr_SequenceOfSelector.hxx Diff File
mod - src/ViewerTest/ViewerTest.cxx Diff File
mod - src/ViewerTest/ViewerTest_ObjectCommands.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
rm - tests/bugs/vis/buc26658 Diff File
rm - tests/bugs/vis/buc60574 Diff File
rm - tests/bugs/vis/buc60614 Diff File
rm - tests/bugs/vis/buc60818 Diff File
rm - tests/bugs/vis/bug1629 Diff File
rm - tests/bugs/vis/bug1786 Diff File
rm - tests/bugs/vis/bug232 Diff File
rm - tests/bugs/vis/bug24965 Diff File
rm - tests/bugs/vis/bug24966 Diff File
rm - tests/bugs/vis/bug25528 Diff File
rm - tests/bugs/vis/bug26076 Diff File
rm - tests/bugs/vis/bug26172 Diff File
rm - tests/bugs/vis/bug26945 Diff File
rm - tests/bugs/vis/bug597_1 Diff File
rm - tests/bugs/vis/bug597_2 Diff File
rm - tests/bugs/vis/bug597_3 Diff File
rm - tests/bugs/vis/bug597_4 Diff File
rm - tests/bugs/vis/bug597_5 Diff File
rm - tests/bugs/vis/bug597_6 Diff File
rm - tests/bugs/vis/bug597_7 Diff File
rm - tests/bugs/vis/ger61351_1 Diff File
rm - tests/bugs/vis/ger61351_2 Diff File
rm - tests/bugs/vis/ger61351_3 Diff File
rm - tests/bugs/vis/ger61351_4 Diff File
rm - tests/bugs/vis/ger61351_5 Diff File
rm - tests/bugs/vis/ger61351_6 Diff File
mod - tools/VInspector/VInspector_Tools.cxx Diff File
mod - tools/VInspector/VInspector_Window.cxx Diff File

occt: master 68dcee02

2018-06-20 05:48:40

kgv

Details Diff
0025467: Visualization - Possibility to remove AIS_LocalContext class

Deprecated functionality related to Local Context has been removed.

The following classes and types have been removed:
AIS_LocalContext, AIS_DataMapOfILC, AIS_LocalStatus, SelectMgr_SequenceOfSelector, SelectMgr_DataMapOfObjectSelectors.
Value AIS_DS_Temporary has been removed from enumeration AIS_DisplayStatus.

The following methods related to Local Context have been removed from AIS_InteractiveContext:
::HasOpenedContext(), ::HighestIndex(), ::LocalContext(),
::LocalSelector(), ::OpenLocalContext(), ::CloseLocalContext(),
::IndexOfCurrentLocal(), ::CloseAllContexts(), ::ResetOriginalState(),
::ClearLocalContext(), ::UseDisplayedObjects(), ::NotUseDisplayedObjects(),
::SetShapeDecomposition(), ::SetTemporaryAttributes(),
::ActivateStandardMode(), ::DeactivateStandardMode(), ::KeepTemporary(),
::SubIntensityOn(), ::SubIntensityOff(),
::ActivatedStandardModes(), ::IsInLocal()
and ::AddOrRemoveSelected() taking TopoDS_Shape.

The methods AIS_InteractiveContext::Display() and ::Load()
taking argument theToAllowDecomposition have been marked as deprecated;
the new methods without this unused argument should be used instead.
AIS_InteractiveContext::DisplayedObjects() - removed argument theOnlyFromNeutral.

SelectMgr_SelectionManager has been simplified so that now it support only single Viewer Selector.

The argument -local has been removed from Draw Harness commands vselmode, vremove, vdisplay, vdisplayall, verase.
Affected Issues
0025467
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - samples/mfc/standard/09_Animation/src/AnimationDoc.cpp Diff File
rm - src/AIS/AIS_DataMapIteratorOfDataMapOfILC.hxx Diff File
rm - src/AIS/AIS_DataMapOfILC.hxx Diff File
mod - src/AIS/AIS_DisplayStatus.hxx Diff File
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
rm - src/AIS/AIS_LocalContext.cxx Diff File
rm - src/AIS/AIS_LocalContext.hxx Diff File
rm - src/AIS/AIS_LocalContext.lxx Diff File
rm - src/AIS/AIS_LocalContext_1.cxx Diff File
rm - src/AIS/AIS_LocalStatus.cxx Diff File
rm - src/AIS/AIS_LocalStatus.hxx Diff File
rm - src/AIS/AIS_LocalStatus.lxx Diff File
mod - src/AIS/FILES Diff File
mod - src/QABugs/QABugs_14.cxx Diff File
mod - src/QABugs/QABugs_17.cxx Diff File
mod - src/QABugs/QABugs_19.cxx Diff File
mod - src/QABugs/QABugs_3.cxx Diff File
mod - src/SelectMgr/FILES Diff File
rm - src/SelectMgr/SelectMgr_DataMapIteratorOfDataMapOfObjectSelectors.hxx Diff File
rm - src/SelectMgr/SelectMgr_DataMapOfObjectSelectors.hxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectionManager.hxx Diff File
rm - src/SelectMgr/SelectMgr_SequenceOfSelector.hxx Diff File
mod - src/ViewerTest/ViewerTest.cxx Diff File
mod - src/ViewerTest/ViewerTest_ObjectCommands.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
rm - tests/bugs/vis/buc26658 Diff File
rm - tests/bugs/vis/buc60574 Diff File
rm - tests/bugs/vis/buc60614 Diff File
rm - tests/bugs/vis/buc60818 Diff File
rm - tests/bugs/vis/bug1629 Diff File
rm - tests/bugs/vis/bug1786 Diff File
rm - tests/bugs/vis/bug232 Diff File
rm - tests/bugs/vis/bug24965 Diff File
rm - tests/bugs/vis/bug24966 Diff File
rm - tests/bugs/vis/bug25528 Diff File
rm - tests/bugs/vis/bug26076 Diff File
rm - tests/bugs/vis/bug26172 Diff File
rm - tests/bugs/vis/bug26945 Diff File
rm - tests/bugs/vis/bug597_1 Diff File
rm - tests/bugs/vis/bug597_2 Diff File
rm - tests/bugs/vis/bug597_3 Diff File
rm - tests/bugs/vis/bug597_4 Diff File
rm - tests/bugs/vis/bug597_5 Diff File
rm - tests/bugs/vis/bug597_6 Diff File
rm - tests/bugs/vis/bug597_7 Diff File
rm - tests/bugs/vis/ger61351_1 Diff File
rm - tests/bugs/vis/ger61351_2 Diff File
rm - tests/bugs/vis/ger61351_3 Diff File
rm - tests/bugs/vis/ger61351_4 Diff File
rm - tests/bugs/vis/ger61351_5 Diff File
rm - tests/bugs/vis/ger61351_6 Diff File
mod - tools/VInspector/VInspector_Tools.cxx Diff File
mod - tools/VInspector/VInspector_Window.cxx Diff File

Issue History

Date Modified Username Field Change
2014-11-12 13:27 san New Issue
2014-11-12 13:27 san Assigned To => kgv
2014-11-12 13:27 san Description Updated
2014-11-12 15:05 san Summary Visualization - Possibility to remove AIS_LocalContext => Visualization - Possibility to remove AIS_LocalContext class
2016-10-25 09:45 kgv Target Version 7.1.0 => 7.2.0
2016-11-11 11:09 kgv Relationship added parent of 0027874
2017-07-10 10:56 kgv Relationship added related to 0028162
2017-07-10 10:56 kgv Relationship replaced parent of 0028162
2017-07-20 11:33 kgv Target Version 7.2.0 => 7.4.0
2018-02-21 21:42 git Note Added: 0074097
2018-02-21 22:54 git Note Added: 0074098
2018-02-21 22:56 git Note Added: 0074099
2018-02-21 23:47 git Note Added: 0074102
2018-02-22 08:24 git Note Added: 0074106
2018-02-22 12:00 git Note Added: 0074110
2018-02-22 12:20 git Note Added: 0074111
2018-02-22 12:21 kgv Note Added: 0074112
2018-02-22 12:21 kgv Assigned To kgv => san
2018-02-22 12:21 kgv Severity feature => integration request
2018-02-22 12:21 kgv Status new => resolved
2018-02-22 12:21 kgv Target Version 7.4.0 => 7.3.0
2018-02-22 12:50 git Note Added: 0074113
2018-02-22 15:00 git Note Added: 0074118
2018-02-27 11:25 abv Target Version 7.3.0 => 7.4.0
2018-02-27 11:30 abv Relationship added related to 0029470
2018-03-13 14:38 kgv Relationship added related to 0029425
2018-06-20 09:43 git Note Added: 0076839
2018-06-20 11:34 kgv Note Added: 0076844
2018-06-20 11:34 kgv Assigned To san => bugmaster
2018-06-20 11:34 kgv Status resolved => reviewed
2018-06-20 19:34 bugmaster Test case number => Not needed
2018-06-20 19:34 bugmaster Note Added: 0076858
2018-06-20 19:34 bugmaster Status reviewed => tested
2018-06-23 19:05 bugmaster Changeset attached => occt master 665fcc31
2018-06-23 19:05 bugmaster Status tested => verified
2018-06-23 19:05 bugmaster Resolution open => fixed
2018-06-25 13:58 git Note Added: 0077025
2018-06-30 12:48 kgv Changeset attached => occt master 68dcee02
2018-06-30 12:48 kgv Assigned To bugmaster => kgv
2018-06-30 13:34 git Note Added: 0077141
2019-01-21 13:06 kgv Relationship added parent of 0030450
2021-02-25 12:51 kgv Relationship added parent of 0032165
2021-11-14 12:12 kgv Relationship added parent of 0032662