MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0030737Open CASCADE[OCCT] OCCT:Visualizationpublic2019-05-23 19:532020-11-25 11:45
Reporternds 
Assigned Tonds 
PrioritynormalSeverityfeature 
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.6.0*Fixed in Version 
Summary0030737: Visualization - implementing new selection schemes in context
DescriptionIt is proposed to be able to arrange selection behavior of context by additional parameters.

Some applications would like to have another result after using OCCT selection methods of AIS_InteractiveContext, for example:
Select - work as switcher (select not selected object, deselect object if it was selected),
ShifSelect - always have added picked objects in the current selection.

The current behavior:
Select - clears all selected objects and set selected all picked objects,
ShiftSelect - deselect selected objects and select objects that were not selected

Also, it would be great if it is possible to change current selection scheme of context in a custom application or, even, implement own scheme.
TagsNo tags attached.
Test case number
Attached Filespng file icon selection_schemes_user_guide.png (66,784 bytes) 2020-09-11 17:04

- Relationships
parent of 0031779newkgv Open CASCADE Visualization, AIS_ViewController - controller should handle selection schemes 
Not all the children of this issue are yet resolved or closed.

-  Notes
(0084586)
git (administrator)
2019-05-23 19:59

Branch CR30737 has been created by nds.

SHA-1: a39cf654dc6932266c7506742ec70bdbd4f5e5a4


Detailed log of new commits:

Author: nds
Date: Thu May 23 19:58:59 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
(0084590)
git (administrator)
2019-05-24 09:31

Branch CR30737 has been updated by nds.

SHA-1: ed1636ad760ab752801557d78ce9ae74e78dd05b


Detailed log of new commits:

Author: nds
Date: Fri May 24 09:31:04 2019 +0300

    0030737: Visualization - implementing new selection schemes in context

(0084603)
nds (developer)
2019-05-24 13:38

Dear Kirill,

what is your opinion about proposed parameters in integration?
(0084604)
kgv (developer)
2019-05-24 14:32

+  AIS_SelectionScheme SelectionScheme (const AIS_SelectionType theType) const
+  { return mySelectionSchemes.Find (theType); }
+

Is it really useful storing an active selection scheme within AIS_InteractiveContext?
I would expect it being a parameters of Select() method, so that ShiftSelect() will redirect to Select() with XOR scheme.
(0084656)
git (administrator)
2019-05-27 11:35

Branch CR30737 has been updated by nds.

SHA-1: af73c57320c6775b87bcf5823a61eeff266ec40a


Detailed log of new commits:

Author: nds
Date: Mon May 27 11:35:02 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    #provide selection scheme by parameter

(0084832)
git (administrator)
2019-06-04 22:43

Branch CR30737_1 has been created by nds.

SHA-1: f4b4cd1facd4d2449712df28fd3c2b5f37e0776b


Detailed log of new commits:

Author: nds
Date: Tue Jun 4 22:42:34 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
(0084833)
git (administrator)
2019-06-04 22:55

Branch CR30737_1 has been updated by nds.

SHA-1: 91f31b0a042c20e6db2cb038eeeeb7f3200dba52


Detailed log of new commits:

Author: nds
Date: Tue Jun 4 22:55:04 2019 +0300

    0030725: Visualization - remove Display calling from SetSelected methods of context
    
    #minor compilation correction

(0084836)
git (administrator)
2019-06-04 23:32

Branch CR30737_2 has been created by nds.

SHA-1: 6202e5c34d996321cc424059a1e496c440437d1d


Detailed log of new commits:

Author: nds
Date: Tue Jun 4 23:32:19 2019 +0300

    0030725: Visualization - remove Display calling from SetSelected methods of context
(0086369)
git (administrator)
2019-08-20 15:19

Branch CR30737_3 has been created by nds.

SHA-1: 951d93f193cdc00724586df1903ad39fc487cecd


Detailed log of new commits:

Author: nds
Date: Tue Aug 20 15:16:34 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
(0090502)
git (administrator)
2020-02-13 00:21

Branch CR30737_4 has been created by nds.

SHA-1: cab8402295d7849517132679b269e626b56b0932


Detailed log of new commits:

Author: nds
Date: Tue Aug 20 15:16:34 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    (cherry picked from commit 951d93f193cdc00724586df1903ad39fc487cecd)
(0092495)
git (administrator)
2020-06-05 20:51

Branch CR30737_5 has been created by nds.

SHA-1: 246cdc4da230a68dd93b52e8d0ee2758a2645d20


Detailed log of new commits:

Author: nds
Date: Tue Aug 20 15:16:34 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    (cherry picked from commit 8ac88685123f50caef2b53010da626b4682d9bd4)
    (cherry picked from commit 86ba800ae833ecaa0f4e76a08b6b4821ca3d19cc)
(0092708)
git (administrator)
2020-06-25 04:46

Branch CR30737_6 has been created by nds.

SHA-1: df71d84b0713df731c1582e8ec72d319fc40628d


Detailed log of new commits:

Author: nds
Date: Tue Aug 20 15:16:34 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    (cherry picked from commit 8ac88685123f50caef2b53010da626b4682d9bd4)
    (cherry picked from commit 86ba800ae833ecaa0f4e76a08b6b4821ca3d19cc)
    (cherry picked from commit ab4135ad2f3846c9d81706e84eae105329a97131)
(0094043)
git (administrator)
2020-09-05 09:58

Branch CR30737_7 has been created by nds.

SHA-1: c440c19910ee972c3f3ab10eb7a2587d6753d8af


Detailed log of new commits:

Author: nds
Date: Sat Sep 5 10:01:10 2020 +0300

    using Select with defined selection scheme in needed places.

Author: nds
Date: Tue Aug 20 15:16:34 2019 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    (cherry picked from commit 8ac88685123f50caef2b53010da626b4682d9bd4)
(0094044)
git (administrator)
2020-09-05 10:06

Branch CR30737_8 has been created by nds.

SHA-1: 12d0eabea571958af16d1c19db258c0a644e040e


Detailed log of new commits:

Author: nds
Date: Sat Sep 5 10:08:53 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
(0094245)
git (administrator)
2020-09-08 13:13

Branch CR30737_8 has been updated forcibly by nds.

SHA-1: 5bc14e8d743a7421ecdf6465964de85853c8b5af
(0094246)
git (administrator)
2020-09-08 13:17

Branch CR30737_9 has been created by nds.

SHA-1: ba2f1cbfe50c7835c9544a6ba579db7427f4bd81


Detailed log of new commits:

Author: nds
Date: Sat Sep 5 10:08:53 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
(0094262)
nds (developer)
2020-09-08 18:05
edited on: 2020-09-08 18:06

Dear Kirill,

could you please give your remarks about this issue.
I have some doubts about:
- making the previous Selected/ShiftSelected as deprecated now;
- is it worth to perform UpdateCurrentViewer in new Select methods by additional parameter as did for previous Select methods.

(Please, note, that OCCT products also have patch due to declaring previous Select methods as deprecated)

Thank you in advance, Natalia

(0094323)
kgv (developer)
2020-09-09 21:35
edited on: 2020-09-09 21:35

Natailia,

+{
+  AIS_SelectionScheme_Empty         = 0x0000, // do nothing
+  AIS_SelectionScheme_Clear         = 0x0001, // clears current selection
+  AIS_SelectionScheme_Add           = 0x0002, // add detected object to current selection
+  AIS_SelectionScheme_Switch        = 0x0004, // switch selection state in values selected/deselected

+  AIS_SelectionScheme_PickedIfEmpty = 0x0008, // if after switch, result selection is empty, select 
picked objects
+  AIS_SelectionScheme_ClearAndSwitch = AIS_SelectionScheme_Clear | AIS_SelectionScheme_Switch,
+  AIS_SelectionScheme_ClearAndAdd = AIS_SelectionScheme_Clear | AIS_SelectionScheme_Add,
+  AIS_SelectionScheme_ClearAndSwitchAndPicked = AIS_SelectionScheme_ClearAndSwitch | AIS_SelectionScheme_PickedIfEmpty,

+  AIS_SelectionScheme_Custom // reserved item for custom selection scheme

New enumeration looks confusing. The following selection schemes are commonly used in applications that I've seen:
- Replace
  Clears previous selection and sets new one.
- Add
  Adds new picking result to the list of already selected entities.
- Remove
  Removes new picking result from the list of previously selected entities.
- XOR
  Previously selected entities within new picking results are unselected,
  while other added to selection.

Current OCCT methods:
- Select() implements "Replace" strategy.
- ShiftSelect() implements "XOR" strategy.

Add and Remove should be added.
The following synthetic strategies could be added to complete list,
although they have dubious usability (application may just disable selection events):
- Clear
  Always clears previously selected results.
- Locked
  Preserves selection results without change.

Although one may see that strategy "Replace" applies clearing in advance,
it doesn't look reasonable defining strategy as a bitmask,
as each selection strategy looks clearly distinguishable.

AIS_SelectionScheme_Custom (defined not as a bitmask, by the way) makes an impression,
that application might extend strategy list, but it is unclear how such strategy could be handled by OCCT.

I have some difficulties understanding the list of options within proposed enum and how it correlates/extends my list.
Maybe some animated images or [from]->[to] 2-states images illustrating each scheme added to this bug and to documentation would help understanding the behavior and usability.

(0094324)
kgv (developer)
2020-09-09 21:54

+  Standard_EXPORT AIS_StatusOfPick Select (const Standard_Integer  theXPMin,
+                                           const Standard_Integer  theYPMin,
+                                           const Standard_Integer  theXPMax,
+                                           const Standard_Integer  theYPMax,
+                                           const Handle(V3d_View)& theView,
+                                           const AIS_SelectionScheme theSelScheme);

While introducing an API replacement for Select() methods, I propose the following additional changes:
- Get rid of confusing overloads - define unique names
  SelectRectangle(), SelectPolygon(), SelectDetected().
- Pass rectangle coordinates via Graphic3d_Vec2i min/max pair.

+  //! Sets list of owner selected/deselected using selection scheme
+  //! It is possible that selection of other objects is changed relatively selection scheme   .
+  //! \param theOwner owners to change selection state
+  //! \param theSelScheme selection scheme
+  Standard_EXPORT AIS_StatusOfPick Select (const AIS_NListOfEntityOwner& theOwners,
+                                           const AIS_SelectionScheme theSelScheme);

@param for consistency with other methods in class.
theOwner -> theOwners misprint.
Redundant spaces before dot.

+//function : SelectOwners
+//purpose  : .

Redundant trailing spaces.
(0094325)
kgv (developer)
2020-09-09 22:01

+AIS_StatusOfPick AIS_InteractiveContext::Select (const Standard_Boolean)
+{
+  return Select (AIS_SelectionScheme_ClearAndAdd);

Ignoring theToUpdate flag will cause regressions in applications using deprecated methods. Please handle this flag.
(0094330)
git (administrator)
2020-09-09 22:44

Branch CR30737_9 has been updated by nds.

SHA-1: 66c1bb1daeab5803f8b97e0288f36cdd28fec5df


Detailed log of new commits:

Author: nds
Date: Wed Sep 9 22:46:17 2020 +0300

    remarks correction

(0094331)
kgv (developer)
2020-09-09 22:50

+  AIS_NListOfEntityOwner aPickedOwners;
+  for (Standard_Integer aPickIter = 1; aPickIter <= myMainSel->NbPicked(); ++aPickIter)
   {
-    HilightSelected (toUpdateViewer);
+    aPickedOwners.Append (myMainSel->Picked (aPickIter));

The size of picked owners is always known in advance.
It might be performance-wise to use structures like std::vector or NCollection_Array1 instead of AIS_NListOfEntityOwner.

+  AIS_NListOfEntityOwner aPrevSelected = Objects();
...
+    if (thePreviousSelected.Contains (theOwner)) // was selected, should not be now

Wouldn't it be simpler using existing myResultMap for handling such schemes?

-    if (!myLastPicked->IsSelected()
-      || myLastPicked->IsForcedHilight()
-      || NbSelected() > 1)
-    {
-      SetSelected (myLastPicked, Standard_False);

Could you please also verify that IsForcedHilight() behaves in the same way on selection after simplifying the code?
(0094402)
git (administrator)
2020-09-10 18:14

Branch CR30737_9 has been updated forcibly by nds.

SHA-1: 20406c4164098c46751cfd549c194a35d79ba2e8
(0094414)
nds (developer)
2020-09-10 19:38

Dear Kirill,
lots of remarks are corrected, please check CR30739_10.
Jenkins job is: http://jenkins-test-12.nnov.opencascade.com/view/CR30737-CR30737-nds/ [^]
Not corrected remarks:
1. AIS_NListOfEntityOwner stays due to AIS_Selection uses it inside own container/manipulating. Let's report a new issue to introduce AIS_NArrayOfEntityOwner or put it into SelectMgr package and porting AIS_Selection on it?
2. if (thePreviousSelected.Contains (theOwner)) - using myResultMap. The matter is that this container sometimes is cleared before using XOR. So we use cached container of objects.
3. The last remark about checking IsForcedHilight(). Could you please suggest how it might be checked?

Thank you for help, Natalia
(0094417)
git (administrator)
2020-09-10 19:46

Branch CR30737_10 has been created by nds.

SHA-1: 58210fdc17864ed117b8b4f34cc6f2c0af15bce9


No new revisions were added by this update.
(0094430)
git (administrator)
2020-09-11 06:29

Branch CR30737_10 has been updated by nds.

SHA-1: cf43d74d8f3011879946631e80f945f596ec749f


Detailed log of new commits:

Author: nds
Date: Fri Sep 11 06:32:28 2020 +0300

    remarks correction

(0094431)
git (administrator)
2020-09-11 06:33

Branch CR30737_11 has been created by nds.

SHA-1: 3e67a8cfbf2789a1869068a001681d0957c06b43


Detailed log of new commits:

Author: nds
Date: Fri Sep 11 06:36:40 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
    Upgrade: Select() -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_Replace), ShiftSelect -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_XOR)
(0094442)
kgv (developer)
2020-09-11 10:58

--- a/dox/dev_guides/upgrade/upgrade.md
+++ b/dox/dev_guides/upgrade/upgrade.md
@@ -1241,7 +1241,7 @@ The following AIS_InteractiveContext methods have been changed:
-  SetHLRDeviationAngle, SetHLRAngleAndDeviation, SetSelectedAspect, MoveTo, Select, ShiftSelect, SetSelected,

+  SetHLRDeviationAngle, SetHLRAngleAndDeviation, SetSelectedAspect, MoveTo, Select, SetSelected,

This is unrelated, please revert.

+  //! XPMin, YPMin, XPMax, and YPMax in the view.
+  //! The objects detected are passed to the main viewer, which is then updated.
+  Standard_EXPORT AIS_StatusOfPick SelectRectangle (const Graphic3d_Vec2i& thePntMin,
+                                                    const Graphic3d_Vec2i& thePntMax,

Please update description.

+AIS_StatusOfPick AIS_InteractiveContext::SelectRectangle (const Graphic3d_Vec2i&    thePntMin,

...
+    if (myLastPicked->HandleMouseClick (aMousePos, Aspect_VKeyMouse_LeftButton, Aspect_VKeyFlags_NONE, 
false))

I don't think this should be added to SelectRectangle() method.

+  AIS_SelectionScheme_ReplaceExtra, //!< replace with one difference: if result of replace is an 
empty,
+                                    //!< and current selection contains detected element, it will 
be selected

"//!" for second line.

+                                                    const AIS_SelectionScheme theSelScheme);

I propose putting "theSelScheme = AIS_SelectionScheme_Replace" to new SelectX() methods.

My comment related to AIS_Selection::myResultMap for efficient presence / not presence checks instead of redundant copies and tests in slow List::Contains() remains the same.
(0094484)
git (administrator)
2020-09-11 17:10

Branch CR30737_12 has been created by nds.

SHA-1: a516227511f3452f9f55b79c961265b0bf210793


No new revisions were added by this update.
(0094486)
git (administrator)
2020-09-11 17:12

Branch CR30737_12 has been updated by nds.

SHA-1: 408448b03db7d3bbe247b2cbb88b7a5d962a8ea8


Detailed log of new commits:

Author: nds
Date: Fri Sep 11 17:15:29 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
    Upgrade: Select() -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_Replace), ShiftSelect -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_XOR)

(0094488)
git (administrator)
2020-09-11 17:22

Branch CR30737_13 has been created by nds.

SHA-1: a98e8407c1a0c2983ec72cf2716ba6a988c39fab


Detailed log of new commits:

Author: nds
Date: Fri Sep 11 17:25:30 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
    Upgrade: Select() -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_Replace), ShiftSelect -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_XOR)
(0094500)
nds (developer)
2020-09-11 17:54

Dear Kirill,

remarks are corrected. Please, review.
Jenkins job: jenkins-test-12.nnov.opencascade.com/view/CR30737_13-CR30737_13-nds

OCCT: CR30737_13,
Products: CR30737_13

Best regards, Natalia
(0094708)
kgv (developer)
2020-09-14 12:16

I propose propagating selection scheme to Owner object interface and replace AIS_Selection::Select() method to unify the logic.
This will allow implementing Selection Schemes by objects implementing single-owner for multiple elements logic like AIS_PointCloudOwner (points selection) and MeshVS_MeshOwner (nodes / mesh elements selection).

Please also try playing with these special objects as they implement tricky IsForcedHilight() conception and patch introducing selection schemes / unifying selection logic might easily break existing logic for them.

/// TODO handle mess with IsForcedHilight()
bool SelectMgr_EntityOwner::Select (const AIS_SelectionScheme theSelScheme,
                                    const Standard_Boolean theIsDetected)
{
  switch (theSelScheme)
  {
    case AIS_SelectionScheme_UNKNOWN:
    {
      return myIsSelected;
    }
    case AIS_SelectionScheme_Replace:
    {
      return theIsDetected;
    }
    case AIS_SelectionScheme_Add:
    {
      return myIsSelected || theIsDetected;
    }
    case AIS_SelectionScheme_Remove:
    {
      return myIsSelected && !theIsDetected;
    }
    case AIS_SelectionScheme_XOR:
    {
      if (theIsDetected)
      {
        return !myIsSelected;
      }
      return myIsSelected;
    }
    case AIS_SelectionScheme_Clear:
    {
      return false;
    }
  }
  return false;
}

...
AIS_SelectStatus AIS_Selection::Select (const Handle(SelectMgr_EntityOwner)& theOwner,
                                        const Handle(SelectMgr_Filter)& theFilter,
                                        const AIS_SelectionScheme theSelScheme,
                                        const Standard_Boolean theIsDetected)
{
  if (theOwner.IsNull()
  || !theOwner->HasSelectable())
  {
    return AIS_SS_NotDone;
  }

  const bool isDetected  = theIsDetected && (theFilter.IsNull() || theFilter->IsOk (theOwner));
  
const bool wasSelected = theOwner->IsSelected();
  const bool toSelect    = theOwner->Select (theSelScheme, theIsDetected);
  if (toSelect && !wasSelected)
  {
    AIS_NListOfEntityOwner::Iterator aListIter;
    myresult.Append  (theOwner, aListIter);
    myResultMap.Bind (theOwner, aListIter);
    theOwner->SetSelected (true);
    return AIS_SS_Added;
  }

  if (!(!toSelect && wasSelected))
  {
    return AIS_SS_NotDone;
  }

  AIS_NListOfEntityOwner::Iterator aListIter = myResultMap.Find (theOwner);
  if (myIterator == aListIter)
  {
    if (myIterator.More())
    {
      myIterator.Next();
    }
    else
    {
      myIterator = AIS_NListOfEntityOwner::Iterator();
    }
  }

  //if (theOwner->IsForcedHilight()) {return AIS_SS_Added;} /// TODO handle IsForcedHilight somehow
  
myresult.Remove (aListIter);
  myResultMap.UnBind (theObject);
  theOwner->SetSelected (false);

  // update list iterator for next object in myresult list if any
  if (aListIter.More())
  {
    const Handle(SelectMgr_EntityOwner)& aNextObject = aListIter.Value();
    if (myResultMap.IsBound (aNextObject))
    {
      myResultMap (aNextObject) = aListIter;
    }
    else
    {
      myResultMap.Bind (aNextObject, aListIter);
    }
  }
  return AIS_SS_Removed;
}

void AIS_Selection::SelectOwners (const AIS_NListOfEntityOwner& thePickedOwners,
                                  const AIS_SelectionScheme theSelScheme,
                                  const Handle(SelectMgr_Filter)& theFilter)
{
  if (theSelScheme == AIS_SelectionScheme_Replace || theSelScheme == AIS_SelectionScheme_Clear)
  {
    Clear();
  }
  for (AIS_NListOfEntityOwner::Iterator aPickedIter (thePickedOwners); aPickedIter.More(); aPickedIter.Next())
  
{
    const Handle(SelectMgr_EntityOwner)& anOwner = aPickedIter.Value();
    Select (anOwner, theFilter, theSelScheme, true);
  }
}
(0095002)
git (administrator)
2020-09-18 08:14

Branch CR30737_14 has been created by nds.

SHA-1: f689f9977e8af2d97b18798f4e9606119cd8efac


Detailed log of new commits:

Author: nds
Date: Fri Sep 11 17:25:30 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
    Upgrade: Select() -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_Replace), ShiftSelect -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_XOR)
(0095018)
git (administrator)
2020-09-18 11:24

Branch CR30737_14 has been updated forcibly by nds.

SHA-1: bbd9e2f9cd00ff5338972ce66f375a10e9f0159b
(0095022)
nds (developer)
2020-09-18 13:22
edited on: 2020-09-18 13:25

Dear Kirill,

remarks are corrected, excepting improvement for owner. The issue #31777 is reported for it.
ForcedUpdate is checked on tests/v3d/point_cloud/* cases. The highlight/selection behavior are the same as before this patch.

Jenkins job is: http://jenkins-test-12.nnov.opencascade.com/view/CR30737_14-CR30737_14-nds/ [^]

Could you please review the patch once again.
Thank you for your help

(0095027)
git (administrator)
2020-09-18 14:21

Branch CR30737_14 has been updated by kgv.

SHA-1: bc72227a852a01d9abe2be9188f1801d4f29bff7


Detailed log of new commits:

Author: kgv
Date: Fri Sep 18 14:24:21 2020 +0300

    # remarks

(0095028)
kgv (developer)
2020-09-18 14:23

Please replace JPEG images with SVG.
No other remarks.
(0095033)
kgv (developer)
2020-09-18 14:59

Please also fix image-diff regressions:
- v3d/dimensions/offset - selection changed.
- pointcloud/reader/gen_land - dynamic highlighting cursor has lost from screenshots.
(0095052)
git (administrator)
2020-09-18 21:28

Branch CR30737_14 has been updated by nds.

SHA-1: 78ec1fae563c7948a5e1a443e00f0db6337563b0


Detailed log of new commits:

Author: nds
Date: Fri Sep 18 21:29:49 2020 +0300

    test correction (pointcloud/reader/gen_land)

Author: nds
Date: Fri Sep 18 15:33:47 2020 +0300

    remarks correction

(0095053)
git (administrator)
2020-09-18 21:33

Branch CR30737_15 has been created by nds.

SHA-1: 8b392af6ba0dd45465de2ac640db37095f99dc3c


Detailed log of new commits:

Author: nds
Date: Fri Sep 18 21:36:05 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
    Upgrade: Select() -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_Replace), ShiftSelect -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_XOR)
(0096608)
git (administrator)
2020-11-09 06:55

Branch CR30737_16 has been created by nds.

SHA-1: c79998d2ac08360340984e5d6d249855e2d27dcf


Detailed log of new commits:

Author: nds
Date: Fri Sep 18 21:36:05 2020 +0300

    0030737: Visualization - implementing new selection schemes in context
    
    AIS_SelectionScheme enumeration is defined to set which selection behaviour is used in Select of context
    AIS_InteractiveContext is corrected to use single Select method instead of combination of Select/ShiftSelect methods with a selection scheme parameter.
    Upgrade: Select() -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_Replace), ShiftSelect -> SelectDetected/Rectangle/Polygon(AIS_SelectionScheme_XOR)
    
    (cherry picked from commit 8b392af6ba0dd45465de2ac640db37095f99dc3c)
(0097046)
git (administrator)
2020-11-25 04:06

Branch CR30737_16 has been updated forcibly by nds.

SHA-1: 918e714f81844e725e061534a0f7adefe469d5f3
(0097050)
nds (developer)
2020-11-25 08:21

Dear Kirill,

Already checked branch is cherry picked on the current origin/master.
Could you please once again.
Jenkins job is: http://jenkins-test-12.nnov.opencascade.com/view/CR30737_16-CR30737_16-nds/ [^]

Remark about auto highlight of the context.
The first idea of this patch was to move the code:
'if (myAutoHilight) {UnhilightSelected}' into 'Select' of interactive context.
But, some cases (see pointcloud/reader/gen_land) are failed,
so we need to avoid this general approach or give an additional parameter into common Select or other.
Now, the previous implementation of calling this method stays:
it's called in each 'Select*' according to its logic.

This difference might be found at '78ec1fae563c7948a5e1a443e00f0db6337563b0'
(the last commit of the CR30737_14 branch).
(0097057)
git (administrator)
2020-11-25 11:43

Branch CR30737_16 has been updated forcibly by nds.

SHA-1: 1d7ea06477026f571d7f2035f5378a49762704c0
(0097059)
kgv (developer)
2020-11-25 11:45

The latest version of the patch show tremendous number of uncommented image-deviations in v3d group testing selection.

- Issue History
Date Modified Username Field Change
2019-05-23 19:53 nds New Issue
2019-05-23 19:53 nds Assigned To => kgv
2019-05-23 19:54 nds Assigned To kgv => nds
2019-05-23 19:59 git Note Added: 0084586
2019-05-24 09:31 git Note Added: 0084590
2019-05-24 13:38 nds Note Added: 0084603
2019-05-24 13:38 nds Assigned To nds => kgv
2019-05-24 14:32 kgv Note Added: 0084604
2019-05-27 11:35 git Note Added: 0084656
2019-06-04 22:43 git Note Added: 0084832
2019-06-04 22:55 git Note Added: 0084833
2019-06-04 23:32 git Note Added: 0084836
2019-07-17 07:10 nds Assigned To kgv => nds
2019-07-17 07:10 nds Target Version 7.4.0 => 7.5.0
2019-08-20 15:19 git Note Added: 0086369
2020-02-13 00:21 git Note Added: 0090502
2020-06-05 20:51 git Note Added: 0092495
2020-06-25 04:46 git Note Added: 0092708
2020-09-05 09:58 git Note Added: 0094043
2020-09-05 10:06 git Note Added: 0094044
2020-09-08 13:13 git Note Added: 0094245
2020-09-08 13:17 git Note Added: 0094246
2020-09-08 18:05 nds Note Added: 0094262
2020-09-08 18:05 nds Assigned To nds => kgv
2020-09-08 18:05 nds Status new => resolved
2020-09-08 18:06 nds Note Edited: 0094262 View Revisions
2020-09-09 21:35 kgv Note Added: 0094323
2020-09-09 21:35 kgv Note Edited: 0094323 View Revisions
2020-09-09 21:54 kgv Note Added: 0094324
2020-09-09 21:54 kgv Assigned To kgv => nds
2020-09-09 21:54 kgv Status resolved => assigned
2020-09-09 22:01 kgv Note Added: 0094325
2020-09-09 22:44 git Note Added: 0094330
2020-09-09 22:50 kgv Note Added: 0094331
2020-09-10 18:14 git Note Added: 0094402
2020-09-10 19:38 nds Note Added: 0094414
2020-09-10 19:38 nds Assigned To nds => kgv
2020-09-10 19:38 nds Status assigned => resolved
2020-09-10 19:46 git Note Added: 0094417
2020-09-11 06:29 git Note Added: 0094430
2020-09-11 06:33 git Note Added: 0094431
2020-09-11 06:36 nds File Added: selection_schemes_user_guides.png
2020-09-11 10:58 kgv Note Added: 0094442
2020-09-11 10:58 kgv Assigned To kgv => nds
2020-09-11 10:58 kgv Status resolved => assigned
2020-09-11 17:02 nds File Deleted: selection_schemes_user_guides.png
2020-09-11 17:02 nds File Added: selection_schemes_user_guide.png
2020-09-11 17:04 nds File Deleted: selection_schemes_user_guide.png
2020-09-11 17:04 nds File Added: selection_schemes_user_guide.png
2020-09-11 17:10 git Note Added: 0094484
2020-09-11 17:12 git Note Added: 0094486
2020-09-11 17:22 git Note Added: 0094488
2020-09-11 17:54 nds Note Added: 0094500
2020-09-11 17:54 nds Assigned To nds => kgv
2020-09-11 17:54 nds Status assigned => resolved
2020-09-14 12:16 kgv Note Added: 0094708
2020-09-14 12:17 kgv Assigned To kgv => nds
2020-09-14 12:17 kgv Status resolved => assigned
2020-09-18 08:14 git Note Added: 0095002
2020-09-18 11:24 git Note Added: 0095018
2020-09-18 13:22 nds Note Added: 0095022
2020-09-18 13:22 nds Assigned To nds => kgv
2020-09-18 13:22 nds Status assigned => resolved
2020-09-18 13:24 nds Relationship added related to 0031777
2020-09-18 13:25 nds Note Edited: 0095022 View Revisions
2020-09-18 14:21 git Note Added: 0095027
2020-09-18 14:23 kgv Note Added: 0095028
2020-09-18 14:23 kgv Assigned To kgv => nds
2020-09-18 14:23 kgv Status resolved => assigned
2020-09-18 14:41 kgv Relationship added parent of 0031779
2020-09-18 14:59 kgv Note Added: 0095033
2020-09-18 21:28 git Note Added: 0095052
2020-09-18 21:33 git Note Added: 0095053
2020-09-21 10:04 nds Target Version 7.5.0 => 7.6.0*
2020-11-09 06:55 git Note Added: 0096608
2020-11-25 04:06 git Note Added: 0097046
2020-11-25 08:21 nds Note Added: 0097050
2020-11-25 08:21 nds Assigned To nds => kgv
2020-11-25 08:21 nds Status assigned => resolved
2020-11-25 11:43 git Note Added: 0097057
2020-11-25 11:45 kgv Note Added: 0097059
2020-11-25 11:45 kgv Assigned To kgv => nds
2020-11-25 11:45 kgv Status resolved => assigned


Copyright © 2000 - 2020 MantisBT Team
Powered by Mantis Bugtracker