Class 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 | appIsInitialized (const SBUUID & appUUID, const SBUUID & elementUUID=SBUUID()) Returns true or false if an app corresponding to a specificappUUID andelementUUID is initialized already. |
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. |
QImage * | create2DImage (const std::string & smiles, int widthPx=600, int marginPx=10, double lineWidth=2, QString fontFamily="sans-serif") Creates a 2D image for the given SMILES code. |
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 . |
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(), int iconSize=60) 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. |
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. |
std::string | getGPUInfo () Returns a string with the user's GPU name. |
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 . |
SBPointerIndexer< SBApp > const * | getInitializedAppIndexer (bool forceInitialization=false) Returns the initialized app indexer. |
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. |
SBValue | getPreference (const SBCContainerUUID & classUUID, const std::string & preferenceName) Returns the value of preference preferenceName for the class with UUIDclassUUID . |
unsigned int | getPreferenceSize (const SBCContainerUUID & classUUID, const std::string & preferenceName) Returns the size of preference preferenceName in the class with UUIDclassUUID when relevant. |
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 SBCContainerUUID & classUUID) Returns the proxy of a class. |
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. |
QString | getShortcutString (QKeySequence keySequence) Returns the shortcut string corresponding to a specific keySequence . |
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. |
bool | getUserAcademicFlag () Returns true when the user is an academic. |
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 of SAMSON. |
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 | 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. |
bool | openPreferences (const QString & pageName) Opens the Preferences at the given page pageName . |
bool | openPreferences (const SBUUID & uuid) Opens the Preferences at the page corresponding to the UUID uuid of a class which settings are exposed in Preferences. |
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 istrue 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 istrue 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 | setPreference (const SBCContainerUUID & classUUID, const std::string & preferenceName, const SBValue & value, const SBValue & size=0) Sets the value of preference preferenceName for the class with UUIDclassUUID tovalue . |
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:
Time#
SAMSON may be used to get the current internal time (in ticks)
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:
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:
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:
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:
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
):
- getNodes(SBNodeIndexer&, int, int, int, int, const SBNodePredicate&, bool) returns all nodes in a rectangular region of the viewport according to a node predicate
- getNodes(SBNodeIndexer&, const SBVector<QPoint>&, const SBNodePredicate&, bool) returns all nodes in a region of the viewport with a custom shape according to a node predicate
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:
and the mouse position in viewport coordinates (see rendering) can be obtained with: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:
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:
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:
Note that convenience functions exist in atoms to access the properties of their element:
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:
as well as inform the user through modal dialogs, either via a simple string: 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:
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:
whereresult
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:
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:
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");
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:
See also: data graph
See also: showProperties
Public Static Functions Documentation#
function addDialog [1/2]#
Adds a SAMSON dialog to the user interface.
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 .
function addToSelection#
Adds nodes from the active document to the selection based on a 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:
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.
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 appIsInitialized#
Returns true
or false if an app corresponding to a specificappUUID
andelementUUID
is initialized already.
static bool SAMSON::appIsInitialized (
const SBUUID & appUUID,
const SBUUID & elementUUID=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.
function canImportFromFile#
Returns true
when the files can be imported.
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 (SBDDocumentEvent) e.g.
SBDDocumentEvent::Type::ActiveDocumentChanged, SBDDocumentEvent::Type::DocumentAdded, etc. Let's assume that we want to listen to SBDDocumentEvent in an App (SBDApp), then this App needs to have a function that receives a pointer to SBDDocumentEvent, e.g.:
void SEMyApp::onDocumentEvent(SBDocumentEvent* event) {
switch (event->getType()) {
case SBDocumentEvent::Type::ActiveDocumentChanged:
// do something
break;
default:
break;
}
}
Then in this App we can connect to a document signal as follows:
See also: documentSignalIsConnectedToSlot
See also: disconnectDocumentSignalFromSlot
function countNodes [1/3]#
Counts nodes in the active document based on a 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:
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:
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:
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 create2DImage#
Creates a 2D image for the given SMILES code.
static QImage * SAMSON::create2DImage (
const std::string & smiles,
int widthPx=600,
int marginPx=10,
double lineWidth=2,
QString fontFamily="sans-serif"
)
function createHeadsetViewport#
Creates a viewport for a virtual reality headset.
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 thefilePathList
).
function createRenderPreset#
Creates a render preset based on the current rendering settings; returns the owning pointer.
function deleteTexture#
Deletes an OpenGL texture from its id.
function disableHolding#
Pauses holding bool transparency = false,.
function disableViewportNodeHighlighting#
Enables automatic node highlighting in the viewport.
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 cylindersnPositions
The number of positions used to describe cylindersindexData
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
The boolean to signal a shadow passtransform
The spatial transform to apply for renderingopacity
The float to specify the opacityflagModifier
The flag modifier
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:
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 cylindersnPositions
The number of positions used to describe cylindersindexData
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)transform
The spatial transform to apply for rendering
This function 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 cylindersnPositions
The number of positions used to describe cylindersindexData
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
The boolean to signal a shadow passtransform
The spatial transform to apply for renderingopacity
The float to specify the opacityflagModifier
The flag modifier
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 cylindersnPositions
The number of positions used to describe cylindersindexData
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)transform
The spatial transform to apply for rendering
This function 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 linesnPositions
The number of positions used to describe linesindexData
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
The boolean to signal a shadow passtransform
The spatial transform to apply for renderingopacity
The float to specify the opacityflagModifier
The flag modifier
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:
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 linesnPositions
The number of positions used to describe linesindexData
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)transform
The spatial transform to apply for rendering
This function 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 spherespositionData
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
The boolean to signal a shadow passtransform
The spatial transform to apply for renderingopacity
The float to specify the opacityflagModifier
The flag modifier
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 spherespositionData
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)transform
The spatial transform to apply for rendering
This function 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.
function displayTip [2/2]#
Displays a 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 trianglesnPositions
The number of positions used to describe trianglesindexData
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 passtransform
Spatial transform applied to all positions before displaydiffuseColor
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:
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.
function enableViewportNodeHighlighting#
Enables automatic node highlighting in the viewport.
function endHolding#
Ends holding.
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.
function getAction [1/2]#
Returns the action with the given actionUUID
.
function getAction [2/2]#
Returns the first found action with the given className
.
function getActionByText#
Returns the first found action with the given text
.
function getActionWidget#
Returns the action widget with the given actionWidgetUUID
.
function getActiveAsset#
Returns the active asset.
function getActiveCamera#
Returns a pointer to the active camera .
function getActiveDocument#
Returns a pointer to SAMSON's active document .
function getActiveDocumentFilter#
Returns the node filter of the active document.
function getActiveEditor#
Returns a pointer to the current editor.
function getActiveSelectionFilter#
Returns the active selection filter.
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.
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.
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.
function getAddWatermarkFlag#
Returns true
when a watermark should be added to presentation movies and frames.
function getAmbientLight#
Returns the ambient light.
function getApp#
Returns the app corresponding to a specific appUUID
andelementUUID
.
function getAtom [1/2]#
Returns the atom at location ( x
,y
) in the viewport.
Parameters:
x
The first viewport coordinate of the picking locationy
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:
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.
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:
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)
function getAtomicWeight#
Returns the atomic weight of periodic table element element
.
function getBackgroundProgress#
Returns the progress between the current background (0) and the next background (1)
function getBlock#
Returns the block of periodic table element element
.
function getBond [1/2]#
Returns the bond at location ( x
,y
) in the viewport.
Parameters:
x
The first viewport coordinate of the picking locationy
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:
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.
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:
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.
function getCameraControllerFlag#
Returns true
when the camera controller should be displayed in the viewport.
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(),
int iconSize=60
)
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
.
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() )
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.
function getCurrentBackgroundImageFileName#
Returns the file name of the current background image.
function getCurrentBackgroundImageFlag#
Returns true
when the current background should show an image from a file.
function getCurrentBackgroundImageMode#
Returns the display mode of the current background image (0: contained in the viewport, 1: covering the viewport)
function getCurrentBackgroundTopColor#
Returns the top color of the current background.
function getCursor#
Returns the cursor with the given name cursorName
, the given element uuiduuid
.
function getDarkModeFlag#
Returns true
when dark mode is on.
function getDarkWatermark#
Returns the dark watermark.
function getDeepSelectionFlag#
Returns whether the user wants deep selection.
function getDocumentList#
Returns the list of open documents .
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
.
function getEditorIndexer#
Returns the editor indexer.
function getElectronegativity#
Returns the electronegativity of periodic table element element
.
function getElement#
Returns the periodic table element corresponding to a given type.
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.
function getElementSymbol#
Returns the symbol of the periodic table element corresponding to a given type.
function getElementTypeByName [1/2]#
Returns the periodic table element type corresponding to a given name.
function getElementTypeByName [2/2]#
Returns the periodic table element type corresponding to a given name.
function getElementTypeBySymbol [1/2]#
Returns the periodic table element type corresponding to a given symbol.
function getElementTypeBySymbol [2/2]#
Returns the periodic table element type corresponding to a given symbol.
function getElementVector#
Returns the complete periodic table element vector.
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 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.
function getFresnelIntensity#
Returns the Fresnel intensity.
function getFresnelPower#
Returns the Fresnel power.
function getGPUInfo#
Returns a string with the user's GPU name.
function getGUI#
Returns the GUI of a node.
function getGridFlag#
Returns true
when the grid should be displayed in the viewport.
function getGroup#
Returns the group of periodic table element element
.
function getHighlightingColor#
Returns the highlighting color.
function getHighlightingOpacity#
Returns the highlighting opacity.
function getIcon#
Returns the icon with the given name iconName
the given element uuiduuid
.
function getInitializedAppIndexer#
Returns the initialized app indexer.
static SBPointerIndexer< SBApp > const * SAMSON::getInitializedAppIndexer (
bool forceInitialization=false
)
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
.
function getLightDirection#
Returns the light direction of light lightIndex
.
function getLightIntensity#
Returns the light intensity of light lightIndex
.
function getLightWatermark#
Returns the light watermark.
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.
function getMaximumRectangleTextureSize#
Returns the maximum rectangle texture size.
function getMaximumTextureSize#
Returns the maximum texture size.
function getMinimizationFlag#
Returns true
when interactive Minimization is on.
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.
function getMultiSampleFactor#
Returns the multisampling factor.
function getMultipleBondDisplayFlag#
Returns true
when bonds are displayed with a variable number of cylinders to represent their order.
function getNextBackgroundBottomColor#
Returns the top color of the next background.
function getNextBackgroundImageFileName#
Returns the file name of the next background image.
function getNextBackgroundImageFlag#
Returns true
when the next background should show an image from a file.
function getNextBackgroundImageMode#
Returns the display mode of the next background image (0: contained in the viewport, 1: covering the viewport)
function getNextBackgroundTopColor#
Returns the top color of the next background.
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:
should return 'Visual model 4'. And calling: 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 locationy
The second viewport coordinate of the picking locationselectionFilter
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:
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 locationselectionFilter
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:
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 locationy
The second viewport coordinate of the picking locationpickedPosition
Returns the 3D coordinates of the picked pointselectionFilter
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 locationpickedPosition
Returns the 3D coordinates of the picked pointselectionFilter
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:
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 nodesx
The first viewport coordinate of the top left corner of the picking rectangley
The second viewport coordinate of the top left corner of the picking rectanglewidth
The width of the picking rectangleheight
The height of the picking rectangleselectionFilter
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 tofalse
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:
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 nodestopLeftCorner
The viewport coordinates of the top left corner of the picking rectanglewidth
The width of the picking rectangleheight
The height of the picking rectangleselectionFilter
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 tofalse
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:
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 nodesselectionLasso
The vector of viewport coordinates that form the selection lassoselectionFilter
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 tofalse
This function returns the nodes displayed in a given selection lasso. It is typically used by Editors when reacting to mouse events:
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
.
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:
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:
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());
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.
function getOpenGLFunctions#
Returns a pointer to the OpenGL functions.
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
.
function getPixmap#
Returns the pixmap with the given name pixmapName
, the given element uuiduuid
.
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 getPreference#
Returns the value of preference preferenceName
for the class with UUIDclassUUID
.
static SBValue SAMSON::getPreference (
const SBCContainerUUID & classUUID,
const std::string & preferenceName
)
function getPreferenceSize#
Returns the size of preference preferenceName
in the class with UUIDclassUUID
when relevant.
static unsigned int SAMSON::getPreferenceSize (
const SBCContainerUUID & classUUID,
const std::string & preferenceName
)
function getProgressBarValue#
Returns the current value of the progress bar.
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 [1/2]#
Returns the proxy of a class.
function getProxy [2/2]#
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
.
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.
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.
function getSAMSONPath#
Returns the path where SAMSON is installed.
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.
function getScratchPath#
Returns the path to scratch data.
function getSelectionColor#
Returns the selection color.
function getSelectionOpacity#
Returns the selection opacity.
function getSelectionOutlineOpacity#
Returns the selection outline opacity.
function getShortcutString#
Returns the shortcut string corresponding to a specific keySequence
.
function getSimulationFlag#
Returns true
when interactive simulation is on.
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
.
function getSpecularPower#
Returns the specular power of light 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.
function getTransparentBackgroundFlag#
Returns true
when the background should be transparent.
function getUserAcademicFlag#
Returns true
when the user is an academic.
function getUserDataPath#
Returns the path where user data is installed.
function getUserPlan#
Returns the user plan.
function getUserPlanString#
Returns a string containing the user plan.
function getVanDerWaalsAtomRadiusFlag#
Returns true
when atoms are displayed with a radius proportional to their van der Waals radius.
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)
function getVanDerWaalsRadius#
Returns the van der Waals radius of periodic table element element
.
function getVersionNumber#
Returns the version number of SAMSON.
function getViewportFont#
Returns the font used for text in the viewport.
function getViewportHeight#
Returns the viewport height.
function getViewportPixelRatio#
Returns the viewport pixel ratio.
function getViewportPositionFromWorldPosition#
Returns the projection in the viewport of a given world position
.
function getViewportWidth#
Returns the viewport width.
function getWorldPositionFromViewportPosition [1/4]#
Returns the 3D position that corresponds to the viewport location ( x
,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
)
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
.
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:
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:
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:
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.
This function hides the progress bar.
See also: showProgressBar, isProgressBarStopped, setProgressBarValue, hideProgressBar
function hideTip#
Hides the last tip window.
This static function hides the last tip window.
function hold [1/4]#
Holds an object.
function hold [2/4]#
Holds a node and its descendants.
function hold [3/4]#
Holds a command.
function hold [4/4]#
Holds a pointer target allocated on the heap.
function holdArray#
Holds an array allocated on the heap.
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]#
Import files from the disk.
static void SAMSON::importFromFile (
const QStringList & fileNameList,
const std::unordered_map< std::string, SBValue > * parameters=nullptr,
SBDDocumentFolder * preferredFolder=nullptr,
SBIFileImporter * importer=nullptr
)
function informUser [1/4]#
Informs the user with a message in a modal pop-up dialog.
static void SAMSON::informUser (
const QString & dialogTitle,
const QString & dialogText,
const QPixmap & logo=QPixmap()
)
This static function informs the user with a message in a modal pop-up dialog.
This is a convenience function which makes it easy to program messages 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 OK button. This function exposes the function with the same name in SBGWindowDialog.
See also: askUser
function informUser [2/4]#
Informs the user with a message and text in a modal pop-up dialog.
static void SAMSON::informUser (
const QString & dialogTitle,
const QString & labelText,
const QString & text,
bool monospaceFont=false,
const QPixmap & logo=QPixmap()
)
This static function informs the user with a message and text in a modal pop-up dialog.
This is a convenience function which makes it easy to program messages with logs 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 OK button. This function exposes the function with the same name in SBGWindowDialog.
See also: askUser
function informUser [3/4]#
Informs the user with a widget in a modal pop-up dialog.
This static function informs the user with a widget
in a modal pop-up dialog.
This is a convenience function which makes it easy to program messages 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 OK button. The dialog title and icon are taken from the widget. Note that the OK button is created by this function, and the widget does not have to contain one. This function exposes the function with the same name in SBGWindowDialog.
// MyCustomWidget derives from SBGWindowWidget
QWidget* myCustomWidget = new QWidget();
SAMSON::informUser(myCustomWidget);
delete myCustomWidget;
See also: askUser
function informUser [4/4]#
Informs the user with a widget in a modal pop-up dialog.
This static function informs the user with a widget
in a modal pop-up dialog.
This is a convenience function which makes it easy to program messages 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 OK button. The dialog title and icon are taken from the widget. Note that the OK button is created by this function, and the widget does not have to contain one. This function exposes the function with the same name in SBGWindowDialog.
// MyCustomWidget derives from SBGWindowWidget
MyCustomWidget* myCustomWidget = new MyCustomWidget();
SAMSON::informUser(myCustomWidget);
delete myCustomWidget;
See also: askUser
function isGUIThread#
Returns true
if called from the main thread (GUI thread), else return false.
function isHolding#
Returns true
when SAMSON is holding.
function isProgressBarStopped#
Returns true
when the progress bar is stopped.
This function returns whether the progress bar was stopped/canceled by the user.
See also: showProgressBar, isProgressBarStopped, setProgressBarValue, hideProgressBar
function isRedoing#
Returns true
while redoing.
function isShowingTip#
Returns whether a tip is being shown.
function isUndoing#
Returns true
while undoing.
function makeAnimation#
Makes an animation.
static SBAnimation * SAMSON::makeAnimation (
const std::string & name,
const SBNodeIndexer & nodeIndexer,
double currentFrame,
const std::string & animationClassName,
const SBUUID & animationElementUUID=SBUUID ()
)
Creates an instance of an animation with the given class name and extension UUID for the specified node indexer at the specified frame.
Parameters:
name
The name of animation object.nodeIndexer
The node indexer with nodes the animation should be applied to.currentFrame
The frame at which the animation should start.animationClassName
The name of the animation class.animationElementUUID
The UUID of the extension with the animation class.
Returns:
A pointer to the created animation object or nullptr if could not create the object.
function makeController#
Makes a controller.
static SBController * SAMSON::makeController (
const std::string & controllerClassName,
const SBUUID & controllerElementUUID=SBUUID ()
)
Creates an instance of a controller with the specified class name and extension UUID.
Parameters:
controllerClassName
The name of the controller class.controllerElementUUID
The UUID of the extension with the controller class.
Returns:
A pointer to the created controller object or nullptr if could not create the object.
function makeInteractionModel#
Makes an interaction model.
static SBInteractionModelParticleSystem * SAMSON::makeInteractionModel (
SBParticleSystem * dynamicalModel,
const std::string & interactionModelClassName,
const SBUUID & interactionModelElementUUID=SBUUID ()
)
Creates an instance of an interaction model with the given class name and extension UUID for the specified dynamical model.
Parameters:
dynamicalModel
A pointer to the dynamical model object.interactionModelClassName
The name of the interaction model class.interactionModelElementUUID
The UUID of the extension with the interaction model class.
Returns:
A pointer to the created interaction model object or nullptr if could not create the object.
function makeNeighborSearch#
Makes a neighbor search algorithm.
static SBSNeighborSearchParticleSystem * SAMSON::makeNeighborSearch (
SBParticleSystem * dynamicalModel,
const SBQuantity::length & cutoffDistance,
const std::string & neighborSearchClassName,
const SBUUID & neighborSearchElementUUID=SBUUID ()
)
Creates an instance of a neighbor search with the given class name and extension UUID for the specified dynamical model and cutoff distance.
Parameters:
dynamicalModel
A pointer to the dynamical model object.cutoffDistance
The cutoff distance for the neighbor search algorithm.neighborSearchClassName
The name of the neighbor search class.neighborSearchElementUUID
The UUID of the extension with the neighbor search class.
Returns:
A pointer to the created neighbor search object or nullptr if could not create the object.
SBSNeighborSearchParticleSystem* neighborSearch = SAMSON::makeNeighborSearch(particleSystem, SBQuantity::nanometers(10.0), "NeighborSearchClass", neighborSearchExtensionUUID);
function makeNodePredicate#
Make a node predicate based on a selectionString
.
This function makes a node predicate based on a selectionString
formulated in SAMSON's NSL.
For example:
makes a predicate that istrue
if and only if the node is a hydrogen atom bonded to an oxygen atom. This function may be used when a predicate should be stored. Ownership is passed to the caller, who should delete the predicate when it's done using it.
See also: NSL
function makePropertyModel#
Makes a property model.
static SBPropertyModel * SAMSON::makePropertyModel (
const SBNodeIndexer & nodeIndexer,
const std::string & propertyModelClassName,
const SBUUID & propertyModelElementUUID=SBUUID ()
)
Creates an instance of a property model with the given class name and extension UUID for the specified node indexer.
Parameters:
nodeIndexer
The node indexer with nodes the property model should be applied to.propertyModelClassName
The name of the property model class.propertyModelElementUUID
The UUID of the extension with the property model class.
Returns:
A pointer to the created property model object or nullptr if could not create the object.
function makeSelector#
Makes a selector.
static SBNodeSelector * SAMSON::makeSelector (
const std::string & selectorClassName,
const SBUUID & selectorElementUUID=SBUUID ()
)
Creates an instance of a selector with the given class name and extension UUID.
Parameters:
selectorClassName
The name of the selector class.selectorElementUUID
The UUID of the extension with the selector class.
Returns:
A pointer to the created selector object or nullptr if could not create the object.
function makeSimulator#
Makes a simulator.
static SBSimulatorParticleSystem * SAMSON::makeSimulator (
const SBNodeIndexer & nodeIndexer,
const std::string & interactionModelClassName,
const SBUUID & interactionModelElementUUID,
const std::string & stateUpdaterClassName,
const SBUUID & stateUpdaterElementUUID=SBUUID ()
)
Creates an instance of a simulator for the specified nodes, interaction model, and state updater.
Parameters:
nodeIndexer
The node indexer with nodes the simulator should be applied to.interactionModelClassName
The name of the interaction model class.interactionModelElementUUID
The UUID of the extension with the interaction model class.stateUpdaterClassName
The name of the state updater class.stateUpdaterElementUUID
The UUID of the extension with the state updater class.
Returns:
A pointer to the created simulator object or nullptr if could not create the object.
This will also create the corresponding dynamical model particle system for the nodes in the nodeIndexer
, and corresponding interaction model and state updater.
SBSimulatorParticleSystem* simulator = SAMSON::makeSimulator(nodeIndexer, "InteractionModelClass", interactionModelExtensionUUID, "StateUpdaterClass", stateUpdaterExtensionUUID);
function makeStateUpdater#
Makes a state updater.
static SBStateUpdaterParticleSystem * SAMSON::makeStateUpdater (
SBParticleSystem * dynamicalModel,
SBInteractionModelParticleSystem * interactionModel,
const std::string & stateUpdaterClassName,
const SBUUID & stateUpdaterElementUUID=SBUUID ()
)
Creates an instance of a state updater with the given class name and extension UUID for the specified dynamical model and interaction model.
Parameters:
dynamicalModel
A pointer to the dynamical model object.interactionModel
A pointer to the interaction model object.stateUpdaterClassName
The name of the state updater class.stateUpdaterElementUUID
The UUID of the extension with the state updater class.
Returns:
A pointer to the created state updater object or nullptr if could not create the object.
SBStateUpdaterParticleSystem* stateUpdater = SAMSON::makeStateUpdater(particleSystem, interactionModel, "StateUpdaterClass", stateUpdaterExtensionUUID);
function makeViewportCursor#
Makes a viewport cursor.
static QCursor SAMSON::makeViewportCursor (
const QString & fileName,
int height,
int hotX=-1,
int hotY=-1
)
function makeVisualModel#
Makes a visual model.
static SBVisualModel * SAMSON::makeVisualModel (
const SBNodeIndexer & nodeIndexer,
const std::string & visualModelClassName,
const SBUUID & visualModelElementUUID=SBUUID ()
)
Creates an instance of a visual model with the given class name and extension UUID for the specified node indexer.
Parameters:
nodeIndexer
The node indexer with nodes the visual model should be applied to.visualModelClassName
The name of the visual model class.visualModelElementUUID
The UUID of the extension with the visual model class.
Returns:
A pointer to the created visual model object or nullptr if could not create the object.
SBVisualModel* visualModel = SAMSON::makeVisualModel(nodeIndexer, "VisualModelClass", visualModelExtensionUUID);
function minimize#
Minimize atoms in the nodeIndexer
according to the provided criteria.
static bool SAMSON::minimize (
const SBNodeIndexer & nodeIndexer,
unsigned int maximumNumberOfSteps,
unsigned int minimumNumberOfStepsInPlateau,
const SBQuantity::kJPerMol & energyDifferenceCriteria,
unsigned int printMinimizationInformationFrequency=100,
bool askUser=false
)
Performs minimization of atoms in the nodeIndexer
.
Parameters:
nodeIndexer
An indexer of nodes (atoms or nodes that have atoms in them) to which minimization should be applied.maximumNumberOfSteps
The maximum number of minimization steps.minimumNumberOfStepsInPlateau
The minimum number of consecutive steps sufficing the energy difference criteria.energyDifferenceCriteria
The energy difference threshold between two consecutive minimization steps.printMinimizationInformationFrequency
The frequency at which the minimization information should be printed. Set to 0 to disable. Note: printing information too often might decrease the performance. The default value is 100.askUser
Set to true to ask user. The default value isfalse
.
This function performs minimization of atoms in the nodeIndexer
using the Universal Force Field (UFF) and the Interactive modeling state updater. Note that for this function to work the user needs to have these two SAMSON Extensions installed. For UFF to properly determine the bond order, the system shouldn't have missing hydrogen atoms. Note that the minimization is also applied to all atoms connected to atoms in the nodeIndexer
.
The following parameters are used as the stopping criteria: maximumNumberOfSteps
, minimumNumberOfStepsInPlateau
, energyDifferenceCriteria
.
For example, to minimize the whole system:
SBNodeIndexer nodeIndexer;
SAMSON::getNodes(nodeIndexer, SBNode::Atom);
SAMSON::minimize(nodeIndexer, 1000, 25, SBQuantity::kJPerMol(0.5), 100, 100);
function openPreferences [1/2]#
Opens the Preferences at the given page pageName
.
Parameters:
pageName
The name of the page at which it should open the Preferences. If it is empty then it will just open the Preferences. If there are multiple pages with the same name, then provide it as a path with '>' as a separator in the following format: "Editors > Add".
Returns:
true
if found a page with pageName
Examples:
function openPreferences [2/2]#
Opens the Preferences at the page corresponding to the UUID uuid
of a class which settings are exposed in Preferences.
Parameters:
uuid
The UUID of an app, editor, or other class that has its settings exposed in Preferences. If theuuid
is not valid then it will just open the Preferences.
Returns:
true
if found a page with the given uuid
function printDataGraphState#
Prints the data graph state.
function printFullMemoryUsage#
Prints full memory usage.
function printMemoryUsage#
Prints memory usage.
function printRendererState#
Prints the renderer state.
function printUndoStack#
Prints the undo stack.
function redo#
Redo one command.
function registerAction#
Registers a new action visible for all users.
function registerCursor [1/2]#
Register the cursor based on the given name name
, the given element uuiduuid
, the given descriptiondescription
, the given filePathfilePath
.
static bool SAMSON::registerCursor (
const QString & name,
const SBUUID & uuid,
const QString & filePath,
const QString & description=QString()
)
function registerCursor [2/2]#
Register the cursor based on the given name name
, the given element uuiduuid
, the given descriptiondescription
, the given iconicon
.
static bool SAMSON::registerCursor (
const QString & name,
const SBUUID & uuid,
const QCursor & icon,
const QString & description=QString()
)
function registerIcon [1/2]#
Register the icon based on the given name name
, the given element uuiduuid
, the given descriptiondescription
, the given filePathfilePath
.
static bool SAMSON::registerIcon (
const QString & name,
const SBUUID & uuid,
const QString & filePath,
const QString & description=QString()
)
function registerIcon [2/2]#
Register the icon based on the given name name
, the given element uuiduuid
, the given descriptiondescription
, the given iconicon
.
static bool SAMSON::registerIcon (
const QString & name,
const SBUUID & uuid,
const QIcon & icon,
const QString & description=QString()
)
function registerPixmap [1/2]#
Register the pixmap based on the given name name
, the given element uuiduuid
, the given descriptiondescription
, the given filePathfilePath
.
static bool SAMSON::registerPixmap (
const QString & name,
const SBUUID & uuid,
const QString & filePath,
const QString & description=QString()
)
function registerPixmap [2/2]#
Register the pixmap based on the given name name
, the given element uuiduuid
, the given descriptiondescription
, the given pixmappixmap
.
static bool SAMSON::registerPixmap (
const QString & name,
const SBUUID & uuid,
const QPixmap & pixmap,
const QString & description=QString()
)
function removeDialog [1/2]#
Removes a SAMSON dialog from the user interface.
function removeDialog [2/2]#
Removes a Qt dialog from the user interface.
function removeDocument#
Removes a document from the list of opendocuments .
function removeFromSelection#
Removes nodes from the active document to the selection based on a selectionString
.
This function removes 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:
Removes 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 removeWidget [1/2]#
Removes a SAMSON widget from the user interface.
function removeWidget [2/2]#
Removes a Qt widget from the user interface.
function removeWindow#
Removes a window from the user interface.
function requestViewportFocus#
Requests a viewport focus.
function requestViewportUpdate#
Requests a viewport update.
This function allows SAMSON Extensions to request an update of the viewport.
This may be useful, for example, when an editor is displaying an interface (e.g. a rectangle selection editor draws a rectangle on top of the viewport), or temporary objects in the viewport (e.g. a carbon nanotube editor renders a transparent nanotube while the user is choosing its endpoints and radius). Requesting a viewport update ensures that SAMSON will call the appropriate display functions of the editor even when the camera is not moving and no other SAMSON Extension is requesting a viewport update.
function runPythonCode#
Executes Python code codeString
in the Python Console. IfraisePythonConsole
istrue
then it raises the Python Console.
function runPythonFile#
Executes Python script file fileName
in the Python Console. IfraisePythonConsole
istrue
then it raises the Python Console.
function select#
Selects nodes from the active document based on a selectionString
.
This function selects 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:
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").See also: NSL
function setActiveDocument#
Sets the active document .
function setActiveDocumentFilter#
Sets the node filter of the active document.
function setActiveEditor [1/2]#
Sets the current editor.
function setActiveEditor [2/2]#
Sets the current editor.
function setActiveSelectionFilterByName#
Sets the active selection filter according to the given name selectionFilterName
. Returns true in case of the success.
This function sets the active selection filter according to the given name selectionFilterName
.
It is purely based on the name of the selection filter which can be seen in the selection filter itself. Returns true in case of the success and false if it couldn't find a selection filter with such name. The selection filter governs the selection level in the Viewport done by the default select editor.
function setActiveStructuralModel#
Sets the active structural model.
function setBusy#
Notifies the user that SAMSON is busy.
function setCustomViewport#
Replaces the viewport with a custom widget. When widget
is equal to 0, the normal viewport is restored.
function setHeadsetParameters#
Sets the panel size of the headset.
static bool SAMSON::setHeadsetParameters (
int panelWidth,
int panelHeight,
unsigned int leftFrameBuffer,
unsigned int rightFrameBuffer
)
Parameters:
panelWidth
The width of a panel (for one eye)panelHeight
The height of a panel (for one eye)leftFrameBuffer
The index of the external frame buffer for the left eyerightFrameBuffer
The index of the external frame buffer for the right eyeleftFrameBuffer
andrightFrameBuffer
are the indices of the OpenGL frame buffers in which SAMSON will render the document using its own renderer. This should be called after SAMSON::createHeadsetViewport.
function setMinimizationFlag#
Sets the interactive Minimization flag.
This function sets the interactive minimization flag.
Set the flag to true
to start interactive minimization. When interactive minimization is started, all active simulators in the active document periodically perform a time step.
See also: startMinimization, stopMinimization, toggleMinimization, getMinimizationFlag
function setPreference#
Sets the value of preference preferenceName
for the class with UUIDclassUUID
tovalue
.
static void SAMSON::setPreference (
const SBCContainerUUID & classUUID,
const std::string & preferenceName,
const SBValue & value,
const SBValue & size=0
)
function setProgressBarValue#
Sets the value of the progress bar.
This function sets the current progress bar value to value
.
Since the update of the progress bar requires processing of Qt events this function updates the progress bar no more frequently than once per second in order to maintain performance. So, even if this function is invoked e.g. each 1ms, the value will be updated only each second to reduce the number of calls to process events.
See also: showProgressBar, isProgressBarStopped, setProgressBarValue, hideProgressBar
function setSimulationFlag#
Sets the interactive simulation flag.
This function sets the interactive simulation flag.
Set the flag to true
to start interactive simulation. When interactive simulation is started, all active simulators in the active document periodically perform a time step.
See also: startSimulation, stopSimulation, toggleSimulation, getSimulationFlag
function setStatusMessage#
Shows a message in the status bar.
function setViewportCursor [1/2]#
Sets the viewport cursor.
function setViewportCursor [2/2]#
Sets the viewport cursor.
function setup#
function showContextMenu#
Shows the context menu.
Shows the context menu at a given position
. The highlightedNode
pointer can be used to show context actions about a specific node.
function showProgressBar#
Shows the progress bar.
static void SAMSON::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"
)
This function shows a progress bar with the given name name
going from the minimum
value to the maximum
value for at least the minimumDuration
of seconds.
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
function showProperties#
Shows the properties widget of a node.
function showTip [1/3]#
Shows a tip window with a title tipTitle
and texttipText
at the positionrelativePosition
relative to a widgetwidget
.
static void SAMSON::showTip (
const SBUUID & tipUUID,
const QString & tipCategory,
const QString & tipTitle,
const QString & tipText,
QWidget * widget=nullptr,
const QPoint & relativePosition=QPoint(),
bool showArrow=false
)
This static function shows a tip window with a title tipTitle
and text tipText
at the position relativePosition
relative to a widget widget
.
If a widget widget
is not provided, the tip window will appear in the top-right corner of the viewport.
The tip's UUID tipUUID
is used internally to store tip's info e.g. whether the tip was shown or not.
The category string tipCategory
is used internally - please, provide the name of your Element.
You can create a tip with just a text as follows:
SAMSON::showTip(SBUUID("A22BD30D-64A0-3B28-A9AD-7F7A3663115A"), getName(), "Tip", "Information text");
You can also use rich text (with html) in a tip:
SAMSON::showTip(SBUUID("004CEE25-78B1-2D61-7EE9-3C7B39105029"), getName(), "Tip", "<html><head/><body><p>To learn more how to use SAMSON visit <a href=\"https://documentation.samson-connect.net/\" style=\"color:#9cbfe2\">Documentation Center</a>.</p></body></html>", QPixmap());
You can show a tip window at an arbitrary position relativePosition
relative to a widget widget
. You can provide both positive and negative coordinates in the relative position. The positive coordinates start from the widget's top-left corner, the negative coordinates start from the widget's bottom-right corner. The relative position is a position of the top-left corner of the tip window.
In the following code example, the tip window is placed around the top-right corner of a widget widget:
with a shift equal to -10 in the x-direction to the left from the widget's right side, and a shift of 10 in the y-direction to the bottom from the widget's top side.
SAMSON::showTip(SBUUID("99CF88F8-3692-6F47-4788-2DF502BDFEC7"), getName(), "Tip", "This tip is placed in the vicinity of the widget's top-right corner", widget, QPoint(-10, 10));
To show an arrow in the tip's corner (the corner is detected based on the relative position) set the showArrow
to true
.
function showTip [2/3]#
Shows a tip window with a title tipTitle
, texttipText
, and imagetipPixmap
at the positionrelativePosition
relative to a widgetwidget
.
static void SAMSON::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
)
This static function shows a tip window with a title tipTitle
, text tipText
, and image tipPixmap
at the position relativePosition
relative to a widget widget
.
This function is an extension of the SAMSON::showTip function described above and it allows you to provide an image in a tipPixmap
. The image will appear above of the text. Note that it will be scaled to fit the tip window.
QPixmap tipPixmap(QString::fromStdString(SB_ELEMENT_PATH + "/Resource/tip-1.png"));
SAMSON::showTip(SBUUID("36A92A5A-8049-BDB3-0DD4-755ED7F41E00"), getName(), "Tip", "Information text", tipPixmap);
function showTip [3/3]#
Shows a tip window with a title tipTitle
, texttipText
, and gif-movietipMovie
at the positionrelativePosition
relative to a widgetwidget
.
static void SAMSON::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
)
This static function shows a tip window with a title tipTitle
, text tipText
, and gif-movie tipMovie
at the position relativePosition
relative to a widget widget
.
This function is an extension of the SAMSON::showTip function described above and it allows you to provide a gif movie path in a tipMovie
. The movie will appear above of the text. Note that the movie will be scaled to fit the tip window.
QString tipMoviePath(QString::fromStdString(SB_ELEMENT_PATH + "/Resource/tip-movie-1.gif"));
SAMSON::showTip(SBUUID("186F89EE-75A7-119F-94BC-8CD449925DE2"), getName(), "Tip", "Information text", tipMoviePath);
function signalPathTracingCompleted#
Signals a path tracing completion.
function signalPathTracingStarted#
Signals a path tracing start.
function signalPathTracingUpdated#
Signals a path tracing update.
function snap [1/7]#
Returns the snapped mouse viewport displacement ( x
,y
)
Parameters:
x
The x-coordinate of the mousey
The y-coordinate of the mouse
This function returns the snapped mouse viewport displacement (x
,y
)
function snap [2/7]#
Returns the snapped mouse viewport displacement ( x
,y
) in the plane containingpointInPlane
.
Parameters:
x
The x-coordinate of the mousey
The y-coordinate of the mousepointInPlane
The point in the plane
This function returns the snapped mouse viewport displacement (x
,y
) in the plane containing pointInPlane
function snap [3/7]#
Returns the snapped displacement if the snapping of translational displacements is on, else it returns the unchanged displacement
.
Parameters:
displacement
The translational displacement
This function returns the snapped displacement if the snapping of translational displacements is on, else it returns the unchanged displacement
.
function snap [4/7]#
Returns the snapped displacement if the snapping of angular displacements is on, else it returns the unchanged displacement
.
Parameters:
displacement
The angular displacement in degrees
This function returns the snapped displacement if the snapping of angular displacements is on, else it returns the unchanged displacement
.
function snap [5/7]#
Returns the snapped displacement if the snapping of translational displacements is on, else it returns the unchanged displacement
.
Parameters:
displacement
The 3D translational displacement
This function returns the snapped displacement if the snapping of translational displacements is on, else it returns the unchanged displacement
.
function snap [6/7]#
Returns the snapped rotation matrix if the snapping of angular displacements is on, else it returns the unchanged rotationMatrix
.
Parameters:
rotationMatrix
The rotation matrix
This function returns the snapped rotation matrix if the snapping of angular displacements is on, else it returns the unchanged rotation
matrix.
function snap [7/7]#
Returns the snapped spatial transform according to the translational and angular snapping parameters.
Parameters:
transform
The spatial transform
This function returns the snapped spatial transform according to the translational and angular snapping parameters.
function startMinimization#
Starts interactive Minimization.
This function starts interactive minimization.
When interactive minimization is started, all active simulators in the active document periodically perform a time step. Calling this function is equivalent to:
See also: stopMinimization, toggleMinimization, getMinimizationFlag, setMinimizationFlag
function startSimulation#
Starts interactive simulation.
This function starts interactive simulation.
When interactive simulation is started, all active simulators in the active document periodically perform a time step. Calling this function is equivalent to:
See also: stopSimulation, toggleSimulation, getSimulationFlag, setSimulationFlag
function startTimer#
Starts a new performance timer.
function stopMinimization#
Stops interactive Minimization.
This function stops interactive minimization.
When interactive minimization is started, all active simulators in the active document periodically perform a time step. Calling this function is equivalent to:
See also: startMinimization, toggleMinimization, getMinimizationFlag, setMinimizationFlag
function stopSimulation#
Stops interactive simulation.
This function stops interactive simulation.
When interactive simulation is started, all active simulators in the active document periodically perform a time step. Calling this function is equivalent to:
See also: startSimulation, toggleSimulation, getSimulationFlag, setSimulationFlag
function stopTimer [1/2]#
Stops the top performance timer.
function stopTimer [2/2]#
Stops the top performance timer.
function toggleMinimization#
Toggles interactive Minimization on and off.
This function toggles interactive minimization on and off.
When interactive minimization is started, all active simulators in the active document periodically perform a time step.
See also: startMinimization, stopMinimization, getMinimizationFlag, setMinimizationFlag
function toggleSimulation#
Toggles interactive simulation on and off.
This function toggles interactive simulation on and off.
When interactive simulation is started, all active simulators in the active document periodically perform a time step.
See also: startSimulation, stopSimulation, getSimulationFlag, setSimulationFlag
function undo#
Undo one command.
function unsetViewportCursor#
Unsets the viewport cursor.
function updateHeadsetViewport#
Updates the headset viewport.