Changelog for SDK 2024 R1 (v.6.0.0)#
This release brings multiple changes in the SDK, various new features, and fixes of known and reported issues.
Possible general breaking change:
- Some headers were cleaned to remove includes of unused headers.
- The selection commands now act on the whole document and not on the current selection, i.e. invoking a selection command empties the current selection and creates a new selection.
- Expanded Node Specification Language (NSL) syntax - see What's new in SAMSON 2024 - Modeling.
See also: What's new in SAMSON 2024.
Core library group#
Main changes:
- There is now SB_CLASS_BASE macro that should be used for base classes instead of SB_CLASS which should be now used only for derived classes.
- New macro for exposing attributes with static functions that return minimum, maximum, default, or single step values, tool tip, suffix, item count and item text - you can now use the corresponding SB_ATTRIBUTE_STATIC_* macros that expose static functions: SB_ATTRIBUTE_STATIC_MINIMUM, SB_ATTRIBUTE_STATIC_MAXIMUM, SB_ATTRIBUTE_STATIC_DEFAULT, SB_ATTRIBUTE_STATIC_SINGLE_STEP, SB_ATTRIBUTE_STATIC_SUFFIX, SB_ATTRIBUTE_STATIC_TOOL_TIP, SB_ATTRIBUTE_STATIC_COUNT, SB_ATTRIBUTE_STATIC_ITEM_TEXT.
- Improvements in SBCContainerHashMap, SBCContainerUUID
- Registered more type, e.g. vectors of standard types (see SBCMetaRegister).
- SBCSerializer classes: add writeUUIDElement, readUUIDElement.
- Improvements in holding: now supports nested holding combinding them into the top-level holding group.
- Improve GLIBC compatibility (up to v.2.17) for old Linux distributions.
DataModel library group#
DatGraph library#
New classes:
- SBDDataGraphNodeMaterialAppearance - describes a material appearance.
New functionality:
- SBDDataGraphNode now has SBUUID, i.e. each node has its own UUID.
- SBDDataGraphNodeMaterial now has a material appearance object (SBDDataGraphNodeMaterialAppearance).
Palette library#
New classes:
- SBDPaletteDiscrete - a discrete color palette class and a set of default discrete color palettes in SBDPaletteDefaultPalette. Color schemes now support discrete color palettes.
New functionality:
- SBDPalette::toPythonCode - returns a Python code to construct a color palette.
- Equality operators to check if two palettes are the same.
Document library#
New functionality:
- SBDDocumentCamera::orientUpwards
Changes:
- SBDDocumentRenderPreset - functions that return ranges of values, default values, etc. were made static.
Type library#
New functionality:
SBDTypeColor:
- new functions: toHex, toGrayscale, SRGBtoGrayscale, toPythonCode
- new constructor from hex color
- add new operators to perform math operations directly with color objects
Visual preset library#
Breaking changes:
- SBDVisualPreset is renamed to SBDVisualPresetStep
- SBDVisualPresetGroup is renamed to SBDVisualPreset
New functionality:
- SBDVisualPresetStep now supports actions that will act on the selected nodes.
- New constructors for SBDVisualPresetStep, and new functions.
- Add toPythonCode for SBDVisualPresetStep and SBDVisualPreset to get the corresponding Python code to reconstruct them in Python.
Facade library group#
New functionality in SAMSON facade class:
- addDocument, removeDocument
- getActiveAsset
Breaking changes:
- changes in parameters for display functions (displayCylinders, displayLines, displaySpheres, displayTriangles, displayTubes, etc.)
New short-name headers for the newly added classes.
GUI library group#
New UI and Widget libraries.
Action library#
New functionality:
- SBGAction::run - a function to run the command for nodes in SBNodeIndexer. This function is implemented only for actions/commands that can be applied to nodes.
UI library#
A new UI library that defines some common UI widgets:
- SBGUICheckableComboBox
- SBGUICollapsibleGroupBox
- SBGUILineEdit
- SBGUIPlainTextEdit
- SBGUIPushButtonHover
- SBGUIPushButtonPixmap
- SBGUIShortcutLabel
- SBGUITextEdit
Widget library#
A new Widget library that defines some common high-level widgets
- SBGWidgetFileSelector
- SBGWidgetFolderSelector
- SBGWidgetNodeIndexerSelector
Window library#
New functionality:
- New options for SBGWindowDialog::informUser dialogs whether to show OK button.
- New slot SBGWindowDock::topLevelChangedSlot
Modeling library group#
Visual model library#
New class:
- SBMVisualModelGeometryArray - a base class for arrays of geometries.
Breaking changes:
- SBMVisualModel now has a single getGeometryArrayIndexer function for all geometry arrays that replaces the previous per-geometry type functions.
- SBMVisualModelCylinderArray, SBMVisualModelLineArray, SBMVisualModelSphereArray, SBMVisualModelTriangleArray, SBMVisualModelTubeArray are now based on SBMVisualModelGeometryArray. Corresponding changes in functions for these classes.