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>
* if 2nd argument of getActiveObject() is False and the requested object doesn't exist then return (None, None, "")
* remove the exact same implementations from View3DInventorPy
* [Stylesheets] Fixed and added more accent colors.
Added accent colors to Behave dark ProDark and Dark contrast.
Used accent color 3 to the button gradients.
Added Gradient to the Modern styles, because you can disable the gradient by giving 2 accent colors the same color.
* changed to so accent color 3 is text.
As Length and Offset represents the same concept in different way it is
useful to keep them in sync when it is possible. Update to one of them
will update the other with approperiate value. This behaviour behaviour
works only if both properties are not coming from expression engine -
those will stay not touched.
This commit adds two separate modes for defining angular spacing between
elements in the PD's Polar Pattern:
1. Overall Angle - which behaves exactly like it behaved before,
2. Offset Angle - which allows user to specify separation angle between
consecutive elements.
This change is analogue to that introduced for LinearPattern in previous
commits.
This commit adds support for two separate modes of defining distance
between elements in PD's Linear Pattern.
1. Overall Length - which works exactly like it works before,
2. Spacing - which allows user to explicitly define distance (offset) between
features.
The get_support function did not work for objects nested in, for example, Std_Parts.
Additionally improved and cleaned up the code, and reduced the docstrings.