MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0025467Open CASCADE[OCCT] OCCT:Visualizationpublic2014-11-12 13:272018-06-30 13:34
Reportersan 
Assigned Tokgv 
PrioritynormalSeverityintegration request 
StatusverifiedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 6.8.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
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
Attached Files

- Relationships
parent of 0027874closedbugmaster Community Visualization - There are no way to add local selection in Global Context. 
parent of 0028162closedapn Open CASCADE Draw Harness - eliminate usage of deprecated Local Context 
related to 0029470closedbugmaster Open CASCADE Samples - eliminate references to deprecated Local Context from MFC sample 
related to 0029425verifiedbugmaster Community Visualization - AIS_InteractiveContext::SetAutomaticHilight() has no affect 

-  Notes
(0074097)
git (administrator)
2018-02-21 21:42

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
(0074098)
git (administrator)
2018-02-21 22:54

Branch CR25467 has been updated forcibly by kgv.

SHA-1: 945d6cd6fc42da77639592ed4826450a76d8942c
(0074099)
git (administrator)
2018-02-21 22:56

Branch CR25467 has been updated forcibly by kgv.

SHA-1: f30dbcc2d601e66d6c168a019575077301c8a019
(0074102)
git (administrator)
2018-02-21 23:47

Branch CR25467 has been updated forcibly by kgv.

SHA-1: ebc03142697c96b4c2a02841382a0cc75db0966b
(0074106)
git (administrator)
2018-02-22 08:24

Branch CR25467 has been updated forcibly by kgv.

SHA-1: daa2250ea14a89bc68100b3d312bef4ab8740661
(0074110)
git (administrator)
2018-02-22 12:00

Branch CR25467 has been updated forcibly by kgv.

SHA-1: 4493b045043f13f69e72be23025aecc9d7c8c53d
(0074111)
git (administrator)
2018-02-22 12:20

Branch CR25467 has been updated forcibly by kgv.

SHA-1: f15ef4360f572f20071c27b5925e383e0c37f080
(0074112)
kgv (developer)
2018-02-22 12:21

Patch is ready for review.
(0074113)
git (administrator)
2018-02-22 12:50

Branch CR25467 has been updated forcibly by kgv.

SHA-1: ba762a1f6d492f132fc6ca0fb2d0be7dc584cb16
(0074118)
git (administrator)
2018-02-22 15:00

Branch CR25467 has been updated forcibly by kgv.

SHA-1: 44894eaf0718953c33e8f567cd3c54ce78b61a34
(0076839)
git (administrator)
2018-06-20 09:43

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.
(0076844)
kgv (developer)
2018-06-20 11:34

Please take the patch.

http://jenkins-test-11.nnov.opencascade.com/view/CR25467_1-CR25467_1-KGV/ [^]
(0076858)
bugmaster (administrator)
2018-06-20 19:34

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
(0077025)
git (administrator)
2018-06-25 13:58

Branch CR25467_1 has been deleted by kgv.

SHA-1: 5a68d0004ab9bacc9aea0746b770fbfc4e236490
(0077141)
git (administrator)
2018-06-30 13:34

Branch CR25467 has been deleted by inv.

SHA-1: 44894eaf0718953c33e8f567cd3c54ce78b61a34

- Related Changesets
occt: master 665fcc31
Timestamp: 2018-06-20 05:48:40
Author: 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.
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
Timestamp: 2018-06-20 05:48:40
Author: 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.
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 View Revisions
2014-11-12 13:28 san Relationship added related to 0025466
2014-11-12 13:30 san Relationship added related to 0024965
2014-11-12 13:31 san Relationship added related to 0024966
2014-11-12 15:05 san Summary Visualization - Possibility to remove AIS_LocalContext => Visualization - Possibility to remove AIS_LocalContext class
2015-05-26 15:07 vpa Relationship added related to 0026272
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-10 10:58 kgv Relationship added parent of 0028906
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


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker