Web Analytics Made Easy - Statcounter
Skip to content

Class SAMSON#

ClassList > SAMSON

This class is the main interface. More...

  • #include <SAMSON.hpp>

Public Static Functions#

Type Name
SBGWindow * addDialog (SBGWindowDialog * dialog)
Adds a SAMSON dialog to the user interface.
SBGWindow * addDialog (QDialog * dialog, QString name="", int format=SBGWindow::NoOptions, QPixmap logo=QPixmap(), SBUUID uuid=SBUUID(""))
Adds a Qt dialog to the user interface.
SBGWindowDock * addDockWidget (SBGWindowWidget * widget, Qt::DockWidgetArea area=Qt::RightDockWidgetArea, bool visible=true, bool spacer=true)
Adds a SAMSON widget to the user interface as a dockable window.
void addDocument (SBDDocument * document)
Adds a document to the list of opendocuments .
void addToSelection (const std::string & selectionString)
Adds nodes from the active document to the selection based on a selectionString .
SBGWindow * addWidget (SBGWindowWidget * widget)
Adds a SAMSON widget to the user interface.
SBGWindow * addWidget (QWidget * widget, QString name="", int format=SBGWindow::NoOptions, QPixmap logo=QPixmap(), SBUUID uuid=SBUUID(""))
Adds a Qt widget to the user interface.
bool askUser (const QString & dialogTitle, const QString & dialogText, QDialogButtonBox * buttonBox=0, const QPixmap & logo=QPixmap())
Asks a question to the user with a message in a modal pop-up dialog.
bool askUser (const QString & dialogTitle, const QString & labelText, const QString & text, bool monospaceFont=false, QDialogButtonBox * buttonBox=0, const QPixmap & logo=QPixmap())
Asks a question to the user with a message and text in a modal pop-up dialog.
bool askUser (SBGWindowWidget * widget, QDialogButtonBox * buttonBox=0, const QPixmap & logo=QPixmap())
Asks a question to the user with a widget in a modal pop-up dialog.
bool askUser (QWidget * widget, QDialogButtonBox * buttonBox=0, const QPixmap & logo=QPixmap())
Asks a question to the user with a widget in a modal pop-up dialog.
void beginHolding (const std::string & name)
Begins holding.
bool canImportFromFile (const std::string & fileName)
Returns true when the files can be imported.
QImage captureViewport (int width, int height, bool transparentBackground=false, bool usePathTracing=false, bool showProgressBar=true)
Captures the viewport.
void captureViewport (const std::string & fileName, int width, int height, bool transparentBackground=false, bool usePathTracing=false, bool showProgressBar=true)
Captures the viewport.
void connectDocumentSignalToSlot (SBCReferenceTarget * referenceTarget, void(SBCReferenceTarget::*)(SBDocumentEvent *) functionPointer, SBCReferenceTarget * nextReferenceTarget=0, void(SBCReferenceTarget::*)(SBDocumentEvent *) nextFunctionPointer=0)
Connects the document signal to a slot.
unsigned int countNodes (const std::string & selectionString)
Counts nodes in the active document based on a selectionString .
unsigned int countNodes (SBDDataGraphNode::Type nodeType, bool selectedNodesOnly=false, const SBNodePredicate & visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false)
Counts nodes in the active document based on a nodeType , a selection status and avisitPredicate , with or without dependencies.
unsigned int countNodes (const SBNodePredicate & selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate & visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false)
Counts nodes in the active document based on a selectionPredicate and avisitPredicate , with or without dependencies.
QOpenGLContext * createHeadsetViewport ()
Creates a viewport for a virtual reality headset.
SBUUID createJob (const QString & name, const SBCContainerUUID & developerUUID, const SBCContainerUUID & extensionUUID, const QString & description, double fixedCost, double hourlyCost, double storageCost, long estimatedDuration, const QString & endpoint, const QJsonObject & metadata, const QList< QString > & filePathList, const QList< QString > & destinationFilePathList)
Creates a job named name with fixed costfixedCost , hourly costhourlyCost , price currencypriceCurrency , estimated durationestimatedDuration , end pointendPoint , and meta datametadata ; returns the job's UUID.
SBDDocumentRenderPreset * createRenderPreset ()
Creates a render preset based on the current rendering settings; returns the owning pointer.
void deleteTexture (unsigned int textureID)
Deletes an OpenGL texture from its id.
void disableHolding ()
Pauses holding bool transparency = false,.
void disableViewportNodeHighlighting ()
Enables automatic node highlighting in the viewport.
void disconnectDocumentSignalFromSlot (SBCReferenceTarget * referenceTarget, void(SBCReferenceTarget::*)(SBDocumentEvent *) functionPointer)
Disconnects the document signal from a slot.
void displayCylinders (unsigned int nCylinders, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * radiusData, const unsigned int * capData, const float * colorData, const unsigned int * flagData, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, float opacity=1.0f, unsigned int flagModifier=0)
Displays cylinders.
void displayCylindersSelection (unsigned int nCylinders, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * radiusData, const unsigned int * capData, const unsigned int * nodeIndexData, const SBSpatialTransform & transform=SBSpatialTransform::identity)
Displays cylinders for selection.
void displayLineSweptSpheres (unsigned int nLineSweptSpheres, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * radiusData, const float * colorData, unsigned int * flagData, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, float opacity=1.0f, unsigned int flagModifier=0)
Displays line-swept spheres.
void displayLineSweptSpheresSelection (unsigned int nLineSweptSpheres, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * radiusData, const unsigned int * nodeIndexData, const SBSpatialTransform & transform=SBSpatialTransform::identity)
Displays line-swept spheres for selection.
void displayLines (unsigned int nLines, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * colorData, const unsigned int * flagData, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, float opacity=1.0f, unsigned int flagModifier=0)
Displays 3D lines.
void displayLinesOrtho (unsigned int nLinesOrtho, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * colorData, bool reverseViewport=true)
Displays 2D lines.
void displayLinesSelection (unsigned int nLines, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const unsigned int * nodeIndexData, const SBSpatialTransform & transform=SBSpatialTransform::identity)
Displays 3D lines for selection.
void displaySpheres (unsigned int nSpheres, const float * positionData, const float * radiusData, const float * colorData, const unsigned int * flagData, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, float opacity=1.0f, unsigned int flagModifier=0)
Displays spheres.
void displaySpheresSelection (unsigned int nSpheres, const float * positionData, const float * radiusData, const unsigned int * nodeIndexData, const SBSpatialTransform & transform=SBSpatialTransform::identity)
Displays spheres for selection.
void displayText (const std::string & text, const SBPosition3 & position, const QFont & font, float * color)
Displays text.
void displayTextSelection (const std::string & text, const SBPosition3 & position, const QFont & font, unsigned int nodeIndex)
Displays text for selection.
void displayTexturedTriangles (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * normalData, const float * colorData, const unsigned int * flagData, const float * textureCoordinateData, unsigned int textureID, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, const SBColor & diffuseColor=SBColor::black, float diffuseColorReplacement=0.0f, float opacity=1.0f, unsigned int flagModifier=0)
Displays 3D textured triangles.
void displayTexturedTrianglesOrtho (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * colorData, const unsigned int * flagData, const float * textureCoordinateData, unsigned int textureID, bool reverseViewport=true, float opacity=1.0f, unsigned int flagModifier=0)
Displays 2D textured triangles.
void displayTexturedTrianglesOrthoSelection (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const unsigned int * nodeIndexData, const float * textureCoordinateData, unsigned int textureID, bool reverseViewport=true)
Displays 2D textured triangles for selection.
void displayTexturedTrianglesSelection (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const unsigned int * nodeIndexData, const float * textureCoordinateData, unsigned int textureID, const SBSpatialTransform & transform=SBSpatialTransform::identity, unsigned int nodeIndexModifier=0)
Displays 3D textured triangles for selection.
void displayTip (int x, int y, const std::string & tip)
Displays a tip.
void displayTip (const QPoint & position, const std::string & tip)
Displays a tip.
void displayTriangles (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * normalData, const float * colorData, const unsigned int * flagData, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, const SBColor & diffuseColor=SBColor::black, float diffuseColorReplacement=0.0f, float opacity=1.0f, unsigned int flagModifier=0)
Displays 3D triangles.
void displayTrianglesOrtho (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const float * colorData, const unsigned int * flagData, bool reverseViewport=true, float opacity=1.0f, unsigned int flagModifier=0)
Displays 2D triangles.
void displayTrianglesOrthoSelection (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const unsigned int * nodeIndexData, bool reverseViewport=true)
Displays 2D triangles for selection.
void displayTrianglesSelection (unsigned int nTriangles, unsigned int nPositions, const unsigned int * indexData, const float * positionData, const unsigned int * nodeIndexData, const SBSpatialTransform & transform=SBSpatialTransform::identity, unsigned int nodeIndexModifier=0)
Displays 3D triangles for selection.
void displayTubes (unsigned int nPositions, unsigned int ovalDetail, float * ovalCenter, float * majorAxis, float * minorAxis, float * color, unsigned int * flags, unsigned int triangleReduction, bool shadowPassFlag=false, const SBSpatialTransform & transform=SBSpatialTransform::identity, float opacity=1.0f, unsigned int flagModifier=0)
Displays tubes.
void displayTubesSelection (unsigned int nPositions, unsigned int ovalDetail, float * ovalCenter, float * majorAxis, float * minorAxis, unsigned int * nodeIndex, unsigned int triangleReduction, const SBSpatialTransform & transform=SBSpatialTransform::identity)
Displays tubes for selection.
bool documentSignalIsConnectedToSlot (SBCReferenceTarget * referenceTarget, void(SBCReferenceTarget::*)(SBDocumentEvent *) functionPointer)
Returns true if and only if the document signal is connected to the slot.
void enableHolding ()
Resumes holding.
void enableViewportNodeHighlighting ()
Enables automatic node highlighting in the viewport.
void endHolding ()
Ends holding.
void exportToFile (const SBNodeIndexer & nodeIndexer, const std::string & fileName, const std::unordered_map< std::string, SBValue > * parameters=nullptr, SBIFileExporter * exporter=nullptr)
Export a selection of nodes to a file.
unsigned int generateTexture (const QImage & textureImage)
Generate an OpenGL texture from a QImage and returns its id.
SBAction * getAction (const SBUUID & actionUUID)
Returns the action with the given actionUUID .
QAction * getAction (const QString & className)
Returns the first found action with the given className .
QAction * getActionByText (const QString & text)
Returns the first found action with the given text .
SBActionWidget * getActionWidget (const SBUUID & actionWidgetUUID)
Returns the action widget with the given actionWidgetUUID .
const SBAsset * getActiveAsset ()
Returns the active asset.
SBDDocumentCamera * getActiveCamera ()
Returns a pointer to the active camera .
SBDDocument * getActiveDocument ()
Returns a pointer to SAMSON's active document .
std::string getActiveDocumentFilter ()
Returns the node filter of the active document.
SBEditor * getActiveEditor ()
Returns a pointer to the current editor.
const SBNodePredicate & getActiveSelectionFilter ()
Returns the active selection filter.
std::string getActiveSelectionFilterNSL ()
Returns the active selection filter NSL string.
std::string getActiveSelectionFilterName ()
Returns the active selection filter name.
SBStructuralModel * getActiveStructuralModel ()
Returns a pointer to the active structural model.
bool getAddWatermarkFlag ()
Returns true when a watermark should be added to presentation movies and frames.
float getAmbientLight ()
Returns the ambient light.
SBApp * getApp (const SBUUID & appUUID, const SBUUID & elementUUID=SBUUID())
Returns the app corresponding to a specific appUUID andelementUUID .
SBPointerIndexer< SBApp > const * getAppIndexer ()
Returns the app indexer.
SBAtom * getAtom (int x, int y)
Returns the atom at location ( x ,y ) in the viewport.
SBAtom * getAtom (const QPoint & position)
Returns the atom at location position in the viewport.
const SBQuantity::length & getAtomRadius ()
Returns the radius of atoms in the default representation of structural models (when a constant radius is used)
SBQuantity::mass getAtomicWeight (SBMElement::Type element)
Returns the atomic weight of periodic table element element .
float getBackgroundProgress ()
Returns the progress between the current background (0) and the next background (1)
std::string getBlock (SBMElement::Type element)
Returns the block of periodic table element element .
SBBond * getBond (int x, int y)
Returns the bond at location ( x ,y ) in the viewport.
SBBond * getBond (const QPoint & position)
Returns the bond at location position in the viewport.
const SBQuantity::length & getBondRadius ()
Returns the radius of bonds in the default representation of structural models.
bool getCameraControllerFlag ()
Returns true when the camera controller should be displayed in the viewport.
bool getChoiceFromUser (const QString & dialogTitle, int & resultIndex, const QString & label, const QStringList & choices, const QStringList & toolTips, const QList< QPixmap > & icons, const QPixmap & logo=QPixmap())
Gets a choice from the user in a modal pop-up dialog.
bool getColorFromUser (const QString & dialogTitle, SBColor & result, const QPixmap & logo=QPixmap())
Gets a color from the user in a modal pop-up dialog.
QPixmap getColorbar (const SBDPalette * palette, unsigned int width, unsigned int height, unsigned int nColors=10, bool isHorizontal=true)
Returns a pixmap with a colorbar for a given color palette palette .
SBQuantity::length getCovalentRadius (SBMElement::Type element)
Returns the covalent radius of periodic table element element .
SBQuantity::length getCovalentRadius (SBMElement::Type element, int bondType)
Returns the covalent radius of periodic table element element for bond typebondType (1 for single bond, 2 for double bond, 3 for triple bond, for other values it returnsgetCovalentRadius() )
bool getCredentialsFromUser (const QString & dialogTitle, QString & user, QString & password, const QPixmap & logo=QPixmap())
Gets credentials from the user in a modal pop-up dialog.
bool getCredentialsFromUser (const QString & dialogTitle, QString & host, int & port, QString & user, QString & password, const QPixmap & logo=QPixmap())
Gets credentials from the user in a modal pop-up dialog.
const float * getCurrentBackgroundBottomColor ()
Returns the top color of the current background.
QString getCurrentBackgroundImageFileName ()
Returns the file name of the current background image.
bool getCurrentBackgroundImageFlag ()
Returns true when the current background should show an image from a file.
int getCurrentBackgroundImageMode ()
Returns the display mode of the current background image (0: contained in the viewport, 1: covering the viewport)
const float * getCurrentBackgroundTopColor ()
Returns the top color of the current background.
QCursor getCursor (const QString & cursorName, const SBUUID & uuid)
Returns the cursor with the given name cursorName , the given element uuiduuid .
bool getDarkModeFlag ()
Returns true when dark mode is on.
QImage getDarkWatermark ()
Returns the dark watermark.
bool getDeepSelectionFlag ()
Returns whether the user wants deep selection.
SBPointerList< SBDDocument > const * getDocumentList ()
Returns the list of open documents .
bool getDoubleFromUser (const QString & dialogTitle, double & result, double minimum, double maximum, double singleStep=1.0, const QString & prefix="", const QString & suffix="", int decimals=2, const QPixmap & logo=QPixmap())
Gets a number from the user in a modal pop-up dialog.
bool getDoubleIntervalFromUser (const QString & dialogTitle, const QStringList & labelText, std::pair< double, double > & result, const std::pair< double, double > & minValueInterval, const std::pair< double, double > & maxValueInterval, const std::pair< double, double > & singleStep=std::pair< double, double >(1.0, 1.0), const QString & prefix="", const QString & suffix="", const QPixmap & logo=QPixmap())
Gets a double interval from the user in a modal pop-up dialog.
SBEditor * getEditor (const SBUUID & classUUID, const SBUUID & elementUUID)
Returns the editor corresponding to a specific classUUID andelementUUID .
SBIndexer< SBEditor * > const * getEditorIndexer ()
Returns the editor indexer.
SBQuantity::dimensionless getElectronegativity (SBMElement::Type element)
Returns the electronegativity of periodic table element element .
const SBElement & getElement (SBMElement::Type element)
Returns the periodic table element corresponding to a given type.
bool getElementFromUser (const QString & dialogTitle, SBMElement::Type & elementType, const QPixmap & logo=QPixmap())
Gets a periodic table element from the user in a modal pop-up dialog.
std::string getElementName (SBMElement::Type element)
Returns the name of the periodic table element corresponding to a given type.
std::string getElementSymbol (SBMElement::Type element)
Returns the symbol of the periodic table element corresponding to a given type.
SBElement::Type getElementTypeByName (char * elementName)
Returns the periodic table element type corresponding to a given name.
SBElement::Type getElementTypeByName (const std::string & elementName)
Returns the periodic table element type corresponding to a given name.
SBElement::Type getElementTypeBySymbol (char * elementSymbol)
Returns the periodic table element type corresponding to a given symbol.
SBElement::Type getElementTypeBySymbol (const std::string & elementSymbol)
Returns the periodic table element type corresponding to a given symbol.
SBMElement *const * getElementVector ()
Returns the complete periodic table element vector.
bool getElementsFromUser (const QString & dialogTitle, std::vector< SBMElement::Type > & elementTypes, const QPixmap & logo=QPixmap())
Gets a list of periodic table elements from the user in a modal pop-up dialog.
bool getFileNameFromUser (const QString & dialogTitle, QString & result, const QString & dir=QString(), const QString & filter=QString(), QString * selectedFilter=Q_NULLPTR, QFileDialog::Options options=QFileDialog::Options(), const QPixmap & logo=QPixmap())
Gets a filename from the user in a modal pop-up dialog with Open button.
bool getFileNamesFromUser (const QString & dialogTitle, QStringList & result, const QString & dir=QString(), const QString & filter=QString(), QString * selectedFilter=Q_NULLPTR, QFileDialog::Options options=QFileDialog::Options(), const QPixmap & logo=QPixmap())
Gets a list of filenames from the user in a modal pop-up dialog with Open button.
const SBQuantity::length & getFogBegin ()
Returns the distance at which the fog begins.
const SBQuantity::length & getFogEnd ()
Returns the distance beyond which fog is maximal.
bool getFogFlag ()
Returns true when fog is active in the viewport.
float getFogStrength ()
Returns the fog strength.
bool getFontFromUser (const QString & dialogTitle, QFont & result, const QPixmap & logo=QPixmap())
Gets a font from the user in a modal pop-up dialog.
const float * getFresnelColor ()
Returns the Fresnel color.
float getFresnelIntensity ()
Returns the Fresnel intensity.
float getFresnelPower ()
Returns the Fresnel power.
SBNodeGUI * getGUI (SBNode * node)
Returns the GUI of a node.
bool getGridFlag ()
Returns true when the grid should be displayed in the viewport.
unsigned int getGroup (SBMElement::Type element)
Returns the group of periodic table element element .
const float * getHighlightingColor ()
Returns the highlighting color.
float getHighlightingOpacity ()
Returns the highlighting opacity.
QIcon getIcon (const QString & iconName, const SBUUID & uuid)
Returns the icon with the given name iconName the given element uuiduuid .
bool getIntegerFromUser (const QString & dialogTitle, int & result, int minimum, int maximum, int singleStep=1, const QString & prefix="", const QString & suffix="", const QPixmap & logo=QPixmap())
Gets a number from the user in a modal pop-up dialog.
bool getIntegerIntervalFromUser (const QString & dialogTitle, const QStringList & labelText, std::pair< int, int > & result, const std::pair< int, int > & minValueInterval, const std::pair< int, int > & maxValueInterval, const std::pair< int, int > & singleStep=std::pair< int, int >(1, 1), const QString & prefix="", const QString & suffix="", const QPixmap & logo=QPixmap())
Gets an integer interval from the user in a modal pop-up dialog.
bool getItemFromUser (const QString & dialogTitle, QString & result, const QString & label, const QStringList & items, int current=0, const QPixmap & logo=QPixmap())
Gets an item from the user in a modal pop-up dialog.
bool getItemFromUser (const QString & dialogTitle, int & resultIndex, const QString & label, const QStringList & items, const QPixmap & logo=QPixmap())
Gets an item from the user in a modal pop-up dialog.
const float * getLightColor (unsigned int lightIndex)
Returns the light color of light lightIndex .
const float * getLightDirection (unsigned int lightIndex)
Returns the light direction of light lightIndex .
float getLightIntensity (unsigned int lightIndex)
Returns the light intensity of light lightIndex .
QImage getLightWatermark ()
Returns the light watermark.
void getLikeFromUser (const SBCContainerUUID & developerUUID, const SBCContainerUUID & extensionUUID)
Asks the user to like an extension.
int getMaximum3DTextureSize ()
Returns the maximum 3D texture size.
int getMaximumRectangleTextureSize ()
Returns the maximum rectangle texture size.
int getMaximumTextureSize ()
Returns the maximum texture size.
bool getMinimizationFlag ()
Returns true when interactive Minimization is on.
QPoint getMousePositionInViewport ()
Returns the current mouse position in viewport coordinates.
unsigned int getMultiSampleFactor ()
Returns the multisampling factor.
bool getMultipleBondDisplayFlag ()
Returns true when bonds are displayed with a variable number of cylinders to represent their order.
const float * getNextBackgroundBottomColor ()
Returns the top color of the next background.
QString getNextBackgroundImageFileName ()
Returns the file name of the next background image.
bool getNextBackgroundImageFlag ()
Returns true when the next background should show an image from a file.
int getNextBackgroundImageMode ()
Returns the display mode of the next background image (0: contained in the viewport, 1: covering the viewport)
const float * getNextBackgroundTopColor ()
Returns the top color of the next background.
std::string getNextNodeName (SBNode::Type type, std::string prefix=std::string(), std::string suffix=std::string(), SBNode * parentNode=nullptr)
Returns a next name starting with prefix prefix and ending with suffixsuffix for nodes of typetype in parent nodeparentNode or in the active document ifparentNode is null.
SBNode * getNode (int x, int y, const SBNodePredicate & selectionFilter=SBNode::All())
Returns the node at location ( x ,y ) in the viewport according to theselectionFilter .
SBNode * getNode (const QPoint & position, const SBNodePredicate & selectionFilter=SBNode::All())
Returns the node at location position in the viewport according to theselectionFilter .
SBNode * getNode (int x, int y, SBPosition3 & pickedPosition, const SBNodePredicate & selectionFilter=SBNode::All())
Returns the node at location ( x ,y ) in the viewport and thepickedPosition according to theselectionFilter .
SBNode * getNode (const QPoint & position, SBPosition3 & pickedPosition, const SBNodePredicate & selectionFilter=SBNode::All())
Returns the node at location position in the viewport and thepickedPosition according to theselectionFilter .
void getNodes (SBNodeIndexer & nodeIndexer, int x, int y, int width, int height, const SBNodePredicate & selectionFilter=SBNode::All(), bool deepSelectionFlag=false)
Stores the nodes found inside the viewport rectangle ( x ,y ,width ,height ) intonodeIndexer according to theselectionFilter .
void getNodes (SBNodeIndexer & nodeIndexer, const QPoint & topLeftCorner, int width, int height, const SBNodePredicate & selectionFilter=SBNode::All(), bool deepSelectionFlag=false)
Stores the nodes found inside the viewport rectangle ( topLeftCorner ,width ,height ) intonodeIndexer according to theselectionFilter .
void getNodes (SBNodeIndexer & nodeIndexer, const SBVector< QPoint > & selectionLasso, const SBNodePredicate & selectionFilter=SBNode::All(), bool deepSelectionFlag=false)
Returns the nodes inside the selection lasso with contour selectionLasso intonodeIndexer according to theselectionFilter .
void getNodes (SBNodeIndexer & nodeIndexer, const std::string & selectionString)
Collects nodes from the active document into nodeIndexer based on aselectionString .
void getNodes (SBNodeIndexer & nodeIndexer, SBDDataGraphNode::Type nodeType, bool selectedNodesOnly=false, const SBNodePredicate & visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false)
Collects nodes from the active document into nodeIndexer , based on anodeType , a selection status and avisitPredicate , with or without dependencies.
void getNodes (SBNodeIndexer & nodeIndexer, const SBNodePredicate & selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate & visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false)
Collects nodes from the active document into nodeIndexer , based on aselectionPredicate and avisitPredicate , with or without dependencies.
unsigned int getNumberOfElements ()
Returns the number of defined periodic table elements, including the Unknown element.
SB_OPENGL_FUNCTIONS * getOpenGLFunctions ()
Returns a pointer to the OpenGL functions.
SBPalette * getPaletteFromUser (const QString & dialogTitle, bool & ok, const SBPalette * defaultPalette=nullptr, const QPixmap & logo=QPixmap())
Gets a color palette from the user in a modal pop-up dialog. If the defaultPalette is provided it is set as a default one in the color palette dialog.
bool getPathFromUser (const QString & dialogTitle, QString & result, const QPixmap & logo=QPixmap())
Gets a path from the user in a modal pop-up dialog.
std::string getPeriod (SBMElement::Type element)
Returns the period of periodic table element element .
QPixmap getPixmap (const QString & pixmapName, const SBUUID & uuid)
Returns the pixmap with the given name pixmapName , the given element uuiduuid .
bool getPlainTextFromUser (const QString & dialogTitle, QString & result, int maxSize=0, const QString & placeholderText="", const QPixmap & logo=QPixmap())
Gets a text from the user in a modal pop-up dialog.
int getProgressBarValue ()
Returns the current value of the progress bar.
bool getPromptFromUser (const QString & dialogTitle, QString & result, const QString & placeholderText="", const QPixmap & logo=QPixmap())
Gets a string from the user in a modal pop-up dialog.
SBProxy * getProxy (const std::string & className, const SBUUID & elementUUID=SBUUID())
Returns the proxy of a class.
SBIndexer< SBProxy * > const * getProxyIndexer (SBCClass::Type classType)
Returns all proxies corresponding to a given class type classType .
std::string getPublicName (bool includeVersion=false, bool includeHashInVersion=false)
Returns the public name of SAMSON .
std::string getPublicVersionNumber ()
Returns the "public version number" of SAMSON .
void getReplyFromUser (const SBCContainerUUID & developerUUID, const SBCContainerUUID & questionUUID)
Asks the user to reply to a question.
std::string getSAMSONElementsPath ()
Returns the path where SAMSON Extensions (previously called SAMSON Elements) are installed.
std::string getSAMSONPath ()
Returns the path where SAMSON is installed.
bool getSaveFileNameFromUser (const QString & dialogTitle, QString & result, const QString & dir=QString(), const QString & filter=QString(), QString * selectedFilter=Q_NULLPTR, QFileDialog::Options options=QFileDialog::Options(), const QPixmap & logo=QPixmap())
Gets a filename from the user in a modal pop-up dialog with Save button.
bool getScaleFlag ()
Returns true when the scale should be displayed in the viewport.
std::string getScratchPath ()
Returns the path to scratch data.
const float * getSelectionColor ()
Returns the selection color.
float getSelectionOpacity ()
Returns the selection opacity.
float getSelectionOutlineOpacity ()
Returns the selection outline opacity.
bool getSimulationFlag ()
Returns true when interactive simulation is on.
float getSpecularIntensity (unsigned int lightIndex)
Returns the specular intensity of light lightIndex .
float getSpecularPower (unsigned int lightIndex)
Returns the specular power of light lightIndex .
bool getStringFromUser (const QString & dialogTitle, QString & result, const QString & placeholderText="", const QPixmap & logo=QPixmap())
Gets a string from the user in a modal pop-up dialog.
SBCTime getTime ()
Returns SAMSON's internal time.
bool getTransparentBackgroundFlag ()
Returns true when the background should be transparent.
std::string getUserDataPath ()
Returns the path where user data is installed.
SBUserPlan getUserPlan ()
Returns the user plan.
std::string getUserPlanString ()
Returns a string containing the user plan.
bool getVanDerWaalsAtomRadiusFlag ()
Returns true when atoms are displayed with a radius proportional to their van der Waals radius.
float getVanDerWaalsAtomRadiusRatio ()
Returns the constant by which the atoms van der Waals radius is multiplied to represent atoms in the viewport (when a constant radius is not used)
SBQuantity::length getVanDerWaalsRadius (SBMElement::Type element)
Returns the van der Waals radius of periodic table element element .
SBCContainerVersionNumber getVersionNumber ()
Returns the version number ofSAMSON .
QFont getViewportFont ()
Returns the font used for text in the viewport.
int getViewportHeight ()
Returns the viewport height.
double getViewportPixelRatio ()
Returns the viewport pixel ratio.
SBVector3 getViewportPositionFromWorldPosition (const SBPosition3 & position)
Returns the projection in the viewport of a given world position .
int getViewportWidth ()
Returns the viewport width.
SBPosition3 getWorldPositionFromViewportPosition (double x, double y)
Returns the 3D position that corresponds to the viewport location ( x ,y )
SBPosition3 getWorldPositionFromViewportPosition (double x, double y, const SBPosition3 & pointInPlane)
Returns the 3D position that corresponds to the viewport location ( x ,y ) in the plane containingpointInPlane .
SBPosition3 getWorldPositionFromViewportPosition (const QPoint & position)
Returns the 3D position that corresponds to the viewport location ( x ,y )
SBPosition3 getWorldPositionFromViewportPosition (const QPoint & position, const SBPosition3 & pointInPlane)
Returns the 3D position that corresponds to the viewport location ( x ,y ) in the plane containingpointInPlane .
bool hasNode (const std::string & selectionString)
Checks for the presence nodes in the active document based on a selectionString .
bool hasNode (SBDDataGraphNode::Type nodeType, bool selectedNodesOnly=false, const SBNodePredicate & visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false)
Checks for the presence nodes in the active document based on a nodeType , a selection status and avisitPredicate , with or without dependencies.
bool hasNode (const SBNodePredicate & selectionPredicate=SBDDataGraphNode::All(), const SBNodePredicate & visitPredicate=SBDDataGraphNode::All(), bool includeDependencies=false)
Checks for the presence nodes in the active document based on a selectionPredicate and avisitPredicate , with or without dependencies.
void hideProgressBar ()
Hides the progress bar.
void hideTip ()
Hides the last tip window.
void hold (void * object)
Holds an object.
void hold (SBNode * node)
Holds a node and its descendants.
void hold (SBUndoCommand * undoCommand)
Holds a command.
void hold (SBPointerTarget * pointerTarget)
Holds a pointer target allocated on the heap.
void holdArray (void * array)
Holds an array allocated on the heap.
void importFromFile (const std::string & fileName, const std::unordered_map< std::string, SBValue > * parameters=nullptr, SBDDocumentFolder * preferredFolder=nullptr, SBIFileImporter * importer=nullptr)
Import a file from the disk.
void importFromFile (const QStringList & fileNameList, const std::unordered_map< std::string, SBValue > * parameters=nullptr, SBDDocumentFolder * preferredFolder=nullptr, SBIFileImporter * importer=nullptr)
Import files from the disk.
void informUser (const QString & dialogTitle, const QString & dialogText, const QPixmap & logo=QPixmap())
Informs the user with a message in a modal pop-up dialog.
void informUser (const QString & dialogTitle, const QString & labelText, const QString & text, bool monospaceFont=false, const QPixmap & logo=QPixmap())
Informs the user with a message and text in a modal pop-up dialog.
void informUser (SBGWindowWidget * widget, const QPixmap & logo=QPixmap())
Informs the user with a widget in a modal pop-up dialog.
void informUser (QWidget * widget, const QPixmap & logo=QPixmap())
Informs the user with a widget in a modal pop-up dialog.
bool isAppInitialized (const SBUUID & appUUID, const SBUUID & elementUUID=SBUUID())
Returns true or false if an app corresponding to a specific appUUID andelementUUID is initialized already.
bool isGUIThread ()
Returns true if called from the main thread (GUI thread), else return false.
bool isHolding ()
Returns true when SAMSON is holding.
bool isProgressBarStopped ()
Returns true when the progress bar is stopped.
bool isRedoing ()
Returns true while redoing.
bool isShowingTip (const SBUUID & tipUUID=SBUUID())
Returns whether a tip is being shown.
bool isUndoing ()
Returns true while undoing.
SBAnimation * makeAnimation (const std::string & name, const SBNodeIndexer & nodeIndexer, double currentFrame, const std::string & animationClassName, const SBUUID & animationElementUUID=SBUUID())
Makes an animation.
SBController * makeController (const std::string & controllerClassName, const SBUUID & controllerElementUUID=SBUUID())
Makes a controller.
SBInteractionModelParticleSystem * makeInteractionModel (SBParticleSystem * dynamicalModel, const std::string & interactionModelClassName, const SBUUID & interactionModelElementUUID=SBUUID())
Makes an interaction model.
SBSNeighborSearchParticleSystem * makeNeighborSearch (SBParticleSystem * dynamicalModel, const SBQuantity::length & cutoffDistance, const std::string & neighborSearchClassName, const SBUUID & neighborSearchElementUUID=SBUUID())
Makes a neighbor search algorithm.
SBNodePredicate * makeNodePredicate (const std::string & selectionString)
Make a node predicate based on a selectionString .
SBPropertyModel * makePropertyModel (const SBNodeIndexer & nodeIndexer, const std::string & propertyModelClassName, const SBUUID & propertyModelElementUUID=SBUUID())
Makes a property model.
SBNodeSelector * makeSelector (const std::string & selectorClassName, const SBUUID & selectorElementUUID=SBUUID())
Makes a selector.
SBSimulatorParticleSystem * makeSimulator (const SBNodeIndexer & nodeIndexer, const std::string & interactionModelClassName, const SBUUID & interactionModelElementUUID, const std::string & stateUpdaterClassName, const SBUUID & stateUpdaterElementUUID=SBUUID())
Makes a simulator.
SBStateUpdaterParticleSystem * makeStateUpdater (SBParticleSystem * dynamicalModel, SBInteractionModelParticleSystem * interactionModel, const std::string & stateUpdaterClassName, const SBUUID & stateUpdaterElementUUID=SBUUID())
Makes a state updater.
QCursor makeViewportCursor (const QString & fileName, int height, int hotX=-1, int hotY=-1)
Makes a viewport cursor.
SBVisualModel * makeVisualModel (const SBNodeIndexer & nodeIndexer, const std::string & visualModelClassName, const SBUUID & visualModelElementUUID=SBUUID())
Makes a visual model.
bool minimize (const SBNodeIndexer & nodeIndexer, unsigned int maximumNumberOfSteps, unsigned int minimumNumberOfStepsInPlateau, const SBQuantity::kJPerMol & energyDifferenceCriteria, unsigned int printMinimizationInformationFrequency=100, bool askUser=false)
Minimize atoms in the nodeIndexer according to the provided criteria.
void printDataGraphState ()
Prints the data graph state.
void printFullMemoryUsage ()
Prints full memory usage.
void printMemoryUsage ()
Prints memory usage.
void printRendererState ()
Prints the renderer state.
void printUndoStack ()
Prints the undo stack.
void redo ()
Redo one command.
void registerAction (SBAction * action)
Registers a new action visible for all users.
bool registerCursor (const QString & name, const SBUUID & uuid, const QString & filePath, const QString & description=QString())
Register the cursor based on the given name name , the given element uuiduuid , the given descriptiondescription , the given filePathfilePath .
bool registerCursor (const QString & name, const SBUUID & uuid, const QCursor & icon, const QString & description=QString())
Register the cursor based on the given name name , the given element uuiduuid , the given descriptiondescription , the given iconicon .
bool registerIcon (const QString & name, const SBUUID & uuid, const QString & filePath, const QString & description=QString())
Register the icon based on the given name name , the given element uuiduuid , the given descriptiondescription , the given filePathfilePath .
bool registerIcon (const QString & name, const SBUUID & uuid, const QIcon & icon, const QString & description=QString())
Register the icon based on the given name name , the given element uuiduuid , the given descriptiondescription , the given iconicon .
bool registerPixmap (const QString & name, const SBUUID & uuid, const QString & filePath, const QString & description=QString())
Register the pixmap based on the given name name , the given element uuiduuid , the given descriptiondescription , the given filePathfilePath .
bool registerPixmap (const QString & name, const SBUUID & uuid, const QPixmap & pixmap, const QString & description=QString())
Register the pixmap based on the given name name , the given element uuiduuid , the given descriptiondescription , the given pixmappixmap .
void removeDialog (SBGWindowDialog * dialog)
Removes a SAMSON dialog from the user interface.
void removeDialog (QDialog * dialog)
Removes a Qt dialog from the user interface.
void removeDocument (SBDDocument * document)
Removes a document from the list of opendocuments .
void removeFromSelection (const std::string & selectionString)
Removes nodes from the active document to the selection based on a selectionString .
void removeWidget (SBGWindowWidget * widget)
Removes a SAMSON widget from the user interface.
void removeWidget (QWidget * widget)
Removes a Qt widget from the user interface.
void removeWindow (SBGWindow * window)
Removes a window from the user interface.
void requestViewportFocus ()
Requests a viewport focus.
void requestViewportUpdate ()
Requests a viewport update.
bool runPythonCode (const std::string & codeString, bool raisePythonConsole=false)
Executes Python code codeString in the Python Console. IfraisePythonConsole is true then it raises the Python Console.
bool runPythonFile (const std::string & fileName, bool raisePythonConsole=false)
Executes Python script file fileName in the Python Console. IfraisePythonConsole is true then it raises the Python Console.
void select (const std::string & selectionString)
Selects nodes from the active document based on a selectionString .
void setActiveDocument (SBDDocument * document)
Sets the active document .
void setActiveDocumentFilter (const std::string & filter)
Sets the node filter of the active document.
void setActiveEditor (SBEditor * editor)
Sets the current editor.
void setActiveEditor (const SBUUID & classUUID, const SBUUID & elementUUID)
Sets the current editor.
bool setActiveSelectionFilterByName (const std::string & selectionFilterName)
Sets the active selection filter according to the given name selectionFilterName . Returns true in case of the success.
void setActiveStructuralModel (SBStructuralModel * structuralModel)
Sets the active structural model.
void setBusy (bool b)
Notifies the user that SAMSON is busy.
void setCustomViewport (QWidget * widget=0)
Replaces the viewport with a custom widget. When widget is equal to 0, the normal viewport is restored.
bool setHeadsetParameters (int panelWidth, int panelHeight, unsigned int leftFrameBuffer, unsigned int rightFrameBuffer)
Sets the panel size of the headset.
void setMinimizationFlag (bool minimizationFlag)
Sets the interactive Minimization flag.
void setProgressBarValue (int value)
Sets the value of the progress bar.
void setSimulationFlag (bool simulationFlag)
Sets the interactive simulation flag.
void setStatusMessage (const QString & message, int time=0)
Shows a message in the status bar.
void setViewportCursor (const QCursor & cursor)
Sets the viewport cursor.
void setViewportCursor (Qt::CursorShape cursorShape)
Sets the viewport cursor.
void setup ()
void showContextMenu (const QPoint & position, SBNode * highlightedNode=0)
Shows the context menu.
void showProgressBar (const QString & name="", int minimum=0, int maximum=0, const SBQuantity::second & minimumDuration=SBQuantity::second(2.0), bool isCancellable=true, const QString & cancelButtonText="Cancel")
Shows the progress bar.
bool showProperties (SBNode * node)
Shows the properties widget of a node.
void showTip (const SBUUID & tipUUID, const QString & tipCategory, const QString & tipTitle, const QString & tipText, QWidget * widget=nullptr, const QPoint & relativePosition=QPoint(), bool showArrow=false)
Shows a tip window with a title tipTitle and texttipText at the positionrelativePosition relative to a widgetwidget .
void showTip (const SBUUID & tipUUID, const QString & tipCategory, const QString & tipTitle, const QString & tipText, const QPixmap & tipPixmap, QWidget * widget=nullptr, const QPoint & relativePosition=QPoint(), bool showArrow=false)
Shows a tip window with a title tipTitle , texttipText , and imagetipPixmap at the positionrelativePosition relative to a widgetwidget .
void showTip (const SBUUID & tipUUID, const QString & tipCategory, const QString & tipTitle, const QString & tipText, const QString & tipMoviePath, QWidget * widget=nullptr, const QPoint & relativePosition=QPoint(), bool showArrow=false)
Shows a tip window with a title tipTitle , texttipText , and gif-movietipMovie at the positionrelativePosition relative to a widgetwidget .
void signalPathTracingCompleted ()
Signals a path tracing completion.
void signalPathTracingStarted ()
Signals a path tracing start.
void signalPathTracingUpdated (int progress)
Signals a path tracing update.
QPoint snap (int x, int y)
Returns the snapped mouse viewport displacement ( x ,y )
QPoint snap (int x, int y, const SBPosition3 & pointInPlane)
Returns the snapped mouse viewport displacement ( x ,y ) in the plane containingpointInPlane .
SBQuantity::length snap (const SBQuantity::length & displacement)
Returns the snapped displacement if the snapping of translational displacements is on, else it returns the unchanged displacement .
SBQuantity::degree snap (const SBQuantity::degree & displacement)
Returns the snapped displacement if the snapping of angular displacements is on, else it returns the unchanged displacement .
SBLength3 snap (const SBLength3 & displacement)
Returns the snapped displacement if the snapping of translational displacements is on, else it returns the unchanged displacement .
SBMatrix33 snap (const SBMatrix33 & rotationMatrix)
Returns the snapped rotation matrix if the snapping of angular displacements is on, else it returns the unchanged rotationMatrix .
SBSpatialTransform snap (const SBSpatialTransform & transform)
Returns the snapped spatial transform according to the translational and angular snapping parameters.
void startMinimization ()
Starts interactive Minimization.
void startSimulation ()
Starts interactive simulation.
void startTimer ()
Starts a new performance timer.
void stopMinimization ()
Stops interactive Minimization.
void stopSimulation ()
Stops interactive simulation.
void stopTimer (SBQuantity::second & elapsedTime)
Stops the top performance timer.
void stopTimer (SBQuantity::second & elapsedTime, SBQuantity::second & totalTime)
Stops the top performance timer.
void toggleMinimization ()
Toggles interactive Minimization on and off.
void toggleSimulation ()
Toggles interactive simulation on and off.
void undo ()
Undo one command.
void unsetViewportCursor ()
Unsets the viewport cursor.
bool updateHeadsetViewport (bool isLeftEye)
Updates the headset viewport.

Detailed Description#

This class is the main interface of SAMSON. It acts as a facade that centralizes and exposes other functions from the SAMSON API to make it easy for developers to interact with SAMSON, the data graph, etc. All functions in this class are static, e.g:

SBPointer<SBDocument> activeDocument = SAMSON::getActiveDocument();

Time#

SAMSON may be used to get the current internal time (in ticks)

SBTime currentTime = SAMSON::getTime();
as well as analyze the performance of algorithms using timers. Internally, SAMSON uses a stack of timers, so that calling SAMSON::stopTimer stops the timer that was started last :

SAMSON::startTimer(); // Starts the first timer

... // Do task 1

SAMSON::startTimer(); // Starts the second timer (the first is still running)

... // Do task 2

SBQuantity::second timeTask2(0.0);
SAMSON::stopTimer(timeTask2); // timeTask2 contains the time taken by task 2

SBQuantity::second totalTime(0.0);
SAMSON::stopTimer(totalTime); // totalTime contains the time taken by both tasks

See also: getTime, startTimer, stopTimer(SBQuantity::second&), stopTimer(SBQuantity::second&, SBQuantity::second&)

See also: SAMSON's unit system

Directories#

A few functions are provided to easily access key file locations from within a SAMSON Extensions. For example, the path to the scratch folder, where SAMSON Extensions may write temporary data, may be obtained with:

std::string scratchPath = SAMSON::getScratchPath();

Furthermore, the SB_ELEMENT_PATH macro provides a std::string containing the installation path of the specific SAMSON Extension whose code is being executed. This may be used for example to access the resources associated to the SAMSON Extension:

return QPixmap(QString::fromStdString(SB_ELEMENT_PATH + "/Resource/icons/logo.png"));

See also: getSAMSONPath, getSAMSONElementsPath, getUserDataPath, getScratchPath, SB_ELEMENT_PATH

Documents#

The SAMSON interface is the main entry point to documents. In particular, the active document is retrieved with:

SBPointer<SBDocument> activeDocument = SAMSON::getActiveDocument();

For example, a new structural model may be added to the active document with:

SAMSON::beginHolding("Add structural model"); // turn the undo system on

SBPointer<SBStructuralModel> newStructuralModel = new SBStructuralModel();
SAMSON::hold(newStructuralModel()); // hold the model in memory
newStructuralModel->create();
SAMSON::getActiveDocument()->addChild(newStructuralModel());

SAMSON::endHolding(); // turn the undo system off

See also: getActiveDocument, getActiveCamera, getActiveStructuralModel

Editors#

In SAMSON, editors are used to modify the data graph. There is always one (and only one) active editor at any given time. Two functions control the active editor.

See also: Editors, getActiveEditor, setActiveEditor

Picking#

When Editors, for example, want to select data graph nodes based on the display viewport (see rendering), they may perform picking operations.

For example, if an editor needs to determine which node was under the mouse cursor when the mouse button was pressed, the getNode(int, int, const SBNodePredicate&) function may be used:

SBNode* pickedNode = SAMSON::getNode(event->pos().x(), event->pos().y());

Some picking functions are convenience functions that attempt to pick specific node types, e.g. getAtom(int, int) and getBond(int, int).

Furthermore, two functions pick nodes in regions of the viewport, instead of at a specific location (x, y):

Note that picking in SAMSON is performed through rendering. As a result, picking functions cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getAtom(int, int) , getAtom(const QPoint&) , getBond(int, int) , getBond(const QPoint&) , getNode(int, int, const SBNodePredicate&) , getNode(const QPoint&, const SBNodePredicate&) , getNode(int, int, SBPosition3&, const SBNodePredicate&) , getNode(const QPoint&, SBPosition3&, const SBNodePredicate&) , getNodes(SBNodeIndexer&, int, int, int, int, const SBNodePredicate&, bool) , getNodes(SBNodeIndexer&, const QPoint&, int, int, const SBNodePredicate&, bool) , getNodes(SBNodeIndexer&, const SBVector<QPoint>&, const SBNodePredicate&, bool)

Viewport#

The SAMSON class is also the main entry point to the viewport (see rendering), which displays a visual representation of the data graph.

The viewport dimensions may be retrieved with:

int width = SAMSON::getViewportWidth();
int height = SAMSON::getViewportHeight();
and the mouse position in viewport coordinates (see rendering) can be obtained with:
QPoint mousePosition = SAMSON::getMousePositionInViewport();

Typically, Editors that allow users to visually interact with the data graph need to convert back and forth between two-dimensional viewport coordinates (integers) and three-dimensional world coordinates (see SAMSON's unit system).

For example, the getWorldPositionFromViewportPosition(const QPoint&) function returns a 3D world position that corresponds to a given viewport position:

SBPosition3 worldPosition;
worldPosition = SAMSON::getWorldPositionFromViewportPosition(mousePosition); 

Note that, since a given viewport position actually corresponds to an infinite line of world positions (all positions that would project to the same pixel), functions that return a world position based on a viewport position typically return the point that belongs to the plane containing the camera target. If another plane should be used, then a variant should be used:

worldPosition = 
    SAMSON::getWorldPositionFromViewportPosition(mousePosition, pointInPlane); 

Conversely, projecting a world position in the viewport may be achieved with:

SBVector3 viewportPosition;
viewportPosition = SAMSON::getViewportPositionFromWorldPosition(worldPosition); 

Note that the returned viewport position is a dimensionless physical vector (see SAMSON's unit system). The first two components are the viewport coordinates with subpixel accuracy, and the third component is the depth in the camera frustum.

See also: getViewportWidth , getViewportHeight , getMousePositionInViewport , getViewportPositionFromWorldPosition , getWorldPositionFromViewportPosition(double, double) , getWorldPositionFromViewportPosition(double, double, const SBPosition3&) , getWorldPositionFromViewportPosition(const QPoint&) , getWorldPositionFromViewportPosition(const QPoint&, const SBPosition3&)

Lights#

Developers of SAMSON Extensions who need to develop their own shaders can retrieve the parameters of the lighting model used by SAMSON's internal renderer (see rendering). In particular, two directional lights are used:

// get parameters of directional light 0

const float* lightDirection0 = SAMSON::getLightDirection(0);
const float* lightColor0 = SAMSON::getLightColor(0);
float lightIntensity0 = SAMSON::getLightIntensity(0);
float lightSpecularIntensity0 = SAMSON::getSpecularIntensity(0);
float lightSpecularPower0 = SAMSON::getSpecularPower(0);

// get parameters of directional light 1

const float* lightDirection1 = SAMSON::getLightDirection(1);
const float* lightColor1 = SAMSON::getLightColor(1);
float lightIntensity1 = SAMSON::getLightIntensity(1);
float lightSpecularIntensity1 = SAMSON::getSpecularIntensity(1);
float lightSpecularPower1 = SAMSON::getSpecularPower(1);

Global lighting parameters may also be accessed:

float ambientLight = SAMSON::getAmbientLight();
float fresnelPower = SAMSON::getFresnelPower();
float fresnelIntensity = SAMSON::getFresnelIntensity();
const float* fresnelColor = SAMSON::getFresnelColor();

See also: rendering

Version number#

The version number of SAMSON may be retrieved from the SAMSON class:

SBVersionNumber currentVersion = SAMSON::getVersionNumber();

Please refer to the Versioning chapter for more information about the versioning scheme used for SAMSON and SAMSON Extensions.

See also: Versioning

See also: SBCContainerVersionNumber

Periodic table#

The SAMSON class also exposes functions from the periodic table, which collects periodic table elements:

SBQuantity::length r = SAMSON::getCovalentRadius(SBElement::Carbon);

Note that convenience functions exist in atoms to access the properties of their element:

SBQuantity::length r = atom->getCovalentRadius();

See also: getElement , getElementVector , getNumberOfElements , getElementName , getElementSymbol , getPeriod , getGroup , getBlock , getAtomicWeight , getCovalentRadius , getVanDerWaalsRadius , getElectronegativity , getElementTypeByName(char*) , getElementTypeByName(const std::string&) , getElementTypeBySymbol(char*) , getElementTypeBySymbol(const std::string&)

GUI#

Dialogs and windows#

The SAMSON class gives access to the Graphical User Interface (GUI) of SAMSON, and makes it possible for SAMSON Extensions to add SAMSON widgets to the interface:

// MyCustomWidget derives from SBGWindowWidget
MyCustomWidget* myCustomWidget = new MyCustomWidget();
SBGWindow* window = SAMSON::addWidget(myCustomWidget);

The function returns a pointer to the embedding SAMSON window which gives the SAMSON style to the SAMSON widget.

Note that Qt widgets may also be added to the SAMSON GUI (and given the SAMSON style), provided the information normally held in a SAMSON widget is supplied:

// MyCustomWidget derives from QWidget
MyCustomWidget* myCustomWidget = new MyCustomWidget();

std::string title = "My widget";
SBGWindow::WindowOption format = SBGWindow::Lockable | SBGWindow::Savable;
QPixmap logo(QString::fromStdString(SB_ELEMENT_PATH + "/Resource/logo.png"));
SBUUID UUID("7EC7B88F-A357-C32A-1FD2-FEE401F6CC61");

SBGWindow* window = SAMSON::addWidget(myCustomWidget, title, format, logo, UUID);

SAMSON dialogs may be added in a similar fashion with the addDialog functions.

See also: addDialog(SBGWindowDialog*) , addDialog(QDialog*, QString, int, QPixmap, SBUUID) , addWidget(SBGWindowWidget*) , addWidget(QWidget*, QString, int, QPixmap, SBUUID) , removeDialog(SBGWindowDialog*) , removeDialog(QDialog*) , removeWidget(SBGWindowWidget*) , removeWidget(QWidget*) , removeWindow(SBGWindow*)

Notifications#

The SAMSON class may be used to set the message in the status bar:

SAMSON::setStatusMessage("Operation complete", 0);
as well as inform the user through modal dialogs, either via a simple string:
SAMSON::informUser("Information", "This operation will be applied to all atoms");
or via a SAMSON widget:
// MyCustomWidget derives from SBGWindowWidget
MyCustomWidget* myCustomWidget = new MyCustomWidget();
SAMSON::informUser(myCustomWidget);

When a question should be asked to the user, the askUser function may be used, either with a string:

bool result = SAMSON::askUser("Mutate all", "Do you want to proceed?");
or with a SAMSON widget:
// MyCustomWidget derives from SBGWindowWidget
MyCustomWidget* myCustomWidget = new MyCustomWidget();
bool result = SAMSON::askUser(myCustomWidget);

See also: setStatusMessage , informUser(const QString&, const QString&, const QPixmap&) , informUser(SBGWindowWidget*, const QPixmap&) , askUser(const QString&, const QString&, QDialogButtonBox*, const QPixmap&) , askUser(SBGWindowWidget*, QDialogButtonBox*, const QPixmap&)

Asking for strings and numbers#

Some convenience functions make it easy to request a string or a number from the user:

std::string groupName;
bool result = SAMSON::getStringFromUser("Enter group name", groupName);
where result is true if the user did not cancel the request and actually provided a string.

See also: getDoubleFromUser, getIntegerFromUser, getStringFromUser

Progress bar#

When SAMSON Extensions need to lock the user interface for a long period of time, they may communicate the progress made through a progress bar:

SAMSON::showProgressBar("Updating atoms", 0, numberOfAtoms);

for (unsigned int i = 0; i < numberOfAtoms; i++) {

    if (SAMSON::isProgressBarStopped()) break;

    SAMSON::setProgressBarValue(i);

    // do something

    ...

}

SAMSON::hideProgressBar();

See also: showProgressBar, isProgressBarStopped, setProgressBarValue, hideProgressBar

Undo and redo#

SAMSON Extensions may turn the Undo and redo mechanism via the SAMSON class:

SBCamera* camera = SAMSON::getActiveCamera();   // get the active camera

SAMSON::beginHolding("Change camera name");     // turn the Undo system on
camera->setName("New camera name");             // change the camera name
SAMSON::endHolding();                           // turn the Undo system off

SAMSON::undo();                                 // undo the name change

See also: Undo and redo

See also: isHolding, beginHolding, disableHolding, enableHolding, endHolding, hold, undo, redo, isUndoing, isRedoing

Files#

SAMSON may be used to import and export files. For example, the instruction:

SAMSON::importFromFile("1YRF.pdb");
requests SAMSON to look into the importers loaded at startup to see if one of them matches the extension of the file. If this is the case, the file is imported.

See also: importFromFile, exportToFile

Display#

Several types of SAMSON classes have virtual display functions that may be overloaded to render objects in the viewport (see rendering). For example, a visual model has a display function called at each frame by SAMSON's internal renderer. Furthermore, rendering is also used to perform node picking, by rendering unique indices instead of colors (see the chapter about rendering in SAMSON).

To perform rendering, SAMSON uses, and requires from developers of SAMSON Extensions to use, core-profile OpenGL functionality. For example, shaders are used to display e.g.atoms, bonds, etc. This implies that legacy OpenGL function calls (e.g. glBegin, glEnd, etc.) are not supported and should not be used in SAMSON Extensions.

Because using core OpenGL functionality is sometimes cumbersome, especially when rendering simple objects, SAMSON provides several utility functions to render geometric primitives in batches, especially when implementing display functions of data graph nodes. For example, the displayTriangles function makes it easy to display triangles in a SAMSON viewport.

Some utility functions also facilitate the use of the renderer to perform node selection. For example, the displayTrianglesSelection makes it easy to render triangles for selection purposes, by passing indices instead of colors.

Please refer to the chapter about rendering for more information, as well as the documentations of the specific display functions listed below.

See also: rendering

See also: displayCylinders, displayCylindersSelection, displayLines, displayLinesOrtho, displayLineSweptSpheres, displayLineSweptSpheresSelection, displaySpheres, displaySpheresSelection, displayText, displayTextSelection, displayTexturedTriangles, displayTexturedTrianglesOrtho, displayTriangles, displayTrianglesOrtho, displayTrianglesSelection, displayTubes, displayTubesSelection

Introspection#

SAMSON Extensions expose their functionality to SAMSON and to other SAMSON Extensions thanks to an Introspection. Exposition is achieved thanks to descriptor files that contain the list of exposed classes and functions, and that are compiled along with the SAMSON Extension. One of the major benefits of the introspection mechanism is the ability to share and combine functionality without the need for providing any type of source code or header code. It is thanks to this introspection mechanism that SAMSON Extensions form more than a collection of independent modules.

The functionality of an exposed class is accessible through its class proxy, which gathers the class factory (its collection of constructors) and the class interface (its collection of member functions).

The class proxy of an exposed class is retrieved using SAMSON:

SBProxy* classProxy = SAMSON::getProxy("SEElementMyApp");

In case there is a risk that several SAMSON Extensions might provide a class called SEElementMyApp, it is possible to specify the name and the UUID of the SAMSON Extension:

SBProxy* classProxy = SAMSON::getProxy("SEElementMyApp", "SEElement", 
    "C8EC88EA-38CE-70F4-2A74-C71F2C86A692");

The SAMSON Extension UUID is guaranteed to be unique if the SAMSON Extension has been installed from SAMSON Connect.

In general, creating instances of exposed classes, and calling their functions, is performed through class proxies.

For exposed classes that derive from some classes from the SDK, SAMSON provides convenience factory functions to create instances.

Assume for example a SAMSON Extension provides a particle interaction model:

class InteractionModel : public class SBMInteractionModelParticleSystem {

    InteractionModel(SBMDynamicalModelParticleSystem* dynamicalModel);    
    ~InteractionModel();

    ...

    virtual void updateInteractions();

    ...

};

Then, an instance of this class can be created as follows:

SBMInteractionModelParticleSystem* interactionModel = 
    SAMSON::makeInteractionModel(dynamicalModel, "InteractionModel");
where dynamicalModel is the argument that would be passed to the constructor of the interaction model.

If only the reimplemented virtual functions of the interaction model should be used (e.g. updateInteractions), then the interactionModel pointer is sufficient, even though interactionModel is a pointer to a SBMInteractionModelParticleSystem and not a pointer to an InteractionModel.

For more information, please refer to the chapter about Introspection.

See also: Introspection

See also: makeNeighborSearch , makeStateUpdater , makeVisualModel , makePropertyModel , makeInteractionModel , makeController , makeAnimation , makeSelector

Properties#

If a data graph node has an associated property window, it is possible to make it appear with:

bool shown = SAMSON::showProperties(dataGraphNode);

See also: data graph

See also: showProperties

Public Static Functions Documentation#

function addDialog [1/2]#

Adds a SAMSON dialog to the user interface.

static SBGWindow * SAMSON::addDialog (
    SBGWindowDialog * dialog
) 


function addDialog [2/2]#

Adds a Qt dialog to the user interface.

static SBGWindow * SAMSON::addDialog (
    QDialog * dialog,
    QString name="",
    int format=SBGWindow::NoOptions,
    QPixmap logo=QPixmap(),
    SBUUID uuid=SBUUID ("")
) 


function addDockWidget#

Adds a SAMSON widget to the user interface as a dockable window.

static SBGWindowDock * SAMSON::addDockWidget (
    SBGWindowWidget * widget,
    Qt::DockWidgetArea area=Qt::RightDockWidgetArea,
    bool visible=true,
    bool spacer=true
) 


function addDocument#

Adds a document to the list of opendocuments .

static void SAMSON::addDocument (
    SBDDocument * document
) 


function addToSelection#

Adds nodes from the active document to the selection based on a selectionString .

static void SAMSON::addToSelection (
    const std::string & selectionString
) 

This function adds nodes from the active document to the current selection, based on a selectionString formulated in SAMSON's NSL.

Parameters:

  • selectionString A NSL expression string describing the selection.

For example:

SAMSON::addToSelection("node.type residue within 4A of S");
Adds to the selection all residue nodes from the active document that are within 4 angstrom of any sulfur atom (note that the selection string may be abbreviated to "n.t r w 4A of S").

See also: NSL


function addWidget [1/2]#

Adds a SAMSON widget to the user interface.

static SBGWindow * SAMSON::addWidget (
    SBGWindowWidget * widget
) 


function addWidget [2/2]#

Adds a Qt widget to the user interface.

static SBGWindow * SAMSON::addWidget (
    QWidget * widget,
    QString name="",
    int format=SBGWindow::NoOptions,
    QPixmap logo=QPixmap(),
    SBUUID uuid=SBUUID ("")
) 


function askUser [1/4]#

Asks a question to the user with a message in a modal pop-up dialog.

static bool SAMSON::askUser (
    const QString & dialogTitle,
    const QString & dialogText,
    QDialogButtonBox * buttonBox=0,
    const QPixmap & logo=QPixmap()
) 

This static function asks the user a question with a message in a modal pop-up dialog. This is a convenience function which makes it easy to program questions to the user with the SAMSON style. The function creates a modal pop-up dialog that blocks all other user interaction until the user pushes the Cancel button or the OK button. The function returns true if the user presses the OK button, or false if the user presses the Cancel button or closes the dialog. This function exposes the function with the same name in SBGWindowDialog.

bool userReply = SAMSON::askUser("Information", "This operation will be applied to
    all atoms in the document. Would you like to continue?");

See also: askUser


function askUser [2/4]#

Asks a question to the user with a message and text in a modal pop-up dialog.

static bool SAMSON::askUser (
    const QString & dialogTitle,
    const QString & labelText,
    const QString & text,
    bool monospaceFont=false,
    QDialogButtonBox * buttonBox=0,
    const QPixmap & logo=QPixmap()
) 

This static function asks the user a question with a message in a modal pop-up dialog. This is a convenience function which makes it easy to program questions to the user with the SAMSON style. The function creates a modal pop-up dialog that blocks all other user interaction until the user pushes the Cancel button or the OK button. The function returns true if the user presses the OK button, or false if the user presses the Cancel button or closes the dialog. This function exposes the function with the same name in SBGWindowDialog.

bool userReply = SAMSON::askUser("Information", "This operation produced the following warnings. Would you like to continue?", "Log text here");

See also: informUser


function askUser [3/4]#

Asks a question to the user with a widget in a modal pop-up dialog.

static bool SAMSON::askUser (
    SBGWindowWidget * widget,
    QDialogButtonBox * buttonBox=0,
    const QPixmap & logo=QPixmap()
) 

This static function asks the user a question with a widget in a modal pop-up dialog. This is a convenience function which makes it easy to program questions to the user with the SAMSON style. The function creates a modal pop-up dialog that blocks all other user interaction until the user pushes the Cancel button or the OK button. The function returns true if the user presses the OK button, or false if the user presses the Cancel button or closes the dialog. The dialog title and icon are taken from the widget. Note that the OK button and the Cancel button are created by this function, and the widget does not have to contain some. This function exposes the function with the same name in SBGWindowDialog.

// MyCustomWidget derives from SBGWindowWidget
MyCustomWidget* myCustomWidget = new MyCustomWidget();
bool userReply = SAMSON::askUser(myCustomWidget);

// do something based on the user reply
...

delete myCustomWidget;

See also: informUser


function askUser [4/4]#

Asks a question to the user with a widget in a modal pop-up dialog.

static bool SAMSON::askUser (
    QWidget * widget,
    QDialogButtonBox * buttonBox=0,
    const QPixmap & logo=QPixmap()
) 

This static function asks the user a question with a widget in a modal pop-up dialog. This is a convenience function which makes it easy to program questions to the user with the SAMSON style. The function creates a modal pop-up dialog that blocks all other user interaction until the user pushes the Cancel button or the OK button. The function returns true if the user presses the OK button, or false if the user presses the Cancel button or closes the dialog. The dialog title and icon are taken from the widget. Note that the OK button and the Cancel button are created by this function, and the widget does not have to contain some. This function exposes the function with the same name in SBGWindowDialog.

// MyCustomWidget derives from QWidget
QWidget* myCustomWidget = new QWidget();
bool userReply = SAMSON::askUser(myCustomWidget);

// do something based on the user reply
...

delete myCustomWidget;

See also: informUser


function beginHolding#

Begins holding.

static void SAMSON::beginHolding (
    const std::string & name
) 


function canImportFromFile#

Returns true when the files can be imported.

static bool SAMSON::canImportFromFile (
    const std::string & fileName
) 


function captureViewport [1/2]#

Captures the viewport.

static QImage SAMSON::captureViewport (
    int width,
    int height,
    bool transparentBackground=false,
    bool usePathTracing=false,
    bool showProgressBar=true
) 


function captureViewport [2/2]#

Captures the viewport.

static void SAMSON::captureViewport (
    const std::string & fileName,
    int width,
    int height,
    bool transparentBackground=false,
    bool usePathTracing=false,
    bool showProgressBar=true
) 


function connectDocumentSignalToSlot#

Connects the document signal to a slot.

static void SAMSON::connectDocumentSignalToSlot (
    SBCReferenceTarget * referenceTarget,
    void(SBCReferenceTarget::*)( SBDocumentEvent *) functionPointer,
    SBCReferenceTarget * nextReferenceTarget=0,
    void(SBCReferenceTarget::*)( SBDocumentEvent *) nextFunctionPointer=0
) 

This function allows for listening to document events (SBDocumentEvent) e.g. SBDocumentEvent::ActiveDocumentChanged, SBDocumentEvent::DocumentAdded, etc. Let's assume that we want to listen to SBDocumentEvent in an App (SBDApp), then this App needs to have a function that receives a pointer to SBDocumentEvent, e.g.:

void SEMyApp::onDocumentEvent(SBDocumentEvent* event) {

switch (event->getType()) {

    case SBDocumentEvent::ActiveDocumentChanged:
        // do something
        break;
    default:
        break;
    }

}

Then in this App we can connect to a document signal as follows:

SAMSON::connectDocumentSignalToSlot(this, SB_SLOT(&SEMyApp::onDocumentEvent));

See also: documentSignalIsConnectedToSlot

See also: disconnectDocumentSignalFromSlot


function countNodes [1/3]#

Counts nodes in the active document based on a selectionString .

static unsigned int SAMSON::countNodes (
    const std::string & selectionString
) 

This function returns the number of nodes from the active document, based on a selectionString formulated in SAMSON's NSL.

Parameters:

  • selectionString A NSL expression string describing the selection.

For example:

unsigned int n = SAMSON::countNodes("node.type residue within 4A of S");
counts the number of all residue nodes in the active document that are within 4 angstrom of any sulfur atom (note that the selection string may be abbreviated to "n.t r w 4A of S").

See also: NSL


function countNodes [2/3]#

Counts nodes in the active document based on a nodeType , a selection status and avisitPredicate , with or without dependencies.

static unsigned int SAMSON::countNodes (
    SBDDataGraphNode::Type nodeType,
    bool selectedNodesOnly=false,
    const SBNodePredicate & visitPredicate=SBDDataGraphNode::All (),
    bool includeDependencies=false
) 

This function returns the number of nodes in the active document, based on a nodeType, and other parameters.

Parameters:

  • nodeType A type of nodes (SBNode::Type) that should be counted.
  • selectedNodesOnly If set to true, then only nodes that are selected, directly or via their parents, will be traversed.
  • visitPredicate A predicate that describes what nodes should be visited in the active document.
  • includeDependencies Whether to include node dependencies or not.

This function traverses the active document's sub-tree for which visitPredicate is true (depth-first), and counts the number of nodes whose type is nodeType. Precisely, if the visitPredicate returns false, the node is not visited, and neither are its descendants. If the visitPredicate returns true, the node is visited, and the visitPredicate will be used to decide whether its children are visited or not. Note that the node itself must satisfy the visitPredicate else nothing is visited.

When includeDependencies is true, the function also counts nodes that are not descendants of this node, but are dependencies nonetheless. For example, in a bond, the two atoms connected by the bond are not children of the bond, but are still dependencies of the bond. Hence, provided they satisfy the nodeType, selectedNodesOnly, and visitPredicate, they are counted if includeDependencies is true.

For example:

unsigned int n = SAMSON::countNodes(SBNode::Residue);
counts the number of residue nodes in the active document.

See also: SBNode::getNodes , SBNodeIndexer , SBNodePredicate


function countNodes [3/3]#

Counts nodes in the active document based on a selectionPredicate and avisitPredicate , with or without dependencies.

static unsigned int SAMSON::countNodes (
    const SBNodePredicate & selectionPredicate=SBDDataGraphNode::All (),
    const SBNodePredicate & visitPredicate=SBDDataGraphNode::All (),
    bool includeDependencies=false
) 

This function counts the number of nodes in the active document, based on a selectionPredicate, and other parameters.

Parameters:

  • selectionPredicate A predicate that describes what nodes should be counted in the active document.
  • visitPredicate A predicate that describes what nodes should be visited in the active document.
  • includeDependencies Whether to include node dependencies or not.

This function traverses the active document's sub-tree for which visitPredicate is true (depth-first), and counts the number of nodes for which the selectionPredicate is true. Precisely, if the visitPredicate returns false, the node is not visited, and neither are its descendants. If the visitPredicate returns true, the node is visited, and the visitPredicate will be used to decide whether its children are visited or not. Note that the node itself must satisfy the visitPredicate else nothing is visited.

When includeDependencies is true, the function also counts nodes that are not descendants of this node, but are dependencies nonetheless. For example, in a bond, the two atoms connected by the bond are not children of the bond, but are still dependencies of the bond. Hence, provided they satisfy the selectionPredicate and visitPredicate, they are counted if includeDependencies is true.

For example:

unsigned int n = SAMSON::countNodes(SBNode::IsType(SBNode::Residue) && SBResidue::IsTerminal());
counts all terminal residue nodes in the active document.

Note that the nodeIndexer is not cleared when entering this function.

See also: SBNode::getNodes , SBNodeIndexer , SBNodePredicate


function createHeadsetViewport#

Creates a viewport for a virtual reality headset.

static QOpenGLContext * SAMSON::createHeadsetViewport () 

This function creates a viewport for a virtual reality headset.


function createJob#

Creates a job named name with fixed costfixedCost , hourly costhourlyCost , price currencypriceCurrency , estimated durationestimatedDuration , end pointendPoint , and meta datametadata ; returns the job's UUID.

static SBUUID SAMSON::createJob (
    const QString & name,
    const SBCContainerUUID & developerUUID,
    const SBCContainerUUID & extensionUUID,
    const QString & description,
    double fixedCost,
    double hourlyCost,
    double storageCost,
    long estimatedDuration,
    const QString & endpoint,
    const QJsonObject & metadata,
    const QList< QString > & filePathList,
    const QList< QString > & destinationFilePathList
) 

This function creates a job based on the given data. Returns the job's UUID if it could create the job else returns an invalid UUID.

Parameters:

  • name The name of the job which will be shown in the Job Manager.
  • developerId The developer's UUID (the user UUID of the developer).
  • serviceId The UUID of the service where the job runs.
  • description The user-friendly description of the job.
  • fixedCost The fixed cost of the job (if the job has a fixed cost and not an hourly cost).
  • hourlyCost The hourly cost of the job (if the job has an hourly cost and not a fixed cost).
  • storageCost The cost of the storage.
  • estimatedDuration The estimated duration of the job (-1 if unknown).
  • endpoint The job service end point.
  • metadata The metadata of the job which can be used e.g. in your job service.
  • filePathList The list of paths to job files that should be uploaded from the local machine.
  • destinationFilePathList The list of destination paths for uploaded files on the cloud machine (the size should correspond to the filePathList).

function createRenderPreset#

Creates a render preset based on the current rendering settings; returns the owning pointer.

static SBDDocumentRenderPreset * SAMSON::createRenderPreset () 


function deleteTexture#

Deletes an OpenGL texture from its id.

static void SAMSON::deleteTexture (
    unsigned int textureID
) 


function disableHolding#

Pauses holding bool transparency = false,.

static void SAMSON::disableHolding () 


function disableViewportNodeHighlighting#

Enables automatic node highlighting in the viewport.

static void SAMSON::disableViewportNodeHighlighting () 


function disconnectDocumentSignalFromSlot#

Disconnects the document signal from a slot.

static void SAMSON::disconnectDocumentSignalFromSlot (
    SBCReferenceTarget * referenceTarget,
    void(SBCReferenceTarget::*)( SBDocumentEvent *) functionPointer
) 


function displayCylinders#

Displays cylinders.

static void SAMSON::displayCylinders (
    unsigned int nCylinders,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * radiusData,
    const unsigned int * capData,
    const float * colorData,
    const unsigned int * flagData,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 

Parameters:

  • nCylinders The number of cylinders
  • nPositions The number of positions used to describe cylinders
  • indexData The array of indices of positions (two unsigned ints per cylinder)
  • positionData The array of positions (three floats per position)
  • radiusData The array of radii (one float per position)
  • capData The array of capping flags (one unsigned int per position)
  • colorData The array of colors (four floats per position)
  • flagData The array of flags (one unsigned int per position)
  • shadowPassFlag A boolean to signal a shadow pass
  • transparency A boolean to enable/disable the transparency
  • opacity A float to specify the opacity

This function displays cylinders in the viewport thanks to ray-tracing shaders that avoid the use of triangles. For increased efficiency, cylinders are described by providing an array of vertex positions and an array of pairs of indices of vertices. As a result, the number of vertex positions passed to the graphics hardware is often much smaller than twice the number of cylinders. Furthermore, all passed properties are vertex-based and not cylinder-based, and properties are interpolated along the cylinder. For example, if a cylinder connects two vertices which have different associated radii, then the shader renders a cone. Similarly, if the two vertices have different colors, then the cylinder color is a gradient that interpolates the two colors. Each vertex has the following properties:

  • a position: three floats with units of length
  • a radius: one float with units of length
  • a capping flag: one unsigned int which determines if the cylinder is capped at the vertex (0 for no capping)
  • a color: four floats between 0 and 1 (the red, green, blue and alpha channels)
  • a flag: one unsigned int representing a node flag. The flag applied to each cylinder is the flag of its first vertex.

In a display overridden function, this code snippet produces this 3D shape:

Image

void display(SBNode::RenderingPass renderingPass) {

    unsigned int nCylinders = 12;
    unsigned int nPositions = 9;
    std::vector<unsigned int> indexData;
    std::vector<float> positionData;
    std::vector<float> radiusData;
    std::vector<unsigned int> capData;
    std::vector<float> colorData;
    std::vector<unsigned int> flagData;

    // center of star
    positionData.push_back(5.f);    positionData.push_back(0.f);    positionData.push_back(0.f);
    radiusData.push_back(4.f);

    // inside points
    positionData.push_back(0.f);    positionData.push_back(10.f);   positionData.push_back(10.f);
    radiusData.push_back(2.f);
    positionData.push_back(0.f);    positionData.push_back(10.f);   positionData.push_back(-10.f);
    radiusData.push_back(2.f);
    positionData.push_back(0.f);    positionData.push_back(-10.f);  positionData.push_back(-10.f);
    radiusData.push_back(2.f);
    positionData.push_back(0.f);    positionData.push_back(-10.f);  positionData.push_back(10.f);
    radiusData.push_back(2.f);

    //outside points
    positionData.push_back(0.f);    positionData.push_back(0.f);    positionData.push_back(40.f);
    radiusData.push_back(1.f);
    positionData.push_back(0.f);    positionData.push_back(40.f);   positionData.push_back(0.f);
    radiusData.push_back(1.f);
    positionData.push_back(0.f);    positionData.push_back(0.f);    positionData.push_back(-40.f);
    radiusData.push_back(1.f);
    positionData.push_back(0.f);    positionData.push_back(-40.f);  positionData.push_back(0.f);
    radiusData.push_back(1.f);

    // for each triangles, gives the index of the three points involved
    indexData.push_back(1);     indexData.push_back(0);
    indexData.push_back(2);     indexData.push_back(0);
    indexData.push_back(3);     indexData.push_back(0);
    indexData.push_back(4);     indexData.push_back(0);

    indexData.push_back(1);     indexData.push_back(5);
    indexData.push_back(1);     indexData.push_back(6);

    indexData.push_back(2);     indexData.push_back(6);
    indexData.push_back(2);     indexData.push_back(7);

    indexData.push_back(3);     indexData.push_back(7);
    indexData.push_back(3);     indexData.push_back(8);

    indexData.push_back(4);     indexData.push_back(8);
    indexData.push_back(4);     indexData.push_back(5);

    for (unsigned int i = 0; i < 9; i++) {
        flagData.push_back(0); // replace by 1 for selected, 2 for highlighted
    }

    for (unsigned int i = 0; i < 9; i++) {
        capData.push_back(1);
    }

    for (unsigned int i = 0; i < 5; i++) {
        colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f);
    }
    colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(0.f); colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(0.f); colorData.push_back(0.f); colorData.push_back(1.f); colorData.push_back(1.f);

    // Checks that the sizes of data correspond to the expected ones
    assert(indexData.size() == 2 * nCylinders);
    assert(positionData.size() == 3 * nPositions);
    assert(capData.size() == nPositions);
    assert(colorData.size() == 4 * nPositions);
    assert(radiusData.size() == nPositions);

    if (renderingPass == SBNode::RenderingPass::OpaqueGeometry) {
        SAMSON::displayCylinders(nCylinders, nPositions, indexData.data(), 
            positionData.data(), radiusData.data(), capData.data(),
            colorData.data(), flagData.data());
    }
    else if (renderingPass == SBNode::RenderingPass::ShadowingGeometry) {
        SAMSON::displayCylinders(nCylinders, nPositions, indexData.data(), 
            positionData.data(), radiusData.data(), capData.data(),
            colorData.data(), flagData.data(), true);
    }

}

See also: rendering


function displayCylindersSelection#

Displays cylinders for selection.

static void SAMSON::displayCylindersSelection (
    unsigned int nCylinders,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * radiusData,
    const unsigned int * capData,
    const unsigned int * nodeIndexData,
    const SBSpatialTransform & transform=SBSpatialTransform::identity
) 

Parameters:

  • nCylinders The number of cylinders
  • nPositions The number of positions used to describe cylinders
  • indexData The array of indices of positions (two unsigned ints per cylinder)
  • positionData The array of positions (three floats per position)
  • radiusData The array of radii (one float per position)
  • capData The array of capping flags (one unsigned int per position)
  • nodeIndexData The address of the object associated with each position (one unsigned int per position, the cylinder has the index associated with its first vertex)

This functions allows to select cylinders based on their position in the viewport


function displayLineSweptSpheres#

Displays line-swept spheres.

static void SAMSON::displayLineSweptSpheres (
    unsigned int nLineSweptSpheres,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * radiusData,
    const float * colorData,
    unsigned int * flagData,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 

Parameters:

  • nCylinders The number of cylinders
  • nPositions The number of positions used to describe cylinders
  • indexData The array of indices of positions (two unsigned ints per cylinder)
  • positionData The array of positions (three floats per position)
  • radiusData The array of radii (one float per position)
  • colorData The array of colors (four floats per position)
  • flagData The array of flags (one unsigned int per position)
  • shadowPassFlag A boolean to signal a shadow pass
  • opacity A float to specify the opacity

Similar to displayCylinders ''displayCylinders'', with spherical caps. This function displays cylinders in the viewport thanks to ray-tracing shaders that avoid the use of triangles. For increased efficiency, cylinders are described by providing an array of vertex positions and an array of pairs of indices of vertices. As a result, the number of vertex positions passed to the graphics hardware is often much smaller than twice the number of cylinders. Furthermore, all passed properties are vertex-based and not cylinder-based, and properties are interpolated along the cylinder. For example, if a cylinder connects two vertices which have different associated radii, then the shader renders a cone. Similarly, if the two vertices have different colors, then the cylinder color is a gradient that interpolates the two colors. Each vertex has the following properties:

  • a position: three floats with units of length
  • a radius: one float with units of length
  • a color: four floats between 0 and 1 (the red, green, blue and alpha channels)
  • a flag: one unsigned int representing a node flag. The flag applied to each cylinder is the flag of its first vertex.

function displayLineSweptSpheresSelection#

Displays line-swept spheres for selection.

static void SAMSON::displayLineSweptSpheresSelection (
    unsigned int nLineSweptSpheres,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * radiusData,
    const unsigned int * nodeIndexData,
    const SBSpatialTransform & transform=SBSpatialTransform::identity
) 

Parameters:

  • nCylinders The number of cylinders
  • nPositions The number of positions used to describe cylinders
  • indexData The array of indices of positions (two unsigned ints per cylinder)
  • positionData The array of positions (three floats per position)
  • radiusData The array of radii (one float per position)
  • nodeIndexData The address of the object associated with each position (one unsigned int per position, the cylinder has the index associated with its first vertex)

This functions allows to select cylinders with spherical caps, based on their position in the viewport


function displayLines#

Displays 3D lines.

static void SAMSON::displayLines (
    unsigned int nLines,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * colorData,
    const unsigned int * flagData,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 

Parameters:

  • nLines The number of lines
  • nPositions The number of positions used to describe lines
  • indexData The array of indices of positions (two unsigned ints per line)
  • positionData The array of positions (three floats per position)
  • colorData The array of colors (four floats per position)
  • flagData The array of flags (one unsigned int per position)
  • shadowPassFlag A boolean to signal a shadow pass
  • opacity A float to specify the opacity

This function displays lines in the viewport. For increased efficiency, lines are described by providing an array of vertex positions and an array of pairs of indices of vertices. As a result, the number of vertex positions passed to the graphics hardware is often much smaller than twice the number of lines. Furthermore, all passed properties are vertex-based and not line-based, and properties are interpolated along the cylinder. For example, if a line connects two vertices which have different colors, then the line color is a gradient that interpolates the two colors. Each vertex has the following properties:

  • a position: three floats with units of length
  • a color: four floats between 0 and 1 (the red, green, blue and alpha channels)
  • a flag: one unsigned int representing a node flag. The flag applied to each line is the flag of its first vertex.

In a display overridden function, this code snippet produces this 3D shape:

Image

 void display(SBNode::RenderingPass renderingPass) {

    unsigned int nLines = 12;
    unsigned int nPositions = 9;
    std::vector<unsigned int> indexData;
    std::vector<float> positionData;
    std::vector<float> colorData;
    std::vector<unsigned int> flagData;

    // center of star
    positionData.push_back(5.f);    positionData.push_back(0.f);    positionData.push_back(0.f);

    // inside points
    positionData.push_back(0.f);    positionData.push_back(10.f);   positionData.push_back(10.f);
    positionData.push_back(0.f);    positionData.push_back(10.f);   positionData.push_back(-10.f);
    positionData.push_back(0.f);    positionData.push_back(-10.f);  positionData.push_back(-10.f);
    positionData.push_back(0.f);    positionData.push_back(-10.f);  positionData.push_back(10.f);

    //outside points
    positionData.push_back(0.f);    positionData.push_back(0.f);    positionData.push_back(40.f);
    positionData.push_back(0.f);    positionData.push_back(40.f);   positionData.push_back(0.f);
    positionData.push_back(0.f);    positionData.push_back(0.f);    positionData.push_back(-40.f);
    positionData.push_back(0.f);    positionData.push_back(-40.f);  positionData.push_back(0.f);

    // for each triangles, gives the index of the three points involved
    indexData.push_back(1);     indexData.push_back(0);
    indexData.push_back(2);     indexData.push_back(0);
    indexData.push_back(3);     indexData.push_back(0);
    indexData.push_back(4);     indexData.push_back(0);

    indexData.push_back(1);     indexData.push_back(5);
    indexData.push_back(1);     indexData.push_back(6);

    indexData.push_back(2);     indexData.push_back(6);
    indexData.push_back(2);     indexData.push_back(7);

    indexData.push_back(3);     indexData.push_back(7);
    indexData.push_back(3);     indexData.push_back(8);

    indexData.push_back(4);     indexData.push_back(8);
    indexData.push_back(4);     indexData.push_back(5);

    for (unsigned int i = 0; i < 9; i++) {
        flagData.push_back(0); // replace by 1 for selected, 2 for highlighted
    }


    colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f);
    for (unsigned int i = 0; i < 4; i++) {
        colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f);
    }
    colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(0.f); colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(0.f); colorData.push_back(0.f); colorData.push_back(1.f); colorData.push_back(1.f);

    // Checks that the sizes of data correspond to the expected ones
    assert(indexData.size() == 2 * nLines);
    assert(positionData.size() == 3 * nPositions);
    assert(colorData.size() == 4 * nPositions);

    if (renderingPass == SBNode::RenderingPass::OpaqueGeometry) {
        SAMSON::displayLines(nLines, nPositions, indexData.data(),
            positionData.data(), colorData.data(), flagData.data());
    }
    else if (renderingPass == SBNode::RenderingPass::ShadowingGeometry) {
        SAMSON::displayLines(nLines, nPositions, indexData.data(),
            positionData.data(), colorData.data(), flagData.data(), true);
    }

}

See also: rendering


function displayLinesOrtho#

Displays 2D lines.

static void SAMSON::displayLinesOrtho (
    unsigned int nLinesOrtho,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * colorData,
    bool reverseViewport=true
) 


function displayLinesSelection#

Displays 3D lines for selection.

static void SAMSON::displayLinesSelection (
    unsigned int nLines,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const unsigned int * nodeIndexData,
    const SBSpatialTransform & transform=SBSpatialTransform::identity
) 

Parameters:

  • nLines The number of lines
  • nPositions The number of positions used to describe lines
  • indexData The array of indices of positions (two unsigned ints per lines)
  • positionData The array of positions (three floats per position)
  • nodeIndexData The address of the object associated with each position (one unsigned int per position, the line has the index associated with its first vertex)

This functions allows to select lines based on their position in the viewport


function displaySpheres#

Displays spheres.

static void SAMSON::displaySpheres (
    unsigned int nSpheres,
    const float * positionData,
    const float * radiusData,
    const float * colorData,
    const unsigned int * flagData,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 

Parameters:

  • nSpheres The number of spheres
  • positionData The array of positions (three floats per sphere)
  • radiusData The array of radii (one float per sphere)
  • colorData The array of colors (four floats per sphere)
  • flagData The array of flags (one unsigned int per sphere)
  • shadowPassFlag A boolean to signal a shadow pass
  • opacity A float to specify the opacity

This function displays spheres in the viewport thanks to ray-tracing shaders that avoid the use of triangles. Each sphere has the following properties:

  • a position: three floats with units of length
  • a radius: one float with units of length
  • a color: four floats between 0 and 1 (the red, green, blue and alpha channels)
  • a flag: one unsigned int representing a node flag.

function displaySpheresSelection#

Displays spheres for selection.

static void SAMSON::displaySpheresSelection (
    unsigned int nSpheres,
    const float * positionData,
    const float * radiusData,
    const unsigned int * nodeIndexData,
    const SBSpatialTransform & transform=SBSpatialTransform::identity
) 

Parameters:

  • nSpheres The number of spheres
  • positionData The array of positions (three floats per sphere)
  • radiusData The array of radii (one float per sphere)
  • nodeIndexData The address of the object associated with each sphere (one unsigned int per sphere)

This functions allows to select spheres, based on their position in the viewport


function displayText#

Displays text.

static void SAMSON::displayText (
    const std::string & text,
    const SBPosition3 & position,
    const QFont & font,
    float * color
) 


function displayTextSelection#

Displays text for selection.

static void SAMSON::displayTextSelection (
    const std::string & text,
    const SBPosition3 & position,
    const QFont & font,
    unsigned int nodeIndex
) 


function displayTexturedTriangles#

Displays 3D textured triangles.

static void SAMSON::displayTexturedTriangles (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * normalData,
    const float * colorData,
    const unsigned int * flagData,
    const float * textureCoordinateData,
    unsigned int textureID,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    const SBColor & diffuseColor=SBColor::black,
    float diffuseColorReplacement=0.0f,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 


function displayTexturedTrianglesOrtho#

Displays 2D textured triangles.

static void SAMSON::displayTexturedTrianglesOrtho (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * colorData,
    const unsigned int * flagData,
    const float * textureCoordinateData,
    unsigned int textureID,
    bool reverseViewport=true,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 


function displayTexturedTrianglesOrthoSelection#

Displays 2D textured triangles for selection.

static void SAMSON::displayTexturedTrianglesOrthoSelection (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const unsigned int * nodeIndexData,
    const float * textureCoordinateData,
    unsigned int textureID,
    bool reverseViewport=true
) 


function displayTexturedTrianglesSelection#

Displays 3D textured triangles for selection.

static void SAMSON::displayTexturedTrianglesSelection (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const unsigned int * nodeIndexData,
    const float * textureCoordinateData,
    unsigned int textureID,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    unsigned int nodeIndexModifier=0
) 


function displayTip [1/2]#

Displays a tip.

static void SAMSON::displayTip (
    int x,
    int y,
    const std::string & tip
) 


function displayTip [2/2]#

Displays a tip.

static void SAMSON::displayTip (
    const QPoint & position,
    const std::string & tip
) 


function displayTriangles#

Displays 3D triangles.

static void SAMSON::displayTriangles (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * normalData,
    const float * colorData,
    const unsigned int * flagData,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    const SBColor & diffuseColor=SBColor::black,
    float diffuseColorReplacement=0.0f,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 

This function displays triangles in the SAMSON viewport.

Parameters:

  • nTriangles The number of triangles
  • nPositions The number of positions used to describe triangles
  • indexData The array of indices of positions (three unsigned ints per triangle)
  • positionData The array of positions (three floats per position)
  • normalData The array of the normal vector at each position (three floats per position)
  • colorData The array of colors (four floats between 0 and 1 per position, rgba)
  • flagData The array of flags (one unsigned int per position)

  • the first bit corresponds to selection

  • the second bit correspond to highlight
  • the third bit correspond to fixed

The flag applied to each triangle is the flag of its first vertex.

Parameters:

  • shadowPassFlag A boolean to signal a shadow pass
  • transform Spatial transform applied to all positions before display
  • diffuseColor
  • diffuseColorReplacement
  • opacity
  • flagModifier

This function displays triangles in the viewport. For increased efficiency, triangles are described by providing an array of vertex positions and an array of triplets of indices of vertices. As a result, the number of vertex positions passed to the graphics hardware is often much smaller than three times the number of triangles. Furthermore, all passed properties are vertex-based and not triangle-based, and properties are interpolated along the triangle. For example, if a triangle connects three vertices which have different associated colors, then the triangle color is a gradient that interpolates the three colors. It should also be used to cast shadows. In a display overridden function, this code snippet produces this 3D shape:

Image

void display(SBNode::RenderingPass renderingPass) {

    unsigned int nTriangles = 8;
    unsigned int nPositions = 9;
    std::vector<unsigned int> indexData;
    std::vector<float> positionData;
    std::vector<float> normalData;
    std::vector<float> colorData;
    std::vector<unsigned int> flagData;

    // center of star
    positionData.push_back(5.f);    positionData.push_back(0.f);    positionData.push_back(0.f);

    // inside points
    positionData.push_back(0.f);    positionData.push_back(10.f);   positionData.push_back(10.f);
    positionData.push_back(0.f);    positionData.push_back(10.f);   positionData.push_back(-10.f);
    positionData.push_back(0.f);    positionData.push_back(-10.f);  positionData.push_back(-10.f);
    positionData.push_back(0.f);    positionData.push_back(-10.f);  positionData.push_back(10.f);

    //outside points
    positionData.push_back(0.f);    positionData.push_back(0.f);    positionData.push_back(40.f);
    positionData.push_back(0.f);    positionData.push_back(40.f);   positionData.push_back(0.f);
    positionData.push_back(0.f);    positionData.push_back(0.f);    positionData.push_back(-40.f);
    positionData.push_back(0.f);    positionData.push_back(-40.f);  positionData.push_back(0.f);

    // for each triangles, gives the index of the three points involved
    indexData.push_back(0);     indexData.push_back(1);     indexData.push_back(5);
    indexData.push_back(0);     indexData.push_back(1);     indexData.push_back(6);

    indexData.push_back(0);     indexData.push_back(2);     indexData.push_back(6);
    indexData.push_back(0);     indexData.push_back(2);     indexData.push_back(7);

    indexData.push_back(0);     indexData.push_back(3);     indexData.push_back(7);
    indexData.push_back(0);     indexData.push_back(3);     indexData.push_back(8);

    indexData.push_back(0);     indexData.push_back(4);     indexData.push_back(8);
    indexData.push_back(0);     indexData.push_back(4);     indexData.push_back(5);


    for (unsigned int i = 0; i < 8; i++) {
        flagData.push_back(0); // replace by 1 for selected, 2 for highlighted
    }

    for (unsigned int i = 0; i < 5; i++) {
        normalData.push_back(1.f); normalData.push_back(0.f); normalData.push_back(0.f);
    }
    normalData.push_back(0.8f); normalData.push_back(0.f);      normalData.push_back(0.6f);
    normalData.push_back(0.8f); normalData.push_back(0.6f);     normalData.push_back(0.f);
    normalData.push_back(0.8f); normalData.push_back(0.f);      normalData.push_back(-0.6f);
    normalData.push_back(0.8f); normalData.push_back(-0.6f);    normalData.push_back(0.f);


    for (unsigned int i = 0; i < 5; i++) {
        colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(1.f);
    }
    colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(1.f); colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(0.f); colorData.push_back(1.f); colorData.push_back(0.f); colorData.push_back(1.f);
    colorData.push_back(0.f); colorData.push_back(0.f); colorData.push_back(1.f); colorData.push_back(1.f);

    // Checks that the sizes of data correspond to the expected ones
    assert(indexData.size() == 3 * nTriangles);
    assert(positionData.size() == 3 * nPositions);
    assert(normalData.size() == 3 * nPositions);
    assert(colorData.size() == 4 * nPositions);
    assert(flagData.size() == nPositions);

    if (renderingPass == SBNode::RenderingPass::OpaqueGeometry) {
        SAMSON::displayTriangles(nTriangles, nPositions, indexData.data(),
            positionData.data(), normalData.data(), colorData.data(), flagData.data());
    }
    else if (renderingPass == SBNode::RenderingPass::ShadowingGeometry) {
        SAMSON::displayTriangles(nTriangles, nPositions, indexData.data(),
            positionData.data(), normalData.data(), colorData.data(), flagData.data(), true);
    }

}

function displayTrianglesOrtho#

Displays 2D triangles.

static void SAMSON::displayTrianglesOrtho (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const float * colorData,
    const unsigned int * flagData,
    bool reverseViewport=true,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 


function displayTrianglesOrthoSelection#

Displays 2D triangles for selection.

static void SAMSON::displayTrianglesOrthoSelection (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const unsigned int * nodeIndexData,
    bool reverseViewport=true
) 


function displayTrianglesSelection#

Displays 3D triangles for selection.

static void SAMSON::displayTrianglesSelection (
    unsigned int nTriangles,
    unsigned int nPositions,
    const unsigned int * indexData,
    const float * positionData,
    const unsigned int * nodeIndexData,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    unsigned int nodeIndexModifier=0
) 


function displayTubes#

Displays tubes.

static void SAMSON::displayTubes (
    unsigned int nPositions,
    unsigned int ovalDetail,
    float * ovalCenter,
    float * majorAxis,
    float * minorAxis,
    float * color,
    unsigned int * flags,
    unsigned int triangleReduction,
    bool shadowPassFlag=false,
    const SBSpatialTransform & transform=SBSpatialTransform::identity,
    float opacity=1.0f,
    unsigned int flagModifier=0
) 


function displayTubesSelection#

Displays tubes for selection.

static void SAMSON::displayTubesSelection (
    unsigned int nPositions,
    unsigned int ovalDetail,
    float * ovalCenter,
    float * majorAxis,
    float * minorAxis,
    unsigned int * nodeIndex,
    unsigned int triangleReduction,
    const SBSpatialTransform & transform=SBSpatialTransform::identity
) 


function documentSignalIsConnectedToSlot#

Returns true if and only if the document signal is connected to the slot.

static bool SAMSON::documentSignalIsConnectedToSlot (
    SBCReferenceTarget * referenceTarget,
    void(SBCReferenceTarget::*)( SBDocumentEvent *) functionPointer
) 


function enableHolding#

Resumes holding.

static void SAMSON::enableHolding () 


function enableViewportNodeHighlighting#

Enables automatic node highlighting in the viewport.

static void SAMSON::enableViewportNodeHighlighting () 


function endHolding#

Ends holding.

static void SAMSON::endHolding () 


function exportToFile#

Export a selection of nodes to a file.

static void SAMSON::exportToFile (
    const SBNodeIndexer & nodeIndexer,
    const std::string & fileName,
    const std::unordered_map< std::string, SBValue > * parameters=nullptr,
    SBIFileExporter * exporter=nullptr
) 


function generateTexture#

Generate an OpenGL texture from a QImage and returns its id.

static unsigned int SAMSON::generateTexture (
    const QImage & textureImage
) 


function getAction [1/2]#

Returns the action with the given actionUUID .

static SBAction * SAMSON::getAction (
    const SBUUID & actionUUID
) 


function getAction [2/2]#

Returns the first found action with the given className .

static QAction * SAMSON::getAction (
    const QString & className
) 


function getActionByText#

Returns the first found action with the given text .

static QAction * SAMSON::getActionByText (
    const QString & text
) 


function getActionWidget#

Returns the action widget with the given actionWidgetUUID .

static SBActionWidget * SAMSON::getActionWidget (
    const SBUUID & actionWidgetUUID
) 


function getActiveAsset#

Returns the active asset.

static const SBAsset * SAMSON::getActiveAsset () 


function getActiveCamera#

Returns a pointer to the active camera .

static SBDDocumentCamera * SAMSON::getActiveCamera () 


function getActiveDocument#

Returns a pointer to SAMSON's active document .

static SBDDocument * SAMSON::getActiveDocument () 


function getActiveDocumentFilter#

Returns the node filter of the active document.

static std::string SAMSON::getActiveDocumentFilter () 


function getActiveEditor#

Returns a pointer to the current editor.

static SBEditor * SAMSON::getActiveEditor () 


function getActiveSelectionFilter#

Returns the active selection filter.

static const SBNodePredicate & SAMSON::getActiveSelectionFilter () 

Returns a pointer to a node predicate corresponding to the active selection filter. The node predicate is still owned by SAMSON and will be destroyed by SAMSON once the selection filter is changed. So, depending on the use, you might need to clone it.


function getActiveSelectionFilterNSL#

Returns the active selection filter NSL string.

static std::string SAMSON::getActiveSelectionFilterNSL () 

Returns the NSL expression string corresponding to the active selection filter. The selection filter governs the selection level in the Viewport done by the default select editor.


function getActiveSelectionFilterName#

Returns the active selection filter name.

static std::string SAMSON::getActiveSelectionFilterName () 

Returns the active selection filter name. The selection filter governs the selection level in the Viewport done by the default select editor.


function getActiveStructuralModel#

Returns a pointer to the active structural model.

static SBStructuralModel * SAMSON::getActiveStructuralModel () 


function getAddWatermarkFlag#

Returns true when a watermark should be added to presentation movies and frames.

static bool SAMSON::getAddWatermarkFlag () 


function getAmbientLight#

Returns the ambient light.

static float SAMSON::getAmbientLight () 


function getApp#

Returns the app corresponding to a specific appUUID andelementUUID .

static SBApp * SAMSON::getApp (
    const SBUUID & appUUID,
    const SBUUID & elementUUID=SBUUID ()
) 


function getAppIndexer#

Returns the app indexer.

static SBPointerIndexer< SBApp > const * SAMSON::getAppIndexer () 


function getAtom [1/2]#

Returns the atom at location ( x ,y ) in the viewport.

static SBAtom * SAMSON::getAtom (
    int x,
    int y
) 

Parameters:

  • x The first viewport coordinate of the picking location
  • y The second viewport coordinate of the picking location

This function returns the atom displayed at coordinates x and y in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which atom was under the mouse cursor when the mouse button was pressed:

SBAtom* pickedAtom = SAMSON::getAtom(event->pos().x(), event->pos().y());

If no atom is present at coordinates x and y, the function returns 0.

This function is a convenience function that calls getNode(int, int, const SBNodePredicate&) and checks whether the picked node, if any, is an atom. If it is the case, the function returns a pointer to the picked atom. If a node of another type (e.g. a bond) is present at coordinates x and y, the function returns 0. If picking should be able to return any type of node, the function getNode(int, int, const SBNodePredicate&) should be used instead.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(int, int)


function getAtom [2/2]#

Returns the atom at location position in the viewport.

static SBAtom * SAMSON::getAtom (
    const QPoint & position
) 

Parameters:

  • position The viewport coordinates of the picking location

This function returns the atom displayed at a given position in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which atom was under the mouse cursor when the mouse button was pressed:

SBAtom* pickedAtom = SAMSON::getAtom(event->pos());

If no atom is present at the specified position, the function returns 0.

This function is a convenience function that calls getNode(const QPoint&, const SBNodePredicate&) and checks whether the picked node, if any, is an atom. If it is the case, the function returns a pointer to the picked atom. If a node of another type (e.g. a bond) is present at the specified position, the function returns 0. If picking should be able to return any type of node, the function getNode(const QPoint&, const SBNodePredicate&) should be used instead.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(const QPoint&)


function getAtomRadius#

Returns the radius of atoms in the default representation of structural models (when a constant radius is used)

static const SBQuantity::length & SAMSON::getAtomRadius () 


function getAtomicWeight#

Returns the atomic weight of periodic table element element .

static SBQuantity::mass SAMSON::getAtomicWeight (
    SBMElement::Type element
) 


function getBackgroundProgress#

Returns the progress between the current background (0) and the next background (1)

static float SAMSON::getBackgroundProgress () 


function getBlock#

Returns the block of periodic table element element .

static std::string SAMSON::getBlock (
    SBMElement::Type element
) 


function getBond [1/2]#

Returns the bond at location ( x ,y ) in the viewport.

static SBBond * SAMSON::getBond (
    int x,
    int y
) 

Parameters:

  • x The first viewport coordinate of the picking location
  • y The second viewport coordinate of the picking location

This function returns the bond displayed at coordinates x and y in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which bond was under the mouse cursor when the mouse button was pressed:

SBBond* pickedBond = SAMSON::getBond(event->pos().x(), event->pos().y());

If no bond is present at coordinates x and y, the function returns 0.

This function is a convenience function that calls getNode(int, int, const SBNodePredicate&) and checks whether the picked node, if any, is a bond. If it is the case, the function returns a pointer to the picked bond. If a node of another type (e.g. an atom) is present at coordinates x and y, the function returns 0. If picking should be able to return any type of node, the function getNode(int, int, const SBNodePredicate&) should be used instead.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(int, int)


function getBond [2/2]#

Returns the bond at location position in the viewport.

static SBBond * SAMSON::getBond (
    const QPoint & position
) 

Parameters:

  • position The viewport coordinates of the picking location

This function returns the bond displayed at a given position in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which bond was under the mouse cursor when the mouse button was pressed:

SBBond* pickedBond = SAMSON::getBond(event->pos());

If no bond is present at the specified position, the function returns 0.

This function is a convenience function that calls getNode(const QPoint&, const SBNodePredicate&) and checks whether the picked node, if any, is a bond. If it is the case, the function returns a pointer to the picked bond. If a node of another type (e.g. an atom) is present at the specified position, the function returns 0. If picking should be able to return any type of node, the function getNode(const QPoint&, const SBNodePredicate&) should be used instead.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(const QPoint&)


function getBondRadius#

Returns the radius of bonds in the default representation of structural models.

static const SBQuantity::length & SAMSON::getBondRadius () 


function getCameraControllerFlag#

Returns true when the camera controller should be displayed in the viewport.

static bool SAMSON::getCameraControllerFlag () 


function getChoiceFromUser#

Gets a choice from the user in a modal pop-up dialog.

static bool SAMSON::getChoiceFromUser (
    const QString & dialogTitle,
    int & resultIndex,
    const QString & label,
    const QStringList & choices,
    const QStringList & toolTips,
    const QList< QPixmap > & icons,
    const QPixmap & logo=QPixmap()
) 

Gets a color from the user in a modal pop-up dialog.


function getColorFromUser#

Gets a color from the user in a modal pop-up dialog.

static bool SAMSON::getColorFromUser (
    const QString & dialogTitle,
    SBColor & result,
    const QPixmap & logo=QPixmap()
) 


function getColorbar#

Returns a pixmap with a colorbar for a given color palette palette .

static QPixmap SAMSON::getColorbar (
    const SBDPalette * palette,
    unsigned int width,
    unsigned int height,
    unsigned int nColors=10,
    bool isHorizontal=true
) 

This static function return a pixmap with a colorbar for the given color palette palette with the size width x height and the number of colors nColors. The direction of the colorbar is governed by isHorizontal: true - horizontal, false - vertical


function getCovalentRadius [1/2]#

Returns the covalent radius of periodic table element element .

static SBQuantity::length SAMSON::getCovalentRadius (
    SBMElement::Type element
) 


function getCovalentRadius [2/2]#

Returns the covalent radius of periodic table element element for bond typebondType (1 for single bond, 2 for double bond, 3 for triple bond, for other values it returnsgetCovalentRadius() )

static SBQuantity::length SAMSON::getCovalentRadius (
    SBMElement::Type element,
    int bondType
) 


function getCredentialsFromUser [1/2]#

Gets credentials from the user in a modal pop-up dialog.

static bool SAMSON::getCredentialsFromUser (
    const QString & dialogTitle,
    QString & user,
    QString & password,
    const QPixmap & logo=QPixmap()
) 


function getCredentialsFromUser [2/2]#

Gets credentials from the user in a modal pop-up dialog.

static bool SAMSON::getCredentialsFromUser (
    const QString & dialogTitle,
    QString & host,
    int & port,
    QString & user,
    QString & password,
    const QPixmap & logo=QPixmap()
) 


function getCurrentBackgroundBottomColor#

Returns the top color of the current background.

static const float * SAMSON::getCurrentBackgroundBottomColor () 


function getCurrentBackgroundImageFileName#

Returns the file name of the current background image.

static QString SAMSON::getCurrentBackgroundImageFileName () 


function getCurrentBackgroundImageFlag#

Returns true when the current background should show an image from a file.

static bool SAMSON::getCurrentBackgroundImageFlag () 


function getCurrentBackgroundImageMode#

Returns the display mode of the current background image (0: contained in the viewport, 1: covering the viewport)

static int SAMSON::getCurrentBackgroundImageMode () 


function getCurrentBackgroundTopColor#

Returns the top color of the current background.

static const float * SAMSON::getCurrentBackgroundTopColor () 


function getCursor#

Returns the cursor with the given name cursorName , the given element uuiduuid .

static QCursor SAMSON::getCursor (
    const QString & cursorName,
    const SBUUID & uuid
) 


function getDarkModeFlag#

Returns true when dark mode is on.

static bool SAMSON::getDarkModeFlag () 


function getDarkWatermark#

Returns the dark watermark.

static QImage SAMSON::getDarkWatermark () 


function getDeepSelectionFlag#

Returns whether the user wants deep selection.

static bool SAMSON::getDeepSelectionFlag () 


function getDocumentList#

Returns the list of open documents .

static SBPointerList< SBDDocument > const * SAMSON::getDocumentList () 


function getDoubleFromUser#

Gets a number from the user in a modal pop-up dialog.

static bool SAMSON::getDoubleFromUser (
    const QString & dialogTitle,
    double & result,
    double minimum,
    double maximum,
    double singleStep=1.0,
    const QString & prefix="",
    const QString & suffix="",
    int decimals=2,
    const QPixmap & logo=QPixmap()
) 


function getDoubleIntervalFromUser#

Gets a double interval from the user in a modal pop-up dialog.

static bool SAMSON::getDoubleIntervalFromUser (
    const QString & dialogTitle,
    const QStringList & labelText,
    std::pair< double, double > & result,
    const std::pair< double, double > & minValueInterval,
    const std::pair< double, double > & maxValueInterval,
    const std::pair< double, double > & singleStep=std::pair< double, double >(1.0, 1.0),
    const QString & prefix="",
    const QString & suffix="",
    const QPixmap & logo=QPixmap()
) 


function getEditor#

Returns the editor corresponding to a specific classUUID andelementUUID .

static SBEditor * SAMSON::getEditor (
    const SBUUID & classUUID,
    const SBUUID & elementUUID
) 


function getEditorIndexer#

Returns the editor indexer.

static SBIndexer< SBEditor * > const * SAMSON::getEditorIndexer () 


function getElectronegativity#

Returns the electronegativity of periodic table element element .

static SBQuantity::dimensionless SAMSON::getElectronegativity (
    SBMElement::Type element
) 


function getElement#

Returns the periodic table element corresponding to a given type.

static const SBElement & SAMSON::getElement (
    SBMElement::Type element
) 


function getElementFromUser#

Gets a periodic table element from the user in a modal pop-up dialog.

static bool SAMSON::getElementFromUser (
    const QString & dialogTitle,
    SBMElement::Type & elementType,
    const QPixmap & logo=QPixmap()
) 


function getElementName#

Returns the name of the periodic table element corresponding to a given type.

static std::string SAMSON::getElementName (
    SBMElement::Type element
) 


function getElementSymbol#

Returns the symbol of the periodic table element corresponding to a given type.

static std::string SAMSON::getElementSymbol (
    SBMElement::Type element
) 


function getElementTypeByName [1/2]#

Returns the periodic table element type corresponding to a given name.

static SBElement::Type SAMSON::getElementTypeByName (
    char * elementName
) 


function getElementTypeByName [2/2]#

Returns the periodic table element type corresponding to a given name.

static SBElement::Type SAMSON::getElementTypeByName (
    const std::string & elementName
) 


function getElementTypeBySymbol [1/2]#

Returns the periodic table element type corresponding to a given symbol.

static SBElement::Type SAMSON::getElementTypeBySymbol (
    char * elementSymbol
) 


function getElementTypeBySymbol [2/2]#

Returns the periodic table element type corresponding to a given symbol.

static SBElement::Type SAMSON::getElementTypeBySymbol (
    const std::string & elementSymbol
) 


function getElementVector#

Returns the complete periodic table element vector.

static SBMElement *const * SAMSON::getElementVector () 


function getElementsFromUser#

Gets a list of periodic table elements from the user in a modal pop-up dialog.

static bool SAMSON::getElementsFromUser (
    const QString & dialogTitle,
    std::vector< SBMElement::Type > & elementTypes,
    const QPixmap & logo=QPixmap()
) 


function getFileNameFromUser#

Gets a filename from the user in a modal pop-up dialog with Open button.

static bool SAMSON::getFileNameFromUser (
    const QString & dialogTitle,
    QString & result,
    const QString & dir=QString(),
    const QString & filter=QString(),
    QString * selectedFilter=Q_NULLPTR,
    QFileDialog::Options options=QFileDialog::Options(),
    const QPixmap & logo=QPixmap()
) 


function getFileNamesFromUser#

Gets a list of filenames from the user in a modal pop-up dialog with Open button.

static bool SAMSON::getFileNamesFromUser (
    const QString & dialogTitle,
    QStringList & result,
    const QString & dir=QString(),
    const QString & filter=QString(),
    QString * selectedFilter=Q_NULLPTR,
    QFileDialog::Options options=QFileDialog::Options(),
    const QPixmap & logo=QPixmap()
) 


function getFogBegin#

Returns the distance at which the fog begins.

static const SBQuantity::length & SAMSON::getFogBegin () 


function getFogEnd#

Returns the distance beyond which fog is maximal.

static const SBQuantity::length & SAMSON::getFogEnd () 


function getFogFlag#

Returns true when fog is active in the viewport.

static bool SAMSON::getFogFlag () 


function getFogStrength#

Returns the fog strength.

static float SAMSON::getFogStrength () 


function getFontFromUser#

Gets a font from the user in a modal pop-up dialog.

static bool SAMSON::getFontFromUser (
    const QString & dialogTitle,
    QFont & result,
    const QPixmap & logo=QPixmap()
) 


function getFresnelColor#

Returns the Fresnel color.

static const float * SAMSON::getFresnelColor () 


function getFresnelIntensity#

Returns the Fresnel intensity.

static float SAMSON::getFresnelIntensity () 


function getFresnelPower#

Returns the Fresnel power.

static float SAMSON::getFresnelPower () 


function getGUI#

Returns the GUI of a node.

static SBNodeGUI * SAMSON::getGUI (
    SBNode * node
) 


function getGridFlag#

Returns true when the grid should be displayed in the viewport.

static bool SAMSON::getGridFlag () 


function getGroup#

Returns the group of periodic table element element .

static unsigned int SAMSON::getGroup (
    SBMElement::Type element
) 


function getHighlightingColor#

Returns the highlighting color.

static const float * SAMSON::getHighlightingColor () 


function getHighlightingOpacity#

Returns the highlighting opacity.

static float SAMSON::getHighlightingOpacity () 


function getIcon#

Returns the icon with the given name iconName the given element uuiduuid .

static QIcon SAMSON::getIcon (
    const QString & iconName,
    const SBUUID & uuid
) 


function getIntegerFromUser#

Gets a number from the user in a modal pop-up dialog.

static bool SAMSON::getIntegerFromUser (
    const QString & dialogTitle,
    int & result,
    int minimum,
    int maximum,
    int singleStep=1,
    const QString & prefix="",
    const QString & suffix="",
    const QPixmap & logo=QPixmap()
) 


function getIntegerIntervalFromUser#

Gets an integer interval from the user in a modal pop-up dialog.

static bool SAMSON::getIntegerIntervalFromUser (
    const QString & dialogTitle,
    const QStringList & labelText,
    std::pair< int, int > & result,
    const std::pair< int, int > & minValueInterval,
    const std::pair< int, int > & maxValueInterval,
    const std::pair< int, int > & singleStep=std::pair< int, int >(1, 1),
    const QString & prefix="",
    const QString & suffix="",
    const QPixmap & logo=QPixmap()
) 


function getItemFromUser [1/2]#

Gets an item from the user in a modal pop-up dialog.

static bool SAMSON::getItemFromUser (
    const QString & dialogTitle,
    QString & result,
    const QString & label,
    const QStringList & items,
    int current=0,
    const QPixmap & logo=QPixmap()
) 


function getItemFromUser [2/2]#

Gets an item from the user in a modal pop-up dialog.

static bool SAMSON::getItemFromUser (
    const QString & dialogTitle,
    int & resultIndex,
    const QString & label,
    const QStringList & items,
    const QPixmap & logo=QPixmap()
) 


function getLightColor#

Returns the light color of light lightIndex .

static const float * SAMSON::getLightColor (
    unsigned int lightIndex
) 


function getLightDirection#

Returns the light direction of light lightIndex .

static const float * SAMSON::getLightDirection (
    unsigned int lightIndex
) 


function getLightIntensity#

Returns the light intensity of light lightIndex .

static float SAMSON::getLightIntensity (
    unsigned int lightIndex
) 


function getLightWatermark#

Returns the light watermark.

static QImage SAMSON::getLightWatermark () 


function getLikeFromUser#

Asks the user to like an extension.

static void SAMSON::getLikeFromUser (
    const SBCContainerUUID & developerUUID,
    const SBCContainerUUID & extensionUUID
) 


function getMaximum3DTextureSize#

Returns the maximum 3D texture size.

static int SAMSON::getMaximum3DTextureSize () 


function getMaximumRectangleTextureSize#

Returns the maximum rectangle texture size.

static int SAMSON::getMaximumRectangleTextureSize () 


function getMaximumTextureSize#

Returns the maximum texture size.

static int SAMSON::getMaximumTextureSize () 


function getMinimizationFlag#

Returns true when interactive Minimization is on.

static bool SAMSON::getMinimizationFlag () 

This function returns true when interactive minimization is on. When interactive minimization is started, all active simulators in the active document periodically perform a time step.

See also: startMinimization, stopMinimization, toggleMinimization, setMinimizationFlag


function getMousePositionInViewport#

Returns the current mouse position in viewport coordinates.

static QPoint SAMSON::getMousePositionInViewport () 


function getMultiSampleFactor#

Returns the multisampling factor.

static unsigned int SAMSON::getMultiSampleFactor () 


function getMultipleBondDisplayFlag#

Returns true when bonds are displayed with a variable number of cylinders to represent their order.

static bool SAMSON::getMultipleBondDisplayFlag () 


function getNextBackgroundBottomColor#

Returns the top color of the next background.

static const float * SAMSON::getNextBackgroundBottomColor () 


function getNextBackgroundImageFileName#

Returns the file name of the next background image.

static QString SAMSON::getNextBackgroundImageFileName () 


function getNextBackgroundImageFlag#

Returns true when the next background should show an image from a file.

static bool SAMSON::getNextBackgroundImageFlag () 


function getNextBackgroundImageMode#

Returns the display mode of the next background image (0: contained in the viewport, 1: covering the viewport)

static int SAMSON::getNextBackgroundImageMode () 


function getNextBackgroundTopColor#

Returns the top color of the next background.

static const float * SAMSON::getNextBackgroundTopColor () 


function getNextNodeName#

Returns a next name starting with prefix prefix and ending with suffixsuffix for nodes of typetype in parent nodeparentNode or in the active document ifparentNode is null.

static std::string SAMSON::getNextNodeName (
    SBNode::Type type,
    std::string prefix=std::string(),
    std::string suffix=std::string(),
    SBNode * parentNode=nullptr
) 

This function checks the parent node parentNode or the active document if parentNode is NULL for all the nodes of type type with names starting with the prefix prefix (with an additional space after the prefix) and returns the next consecutive name. If the prefix is empty then the human-readable name of the node type type is used as the prefix.

For example, this function can be used to get a placeholder name for a newly added visual model. Let's say the active document has several visual models called as follows: 'Visual model 1', 'Ribbons 1', 'Visual model 3'. Then calling this function:

std::string newName = SAMSON::getNextNodeName(SBNode::VisualModel);
should return 'Visual model 4'. And calling:
std::string newName = SAMSON::getNextNodeName(SBNode::VisualModel, "Ribbons");
should return 'Ribbons 2'.


function getNode [1/4]#

Returns the node at location ( x ,y ) in the viewport according to theselectionFilter .

static SBNode * SAMSON::getNode (
    int x,
    int y,
    const SBNodePredicate & selectionFilter=SBNode::All ()
) 

Parameters:

  • x The first viewport coordinate of the picking location
  • y The second viewport coordinate of the picking location
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()

This function returns the node displayed at coordinates x and y in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which node was under the mouse cursor when the mouse button was pressed:

SBNode* node = SAMSON::getNode(event->pos().x(), event->pos().y());

If no node is present at coordinates x and y, the function returns 0.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(int, int, SBPosition3&)


function getNode [2/4]#

Returns the node at location position in the viewport according to theselectionFilter .

static SBNode * SAMSON::getNode (
    const QPoint & position,
    const SBNodePredicate & selectionFilter=SBNode::All ()
) 

Parameters:

  • position The viewport coordinates of the picking location
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()

This function returns the node displayed at a given position in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which node was under the mouse cursor when the mouse button was pressed:

SBNode* node = SAMSON::getNode(event->pos());

If no node is present at the specified position, the function returns 0.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(const QPoint&, SBPosition3&)


function getNode [3/4]#

Returns the node at location ( x ,y ) in the viewport and thepickedPosition according to theselectionFilter .

static SBNode * SAMSON::getNode (
    int x,
    int y,
    SBPosition3 & pickedPosition,
    const SBNodePredicate & selectionFilter=SBNode::All ()
) 

Parameters:

  • x The first viewport coordinate of the picking location
  • y The second viewport coordinate of the picking location
  • pickedPosition Returns the 3D coordinates of the picked point
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()

This function returns the node displayed at coordinates x and y in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which node was under the mouse cursor when the mouse button was pressed:

SBPosition3 pickedPosition;
SBNode* node = SAMSON::getNode(event->pos().x(), event->pos().y(), pickedPosition);

If no node is present at coordinates x and y, the function returns 0.

When the function returns, and if node is not 0, pickedPosition contains the 3D coordinates of the picked point.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(int, int)


function getNode [4/4]#

Returns the node at location position in the viewport and thepickedPosition according to theselectionFilter .

static SBNode * SAMSON::getNode (
    const QPoint & position,
    SBPosition3 & pickedPosition,
    const SBNodePredicate & selectionFilter=SBNode::All ()
) 

Parameters:

  • position The viewport coordinates of the picking location
  • pickedPosition Returns the 3D coordinates of the picked point
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()

This function returns the node displayed at a given position in the viewport. It is typically used by Editors when reacting to mouse press events, in order to determine which node was under the mouse cursor when the mouse button was pressed:

SBPosition3 pickedPosition;
SBNode* node = SAMSON::getNode(event->pos(), pickedPosition);

If no node is present at coordinates x and y, the function returns 0.

When the function returns, and if node is not 0, pickedPosition contains the 3D coordinates of the picked point.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(const QPoint&)


function getNodes [1/6]#

Stores the nodes found inside the viewport rectangle ( x ,y ,width ,height ) intonodeIndexer according to theselectionFilter .

static void SAMSON::getNodes (
    SBNodeIndexer & nodeIndexer,
    int x,
    int y,
    int width,
    int height,
    const SBNodePredicate & selectionFilter=SBNode::All (),
    bool deepSelectionFlag=false
) 

Parameters:

  • nodeIndexer The indexer which stores picked nodes
  • x The first viewport coordinate of the top left corner of the picking rectangle
  • y The second viewport coordinate of the top left corner of the picking rectangle
  • width The width of the picking rectangle
  • height The height of the picking rectangle
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()
  • deepSelectionFlag Whether to select nodes hidden by other nodes as well; by default, this is set to false

This function returns the nodes displayed in the viewport rectangle (x,y,width,height). It is typically used by Editors when reacting to mouse events:

SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, x, y, width, height);

Picked nodes are appended to the vector nodeVector.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(SBNodeIndexer&, const QPoint&, int, int)

See also: getDeepSelectionFlag()


function getNodes [2/6]#

Stores the nodes found inside the viewport rectangle ( topLeftCorner ,width ,height ) intonodeIndexer according to theselectionFilter .

static void SAMSON::getNodes (
    SBNodeIndexer & nodeIndexer,
    const QPoint & topLeftCorner,
    int width,
    int height,
    const SBNodePredicate & selectionFilter=SBNode::All (),
    bool deepSelectionFlag=false
) 

Parameters:

  • nodeIndexer The indexer which stores picked nodes
  • topLeftCorner The viewport coordinates of the top left corner of the picking rectangle
  • width The width of the picking rectangle
  • height The height of the picking rectangle
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()
  • deepSelectionFlag Whether to select nodes hidden by other nodes as well; by default, this is set to false

This function returns the nodes displayed in the viewport rectangle (x,y,width,height). It is typically used by Editors when reacting to mouse events:

SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, topLeftCorner, width, height);

Picked nodes are appended to the vector nodeVector.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getNode(SBNodeIndexer&, int, int, int, int)

See also: getDeepSelectionFlag()


function getNodes [3/6]#

Returns the nodes inside the selection lasso with contour selectionLasso intonodeIndexer according to theselectionFilter .

static void SAMSON::getNodes (
    SBNodeIndexer & nodeIndexer,
    const SBVector< QPoint > & selectionLasso,
    const SBNodePredicate & selectionFilter=SBNode::All (),
    bool deepSelectionFlag=false
) 

Parameters:

  • nodeIndexer The indexer which stores picked nodes
  • selectionLasso The vector of viewport coordinates that form the selection lasso
  • selectionFilter A node predicate for the selection filter; by default, it is equal to SBDDataGraphNode::All()
  • deepSelectionFlag Whether to select nodes hidden by other nodes as well; by default, this is set to false

This function returns the nodes displayed in a given selection lasso. It is typically used by Editors when reacting to mouse events:

SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, selectionLasso);

Picked nodes are appended to the vector nodeVector.

Note that picking in SAMSON is performed through rendering. As a result, this function cannot be called from within a display function (e.g. from a SBMVisualModel::display function).

See also: getDeepSelectionFlag()


function getNodes [4/6]#

Collects nodes from the active document into nodeIndexer based on aselectionString .

static void SAMSON::getNodes (
    SBNodeIndexer & nodeIndexer,
    const std::string & selectionString
) 

This function fills the nodeIndexer passed in reference with nodes from the active document, based on a selectionString formulated in SAMSON's NSL.

Parameters:

  • nodeIndexer The node indexer into which the nodes should be added.
  • selectionString A NSL expression string describing the selection.

For example:

SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, "node.type residue within 4A of S");
selects all residue nodes from the active document that are within 4 angstrom of any sulfur atom (note that the selection string may be abbreviated to "n.t r w 4A of S").

Note that the nodeIndexer is not cleared when entering this function.

See also: NSL

See also: SBNodeIndexer


function getNodes [5/6]#

Collects nodes from the active document into nodeIndexer , based on anodeType , a selection status and avisitPredicate , with or without dependencies.

static void SAMSON::getNodes (
    SBNodeIndexer & nodeIndexer,
    SBDDataGraphNode::Type nodeType,
    bool selectedNodesOnly=false,
    const SBNodePredicate & visitPredicate=SBDDataGraphNode::All (),
    bool includeDependencies=false
) 

This function fills the nodeIndexer passed in reference with nodes from the active document, based on a nodeType, and other parameters.

Parameters:

  • nodeIndexer The node indexer into which the nodes should be added.
  • nodeType A type of nodes (SBNode::Type) that should be collected.
  • selectedNodesOnly If set to true, then only nodes that are selected, directly or via their parents, will be traversed.
  • visitPredicate A predicate that describes what nodes should be visited in the active document.
  • includeDependencies Whether to include node dependencies or not.

This function traverses the active document's sub-tree for which visitPredicate is true (depth-first), and stores in nodeIndexer the nodes whose type is nodeType. Precisely, if the visitPredicate returns false, the node is not visited, and neither are its descendants. If the visitPredicate returns true, the node is visited, and the visitPredicate will be used to decide whether its children are visited or not. Note that the node itself must satisfy the visitPredicate else nothing is visited.

When includeDependencies is true, the function also adds to nodeIndexer nodes that are not descendants of this node, but are dependencies nonetheless. For example, in a bond, the two atoms connected by the bond are not children of the bond, but are still dependencies of the bond. Hence, provided the node type is nodeType and they satisfy they satisfy visitPredicate, they are added to the nodeIndexer if includeDependencies is true.

For example:

SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, SBNode::Residue);
selects all residue nodes from the active document.

Note that the nodeIndexer is not cleared when entering this function.

See also: SBNode::getNodes , SBNodeIndexer , SBNodePredicate


function getNodes [6/6]#

Collects nodes from the active document into nodeIndexer , based on aselectionPredicate and avisitPredicate , with or without dependencies.

static void SAMSON::getNodes (
    SBNodeIndexer & nodeIndexer,
    const SBNodePredicate & selectionPredicate=SBDDataGraphNode::All (),
    const SBNodePredicate & visitPredicate=SBDDataGraphNode::All (),
    bool includeDependencies=false
) 

This function fills the nodeIndexer passed in reference with nodes from the active document, based on a selectionPredicate, and other parameters.

Parameters:

  • nodeIndexer The node indexer into which the nodes should be added.
  • selectionPredicate A predicate that describes what nodes should be selected from the active document.
  • visitPredicate A predicate that describes what nodes should be visited in the active document.
  • includeDependencies Whether to include node dependencies or not.

This function traverses the active document's sub-tree for which visitPredicate is true (depth-first), and stores in nodeIndexer the nodes for which the selectionPredicate is true. Precisely, if the visitPredicate returns false, the node is not visited, and neither are its descendants. If the visitPredicate returns true, the node is visited, and the visitPredicate will be used to decide whether its children are visited or not. Note that the node itself must satisfy the visitPredicate else nothing is visited.

When includeDependencies is true, the function also adds to nodeIndexer nodes that are not descendants of this node, but are dependencies nonetheless. For example, in a bond, the two atoms connected by the bond are not children of the bond, but are still dependencies of the bond. Hence, provided they satisfy the selectionPredicate and visitPredicate, they are added to the nodeIndexer if includeDependencies is true.

For example:

SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, SBNode::IsType(SBNode::Residue) && SBResidue::IsTerminal());
selects all terminal residue nodes from the active document.

Note that the nodeIndexer is not cleared when entering this function.

See also: SBNode::getNodes , SBNodeIndexer , SBNodePredicate


function getNumberOfElements#

Returns the number of defined periodic table elements, including the Unknown element.

static unsigned int SAMSON::getNumberOfElements () 


function getOpenGLFunctions#

Returns a pointer to the OpenGL functions.

static SB_OPENGL_FUNCTIONS * SAMSON::getOpenGLFunctions () 


function getPaletteFromUser#

Gets a color palette from the user in a modal pop-up dialog. If the defaultPalette is provided it is set as a default one in the color palette dialog.

static SBPalette * SAMSON::getPaletteFromUser (
    const QString & dialogTitle,
    bool & ok,
    const SBPalette * defaultPalette=nullptr,
    const QPixmap & logo=QPixmap()
) 


function getPathFromUser#

Gets a path from the user in a modal pop-up dialog.

static bool SAMSON::getPathFromUser (
    const QString & dialogTitle,
    QString & result,
    const QPixmap & logo=QPixmap()
) 


function getPeriod#

Returns the period of periodic table element element .

static std::string SAMSON::getPeriod (
    SBMElement::Type element
) 


function getPixmap#

Returns the pixmap with the given name pixmapName , the given element uuiduuid .

static QPixmap SAMSON::getPixmap (
    const QString & pixmapName,
    const SBUUID & uuid
) 


function getPlainTextFromUser#

Gets a text from the user in a modal pop-up dialog.

static bool SAMSON::getPlainTextFromUser (
    const QString & dialogTitle,
    QString & result,
    int maxSize=0,
    const QString & placeholderText="",
    const QPixmap & logo=QPixmap()
) 


function getProgressBarValue#

Returns the current value of the progress bar.

static int SAMSON::getProgressBarValue () 


function getPromptFromUser#

Gets a string from the user in a modal pop-up dialog.

static bool SAMSON::getPromptFromUser (
    const QString & dialogTitle,
    QString & result,
    const QString & placeholderText="",
    const QPixmap & logo=QPixmap()
) 


function getProxy#

Returns the proxy of a class.

static SBProxy * SAMSON::getProxy (
    const std::string & className,
    const SBUUID & elementUUID=SBUUID ()
) 


function getProxyIndexer#

Returns all proxies corresponding to a given class type classType .

static SBIndexer< SBProxy * > const * SAMSON::getProxyIndexer (
    SBCClass::Type classType
) 


function getPublicName#

Returns the public name of SAMSON .

static std::string SAMSON::getPublicName (
    bool includeVersion=false,
    bool includeHashInVersion=false
) 


function getPublicVersionNumber#

Returns the "public version number" of SAMSON .

static std::string SAMSON::getPublicVersionNumber () 


function getReplyFromUser#

Asks the user to reply to a question.

static void SAMSON::getReplyFromUser (
    const SBCContainerUUID & developerUUID,
    const SBCContainerUUID & questionUUID
) 


function getSAMSONElementsPath#

Returns the path where SAMSON Extensions (previously called SAMSON Elements) are installed.

static std::string SAMSON::getSAMSONElementsPath () 


function getSAMSONPath#

Returns the path where SAMSON is installed.

static std::string SAMSON::getSAMSONPath () 


function getSaveFileNameFromUser#

Gets a filename from the user in a modal pop-up dialog with Save button.

static bool SAMSON::getSaveFileNameFromUser (
    const QString & dialogTitle,
    QString & result,
    const QString & dir=QString(),
    const QString & filter=QString(),
    QString * selectedFilter=Q_NULLPTR,
    QFileDialog::Options options=QFileDialog::Options(),
    const QPixmap & logo=QPixmap()
) 


function getScaleFlag#

Returns true when the scale should be displayed in the viewport.

static bool SAMSON::getScaleFlag () 


function getScratchPath#

Returns the path to scratch data.

static std::string SAMSON::getScratchPath () 


function getSelectionColor#

Returns the selection color.

static const float * SAMSON::getSelectionColor () 


function getSelectionOpacity#

Returns the selection opacity.

static float SAMSON::getSelectionOpacity () 


function getSelectionOutlineOpacity#

Returns the selection outline opacity.

static float SAMSON::getSelectionOutlineOpacity () 


function getSimulationFlag#

Returns true when interactive simulation is on.

static bool SAMSON::getSimulationFlag () 

This function returns true when interactive simulation is on. When interactive simulation is started, all active simulators in the active document periodically perform a time step.

See also: startSimulation, stopSimulation, toggleSimulation, setSimulationFlag


function getSpecularIntensity#

Returns the specular intensity of light lightIndex .

static float SAMSON::getSpecularIntensity (
    unsigned int lightIndex
) 


function getSpecularPower#

Returns the specular power of light lightIndex .

static float SAMSON::getSpecularPower (
    unsigned int lightIndex
) 


function getStringFromUser#

Gets a string from the user in a modal pop-up dialog.

static bool SAMSON::getStringFromUser (
    const QString & dialogTitle,
    QString & result,
    const QString & placeholderText="",
    const QPixmap & logo=QPixmap()
) 


function getTime#

Returns SAMSON's internal time.

static SBCTime SAMSON::getTime () 


function getTransparentBackgroundFlag#

Returns true when the background should be transparent.

static bool SAMSON::getTransparentBackgroundFlag () 


function getUserDataPath#

Returns the path where user data is installed.

static std::string SAMSON::getUserDataPath () 


function getUserPlan#

Returns the user plan.

static SBUserPlan SAMSON::getUserPlan () 


function getUserPlanString#

Returns a string containing the user plan.

static std::string SAMSON::getUserPlanString () 


function getVanDerWaalsAtomRadiusFlag#

Returns true when atoms are displayed with a radius proportional to their van der Waals radius.

static bool SAMSON::getVanDerWaalsAtomRadiusFlag () 


function getVanDerWaalsAtomRadiusRatio#

Returns the constant by which the atoms van der Waals radius is multiplied to represent atoms in the viewport (when a constant radius is not used)

static float SAMSON::getVanDerWaalsAtomRadiusRatio () 


function getVanDerWaalsRadius#

Returns the van der Waals radius of periodic table element element .

static SBQuantity::length SAMSON::getVanDerWaalsRadius (
    SBMElement::Type element
) 


function getVersionNumber#

Returns the version number ofSAMSON .

static SBCContainerVersionNumber SAMSON::getVersionNumber () 


function getViewportFont#

Returns the font used for text in the viewport.

static QFont SAMSON::getViewportFont () 


function getViewportHeight#

Returns the viewport height.

static int SAMSON::getViewportHeight () 


function getViewportPixelRatio#

Returns the viewport pixel ratio.

static double SAMSON::getViewportPixelRatio () 


function getViewportPositionFromWorldPosition#

Returns the projection in the viewport of a given world position .

static SBVector3 SAMSON::getViewportPositionFromWorldPosition (
    const SBPosition3 & position
) 


function getViewportWidth#

Returns the viewport width.

static int SAMSON::getViewportWidth () 


function getWorldPositionFromViewportPosition [1/4]#

Returns the 3D position that corresponds to the viewport location ( x ,y )

static SBPosition3 SAMSON::getWorldPositionFromViewportPosition (
    double x,
    double y
) 


function getWorldPositionFromViewportPosition [2/4]#

Returns the 3D position that corresponds to the viewport location ( x ,y ) in the plane containingpointInPlane .

static SBPosition3 SAMSON::getWorldPositionFromViewportPosition (
    double x,
    double y,
    const SBPosition3 & pointInPlane
) 


function getWorldPositionFromViewportPosition [3/4]#

Returns the 3D position that corresponds to the viewport location ( x ,y )

static SBPosition3 SAMSON::getWorldPositionFromViewportPosition (
    const QPoint & position
) 


function getWorldPositionFromViewportPosition [4/4]#

Returns the 3D position that corresponds to the viewport location ( x ,y ) in the plane containingpointInPlane .

static SBPosition3 SAMSON::getWorldPositionFromViewportPosition (
    const QPoint & position,
    const SBPosition3 & pointInPlane
) 


function hasNode [1/3]#

Checks for the presence nodes in the active document based on a selectionString .

static bool SAMSON::hasNode (
    const std::string & selectionString
) 

This function returns whether the active document has nodes based on a selectionString formulated in SAMSON's NSL.

Parameters:

  • selectionString A NSL expression string describing the selection.

For example:

bool res = SAMSON::hasNode("node.type residue within 4A of S");
checks for the presence of all residue nodes in the active document that are within 4 angstrom of any sulfur atom (note that the selection string may be abbreviated to "n.t r w 4A of S").

See also: NSL


function hasNode [2/3]#

Checks for the presence nodes in the active document based on a nodeType , a selection status and avisitPredicate , with or without dependencies.

static bool SAMSON::hasNode (
    SBDDataGraphNode::Type nodeType,
    bool selectedNodesOnly=false,
    const SBNodePredicate & visitPredicate=SBDDataGraphNode::All (),
    bool includeDependencies=false
) 

This function returns whether the active document has nodes based on a nodeType, and other parameters.

Parameters:

  • nodeType A type of nodes (SBNode::Type) that should be checked.
  • selectedNodesOnly If set to true, then only nodes that are selected, directly or via their parents, will be traversed.
  • visitPredicate A predicate that describes what nodes should be visited in the active document.
  • includeDependencies Whether to include node dependencies or not.

This function traverses the active document's sub-tree for which visitPredicate is true (depth-first), and checks for nodes whose type is nodeType. Precisely, if the visitPredicate returns false, the node is not visited, and neither are its descendants. If the visitPredicate returns true, the node is visited, and the visitPredicate will be used to decide whether its children are visited or not. Note that the node itself must satisfy the visitPredicate else nothing is visited.

When includeDependencies is true, the function also checks for nodes that are not descendants of this node, but are dependencies nonetheless. For example, in a bond, the two atoms connected by the bond are not children of the bond, but are still dependencies of the bond. Hence, provided they satisfy the nodeType, selectedNodesOnly, and visitPredicate, they are checked for if includeDependencies is true.

For example:

bool res = SAMSON::hasNode(SBNode::Residue);
checks for residue nodes in the active document.

See also: SBNode::getNodes , SBNodeIndexer , SBNodePredicate


function hasNode [3/3]#

Checks for the presence nodes in the active document based on a selectionPredicate and avisitPredicate , with or without dependencies.

static bool SAMSON::hasNode (
    const SBNodePredicate & selectionPredicate=SBDDataGraphNode::All (),
    const SBNodePredicate & visitPredicate=SBDDataGraphNode::All (),
    bool includeDependencies=false
) 

This function returns whether the active document has nodes based on a selectionPredicate, and other parameters.

Parameters:

  • selectionPredicate A predicate that describes what nodes should be checked for in the active document.
  • visitPredicate A predicate that describes what nodes should be visited in the active document.
  • includeDependencies Whether to include node dependencies or not.

This function traverses the active document's sub-tree for which visitPredicate is true (depth-first), and checks for nodes for which the selectionPredicate is true. Precisely, if the visitPredicate returns false, the node is not visited, and neither are its descendants. If the visitPredicate returns true, the node is visited, and the visitPredicate will be used to decide whether its children are visited or not. Note that the node itself must satisfy the visitPredicate else nothing is visited.

When includeDependencies is true, the function also checks nodes that are not descendants of this node, but are dependencies nonetheless. For example, in a bond, the two atoms connected by the bond are not children of the bond, but are still dependencies of the bond. Hence, provided they satisfy the selectionPredicate and visitPredicate, they are checked for if includeDependencies is true.

For example:

bool res = SAMSON::hasNode(SBNode::IsType(SBNode::Residue) && SBResidue::IsTerminal());
checks for all terminal residue nodes in the active document.

Note that the nodeIndexer is not cleared when entering this function.

See also: SBNode::getNodes , SBNodeIndexer , SBNodePredicate


function hideProgressBar#

Hides the progress bar.

static void SAMSON::hideProgressBar () 

This function hides the progress bar.

See also: showProgressBar, isProgressBarStopped, setProgressBarValue, hideProgressBar


function hideTip#

Hides the last tip window.

static void SAMSON::hideTip () 

This static function hides the last tip window.


function hold [1/4]#

Holds an object.

static void SAMSON::hold (
    void * object
) 


function hold [2/4]#

Holds a node and its descendants.

static void SAMSON::hold (
    SBNode * node
) 


function hold [3/4]#

Holds a command.

static void SAMSON::hold (
    SBUndoCommand * undoCommand
) 


function hold [4/4]#

Holds a pointer target allocated on the heap.

static void SAMSON::hold (
    SBPointerTarget * pointerTarget
) 


function holdArray#

Holds an array allocated on the heap.

static void SAMSON::holdArray (
    void * array
) 


function importFromFile [1/2]#

Import a file from the disk.

static void SAMSON::importFromFile (
    const std::string & fileName,
    const std::unordered_map< std::string, SBValue > * parameters=nullptr,
    SBDDocumentFolder * preferredFolder=nullptr,
    SBIFileImporter * importer=nullptr
) 


function importFromFile [2/2]