
Sat, 04/20/2019 - 01:01
In the description of the method AIS_InteractiveContext::ShiftSelect() it's said: "Rectangle of selection; adds new detected entities into the picked list, removes the detected entities that were already stored."
In my application this method is called from mouse movement event handler. However, because of such behavior, at every new event processing all previously contained subjects get removed from the selection and new ones are included. The next call makes inverse, and so on. I am judging of this by the look of the selection highlight: when the selection rectangle moves, selection starts flashing, and finishing the movement selects random objects, which were under the rectangle.
The question is: is it supposed to be like that? I have compared my code with the examples (MFC), no differences have been noticed. Wouldn't it have been wiser to choose whether to include or exclude new/old objects during a single rectangle shift-selection?
No source code is attached, since it's just a single call to ShiftSelect().
Mon, 04/22/2019 - 17:33
The described behavior matches documentation:
so that:
Application might also look for two other options, not covered by existing Select()/ShiftSelect() methods:
All these options can be implemented at application level using existing API, by processing picking results and managing selection list independently.
It might be also reasonable extending AIS_InteractiveContext to support the whole set - contributions are welcome:
https://dev.opencascade.org/index.php?q=home/get_involved