This release includes major changes in the SDK, various new features, and fixes of known and reported issues.
Below is the list of the changes in SAMSON SDK per library and per class.
One of the major changes visible to users is the introduction of Presentations and Animations. This includes new node types: SBAnimation, SBPresentation. Other new node types: SBPseudoBond, SBHydrogenBondGroup, SBHydrogenBond.
New types
New functions that can be used via class proxies: SBProxy::getShortcut, SBProxy::getToolTip, SBProxy::getPublicName, SBProxy::getIconFileName, SBProxy::getMinimumUserPlan
Performance and other various improvements in the following classes: SBCContainerBuffer (SBBuffer), SBCContainerHashMap (SBHashMap), SBCContainerIndexer (SBIndexer), SBCContainerList (SBList), SBCContainerVector (SBVector)
A new class describing the user plan: SBCContainerUserPlan (SBUserPlan)
Internal performance improvements of the signal management.
Small changes in SBDColorPalette base and child classes: virtual and static functions.
A new class: SBNodeSelector. This class describes and implements selectors that might be used accross SAMSON and in SAMSON Extensions. It is used, for example, in visual presets.
Major changes that might affect other classes that are based on SBNode :
Functions SBDDataGraphNode::getNodes(SBNodeIndexer& nodeIndexer, const SBNodePredicate& selectionPredicate, const SBNodePredicate& visitPredicate, bool includeDependencies) and SBDDataGraphNode::countNodes(const SBNodePredicate& selectionPredicate, const SBNodePredicate& visitPredicate, bool includeDependencies) are now const. If you have implemented a class based on the SBNode class and overridden one of those functions, you need to add the const specifier.
New functions that might need to be implemented by a class based on SBNode :
These changes affect the following classes:
New node types: SBNode::Animation, SBNode::Presentation, SBNode::PseudoBond, SBNode::HydrogenBondGroup, SBNode::HydrogenBond.
Now nodes in the data graph can be locked to prevent operations with them, e.g. when performing a simulation. New functions: SBNode::isLocked, SBNode::getLockedFlag, SBNode::setLockedFlag, and associated predicates SBDDataGraphNode::IsLocked, SBDDataGraphNode::GetLockedFlag
Now nodes can have transparency/opacity and inherited transparency. There is a set of associated functions, e.g.: SBNode::getTransparency, SBNode::setTransparency, SBNode::getInheritedTransparency.
A new rendering pass for nodes: SBNode::RenderingPass::Setup.
New events: SBBaseEvent::LockedFlagChanged, SBBaseEvent::TransparencyChanged
SBNodeIndexer now has copy and move assignment operators.
New classes: SBAnimation, SBPresentation.
New functions:
Changes due to changes in SBNode, see changes in SBNode.
New functions: SBFolder::getAnimationList, SBFolder::getPresentationList
New document events:
New constructors, add serialization.
New classes: SBCubicPolynomial, SBEasingCurve.
New copy and move constructors and operators for some existing types.
Changes in serialization. New default colors used in the interface, e.g. colors of axes.
New functions:
A new function: SBSpatialTransform::fromAlignment that returns the best possible transform between the two given position vectors.
A new library that introduces the following classes that describe visual presets: SBVisualPreset, SBVisualPresetGroup.
New functions:
Changes in functions:
New functions:
A new rendering pass for editors: SBGEditor::RenderingPass::Setup.
A new function: SBGEditor::isSelectionDependent - returns true when the node's context menu actions depend on the current selection
New functions:
Changes accross various classes of this library due to changes in SBNode, see changes in SBNode.
New classes: SBPseudoBond, SBHydrogenBondGroup, SBHydrogenBond
New events associated with new structural node types.
New utility functions:
Performance improvements: changes from SBIndexer to SBVector when storing neighbor vectors.
Changed functions:
New functions:
New functions:
New predicates associated with the new functions:
New functions for nucleic acid topology:
New functions:
Changed function names:
New functions for nucleic acid geometry:
New predicates associated with dissociation constants (pKa1, pKa2, pI):
New class: SBTexture
Changed functions: SBMesh::getSurfaceIndexer
New functions using SBTexture: SBSurface::getDiffuseTexture, SBSurface::setDiffuseTexture
Changes due to changes in SBNode, see changes in SBNode.
Performance improvements: changes from SBIndexer to SBVector when storing neighbor vectors.
Changed functions:
New functions:
Changed functions:
Changed functions:
New functions:
Changed functions:
Changed functions:
New functions: