Commit Graph

32 Commits

Author SHA1 Message Date
Edoardo Morandi
512770f27c fix: downcasting of SoNode that can cause UB (#9285)
A SoNode* is not necessarily a SoFCSelectionRoot*, and when this
assumption breaks the code causes UB (the comment related to one of the
chunks explicitly says that it is safe, but unfortunately it is not).

Instead of storing `SoFCSelectionRoot*` and blindly cast a generic
`SoNode*` to that, we can do the opposite. In this way it is obviously
necessary to use a dynamic cast when trying to reach for
`SoFCSelectionRoot` specific features, but in this way the abstraction
should be sound.

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2023-08-28 11:06:06 -05:00
wmayer
6beace8da6 Gui: modernize C++: use default member init 2023-08-23 19:51:44 +02:00
wmayer
23961706be Gui: modernize C++: replace 'typedef' with 'using' 2022-08-29 14:09:18 +02:00
berniev
3877fc62c3 Gui: Single arg ctors must be explicit (PR #7369) 2022-08-24 15:06:03 +02:00
berniev
75fa455c5d Gui: Use override etc 2 2022-08-09 12:43:23 +02:00
berniev
3d1f70765a Gui: redundant void 2 2022-08-08 10:21:44 +02:00
wmayer
1178df06b4 Gui: modernize C++11
* use nullptr
2022-03-23 18:41:21 +01:00
Uwe
99191c6679 [Gui] So headers: remove unused includes
- also sort out some headers to be used in precompiled headers
- also move a boost header to precompiled headers
2022-03-16 02:01:32 +01:00
luz paz
38815b9550 Gui: Fix header uniformity, whitespace, and doxygen fixes 2020-11-26 10:14:56 +01:00
wmayer
983939b32d Coverity: Uninitialized scalar/pointer field 2020-07-20 17:34:30 +02:00
wmayer
6d515aa60c fix build failure on Windows due to conflicting define of GDI API 2019-10-08 14:49:56 +02:00
Zheng, Lei
bb3baefdb5 Gui: refactor bounding box selection style
Previously, box style selection is rendered using customized
SoBoxSelectionRenderAction, which does not support selection context,
i.e. it does not work with Link.

This patch implements context aware bound box rendering inside
SoFCSelectionRoot, SoFCSelection and SoFCPathAnnotation (for always on
top rendering). The box rendering in SoBoxSelectionRenderAction is
disabled on construction. Box style selection can be enabled for
individual object through property SelectionStyle (moved from
ViewProviderGeometryObject to ViewProviderDocumentObject), or globally
through Parameter BaseApp/Preferences/View/ShowSelectionBoundingBox.

In addition, the parameter BaseApp/Preferences/View/UseNewSelection is
used to override selection model reported from
ViewProvider::useNewSelectionModel(). The reason being that, the same
parameter is already used to toggle selection model inside
SoFCSelection. This avoids inconsistency of selection model choice
between view provider and the SoFCSelection node inside. Note that if
the parameter 'UseNewSelection' is set to false, those view providers
that choose old selection model will not work with Link.
2019-10-08 09:56:09 +02:00
luz.paz
63a577fe07 Fix typos in src/Gio 2019-08-17 15:32:49 +02:00
Zheng, Lei
c9ba972d26 Gui: add support of selection context
The patch implements context-aware selection and rendering in 3D view.

Please check [here](https://git.io/fjiY5) for more details, including
the following 'Render Caching' section.

The patch also includes modification of View3DInventorViewer to support
always-on-top selection rendering using the secondary selection context
and the new coin node SoFCPathAnnotation.

Another small change in SoQtQuarterAdaptor for more responsive frame
rate display. The original implementation reports skewed frame rate
in the presence of long idle period.
2019-08-17 14:52:10 +02:00
wmayer
cfb04647b2 Do not use a view provider's bounding box node when handling BoundBox selection style because it leads to some inconsistent behaviour.
Instead let SoBoxSelectionRenderAction render the bounding box.
2018-10-26 00:39:15 +02:00
wmayer
fea662ea71 notify selection node about cleared pre-selection 2017-12-25 01:19:02 +01:00
wmayer
ac7b0fa2d8 Qt5OpenGL: replace gluOrtho2D for macOS, move includes of GL stuff from header to source 2017-03-24 10:28:57 +01:00
Zheng, Lei
63a6f9c8c5 Gui: added bbox selection style to GeometryObject 2017-03-21 09:29:15 +01:00
jriegel
e5f3fe18f6 make SoFCUnifiedSelection work with nested children in 3DView 2016-04-12 18:11:45 +02:00
wmayer
f6023d36d2 + rework BoundingBox class and its Python binding 2015-10-11 00:18:53 +02:00
Mateusz Skowroński
05f95c0506 Fix files encoding. Go from ISO8859-1 to UTF-8. 2015-09-21 19:50:49 -03:00
wmayer
b795914629 + fixes #0002222: Number of normals in exported VRML is wrong 2015-09-14 14:45:34 +02:00
wmayer
cab441cf2a + remove references to SoFCSelection where not needed 2015-05-20 19:24:12 +02:00
wmayer
00d92f7646 + fixes #0001363: VRML export can produce corrupt files 2014-12-02 15:40:36 +01:00
wmayer
696d4a5f4a + fix warnings with clang 2014-09-24 17:46:04 +02:00
wmayer
dcb3a55f57 + restore arrow cursor when mouse moves into empty area in 3d view 2014-04-05 19:57:40 +02:00
wmayer
60d9605fa5 0001064: Crash occurs in version 0.13 when trying to use alignment tool 2013-03-30 14:46:51 +01:00
jriegel
61914bc772 Add all base system changes from the Assembly branch 2013-02-10 20:02:33 +01:00
wmayer
f0bdf1b786 0000911: V0.13- Faces of Solid models cannot be selected when ALT-TAB is used to switch between applications 2012-12-27 12:29:44 +01:00
wmayer
df7c1ea1dc + handle case if each face has its own color and a face has no triangles
+ do not write out fields of SoFCUnifiedSelection node
+ show wait cursor when importing parts

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5406 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2012-01-14 01:19:33 +00:00
wmayer
e95de7090d + add method to get SoDetail from element name
+ fix broken selection mechanism

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5260 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-12-10 21:11:20 +00:00
wmayer
120ca87015 + unify DLL export defines to namespace names
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-10-10 13:44:52 +00:00