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