Tulip  5.6.2
Large graphs analysis and drawing
tlp::GlMainView Class Reference

#include <GlMainView.h>

+ Inheritance diagram for tlp::GlMainView:
+ Collaboration diagram for tlp::GlMainView:

Public Types


Public Slots

void applySettings () override
void centerView (bool graphChanged=false) override
void draw () override
virtual void drawOverview (bool generatePixmap=true)
static bool getNodeOrEdgeAtViewportPos (GlMainWidget *glw, int x, int y, node &n, edge &e)
bool getNodeOrEdgeAtViewportPos (int x, int y, node &n, edge &e) const override
QImage getRGBImage () const
void redraw ()
void refresh () override
void setOverviewVisible (bool)
void setQuickAccessBarVisible (bool)
void setViewOrtho (bool)
void undoCallback () override
- Public Slots inherited from tlp::ViewWidget
void draw () override
void setupUi () override
- Public Slots inherited from tlp::View
void addRedrawTrigger (tlp::Observable *)
virtual void applySettings ()
virtual void centerView (bool graphChanged=false)
virtual bool checkOnClose ()
void clearRedrawTriggers ()
virtual void draw ()=0
void emitDrawNeededSignal ()
virtual bool getNodeOrEdgeAtViewportPos (int, int, node &, edge &) const
virtual void refresh ()
void removeRedrawTrigger (tlp::Observable *)
void setCurrentInteractor (tlp::Interactor *currentInteractor)
void setGraph (tlp::Graph *graph)
virtual void setInteractors (const QList< tlp::Interactor * > &)
virtual void setupUi ()=0
void treatEvent (const Event &) override
virtual void undoCallback ()

Public Member Functions

 GlMainView (bool needTooltipAndUrlManager=false)
QList< QWidget * > configurationWidgets () const override
tlp::GlMainWidgetgetGlMainWidget () const
OverviewPosition overviewPosition () const
bool overviewVisible () const
bool pickNodeEdge (const int x, const int y, tlp::node &n, tlp::edge &e, bool pickNode=true, bool pickEdge=true)
bool quickAccessBarVisible () const
void rotateCamera (int x, int y, int z)
void setOverviewPosition (const OverviewPosition &position)
void setState (const tlp::DataSet &) override
void setUpdateOverview (bool updateOverview)
QPixmap snapshot (const QSize &outputSize=QSize()) const override
tlp::DataSet state () const override
void translateCamera (int x, int y, int z)
bool updateOverview () const
Coord viewToWorld (const Coord &vpos) const
Coord worldToView (const Coord &wpos) const
void zoom (int step)
void zoomAndPanAnimation (const tlp::BoundingBox &boundingBox, const double duration=1000.)
void zoomFactor (float factor)
void zoomXY (int step, const int x, const int y)
- Public Member Functions inherited from tlp::ViewWidget
QGraphicsView * graphicsView () const override
virtual void graphicsViewResized (int, int)
- Public Member Functions inherited from tlp::View
 View ()
 ~View () override
std::string category () const override
tlp::InteractorcurrentInteractor () const
tlp::Graphgraph () const
std::string icon () const override
const QList< Interactor * > & interactors () const
virtual bool interactorsEnabled () const
virtual bool rebuildSceneOnShowEvent ()
virtual void resetGraphicsScene ()
void setShowContextMenu (bool show)
bool showContextMenu (const QPoint &point, const QPointF &scenePoint)
void treatEvents (const std::vector< Event > &events) override
QSet< tlp::Observable * > triggers () const
- Public Member Functions inherited from tlp::Plugin
virtual std::string author () const =0
virtual std::string date () const =0
void declareDeprecatedName (const std::string &oldName)
std::string deprecatedName ()
virtual std::string group () const =0
virtual int id () const
virtual std::string info () const =0
virtual std::string major () const
virtual std::string minor () const
virtual std::string name () const =0
virtual std::string programmingLanguage () const
virtual std::string release () const =0
virtual std::string tulipMajor () const
virtual std::string tulipMinor () const
virtual std::string tulipRelease () const =0
- Public Member Functions inherited from tlp::Observable
void addListener (Observable &listener) const
void addListener (Observable *const listener) const
void addObserver (Observable &observer) const
void addObserver (Observable *const observer) const
unsigned int countListeners () const
unsigned int countObservers () const
unsigned int getReceived () const
unsigned int getSent () const
void removeListener (Observable &listener) const
void removeListener (Observable *const listener) const
void removeObserver (Observable &observer) const
void removeObserver (Observable *const observer) const

Protected Slots

void fillContextMenu (QMenu *menu, const QPointF &) override
virtual void glMainViewDrawn (bool graphChanged)
virtual void sceneRectChanged (const QRectF &)
- Protected Slots inherited from tlp::ViewWidget
void currentInteractorChanged (tlp::Interactor *) override
void graphDeleted (Graph *parentGraph) override
- Protected Slots inherited from tlp::View
void activateTooltipAndUrlManager (QWidget *)
virtual void currentInteractorChanged (tlp::Interactor *)
virtual void fillContextMenu (QMenu *, const QPointF &)
void fillContextMenu (QMenu *menu, edge e)
void fillContextMenu (QMenu *menu, node n)
virtual void graphChanged (tlp::Graph *)=0
virtual void graphDeleted (tlp::Graph *parentGraph)=0
virtual void interactorsInstalled (const QList< tlp::Interactor * > &interactors)
void toggleInteractors (const bool activate, const std::unordered_set< const char * > &exceptions)

Protected Member Functions

void assignNewGlMainWidget (GlMainWidget *glMainWidget, bool deleteOldGlMainWidget=true)
bool eventFilter (QObject *obj, QEvent *event) override
virtual QuickAccessBar * getQuickAccessBarImpl ()
tlp::GlOverviewGraphicsItem * overviewItem () const
void setupWidget () override
void updateShowOverviewButton ()
void updateShowQuickAccessBarButton ()
- Protected Member Functions inherited from tlp::ViewWidget
void addToScene (QGraphicsItem *item)
QGraphicsItem * centralItem () const override
void removeFromScene (QGraphicsItem *item)
void setCentralWidget (QWidget *, bool deleteOldCentralWidget=true)
QPixmap snapshot (const QSize &outputSize=QSize()) const override
- Protected Member Functions inherited from tlp::View
DataSet getState (Graph *graph)
void saveState ()
- Protected Member Functions inherited from tlp::Observable
 Observable (const Observable &)
bool hasOnlookers () const
void observableDeleted ()
Observableoperator= (const Observable &)
void sendEvent (const Event &message)
virtual void treatEvent (const Event &message)

Protected Attributes

bool _needTooltipAndUrlManager
OverviewPosition _overviewPosition
tlp::QuickAccessBar * _quickAccessBar
QGraphicsProxyWidget * _quickAccessBarItem
tlp::SceneConfigWidget * _sceneConfigurationWidget
tlp::SceneLayersConfigWidget * _sceneLayersConfigurationWidget
bool _updateOverview
bool needQuickAccessBar
- Protected Attributes inherited from tlp::Plugin
std::string oldName

Additional Inherited Members

- Signals inherited from tlp::View
void drawNeeded ()
void graphSet (tlp::Graph *)
void interactorsChanged ()
- Static Public Member Functions inherited from tlp::Observable
static void disableEventNotification ()
static void enableEventNotification ()
static tlp::node getNode (const tlp::Observable *obs)
static ObservablegetObject (tlp::node n)
static const tlp::VectorGraph & getObservableGraph ()
static unsigned int getScheduled (tlp::node n)
static void holdObservers ()
static bool isAlive (tlp::node n)
static unsigned int observersHoldCounter ()
static void unholdObservers ()

Detailed Description

An abstract view that displays a GlMainWidget as its central widget.

The GlMainView subclasses ViewWidget and always uses a GlMainWidget as the central widget of the panel. It also adds the following features: @list

  • An overview of the scene that can be toggled on or off.
  • Some configuration widgets that modify the rendering parameters.
  • A quick access bar widget that allows the user to quickly modify some of the most used rendering parameters and graph properties (nodes color, edges display, etc)
  • The possibility to make snapshots of the current scene @endlist

Subclassing GlMainView means you will only want to display graphs in a single GlMainWidget. Switching the central widget can only be achieved from the ViewWidget class.

It is strongly unadvised to re-implement methods already implemented into tlp::View or tlp::ViewWidget. If you have to add custom behavior to those method, make sure to call the upper-class methods first:
void MyView::setupWidget() { // Where MyView is a subclass of tlp::GlMainView
GlMainView::setupWidget(); // call this first
// insert custom behavior here
See also

Definition at line 68 of file GlMainView.h.

Member Function Documentation

◆ applySettings

void tlp::GlMainView::applySettings ( )

Force the settings set in the configuration widgets to be re-applied.

◆ centerView

void tlp::GlMainView::centerView ( bool  graphChanged = false)

Centers the scene's camera.

◆ configurationWidgets()

QList<QWidget *> tlp::GlMainView::configurationWidgets ( ) const
a list of widgets that can be used to set up the view. Since several widgets can be retrieved, user will be able to select them from a combo box where each widget will be identified by its windowsTitle.
See also
This method must not instantiate configuration widgets on the fly.

Reimplemented from tlp::View.

◆ draw

void tlp::GlMainView::draw ( )

◆ drawOverview

virtual void tlp::GlMainView::drawOverview ( bool  generatePixmap = true)

Force the overview to be redrawn. Since GlMainView already detects graph's modifications, this method should not be called manually to avoid extra rendering.

◆ getRGBImage

QImage tlp::GlMainView::getRGBImage ( ) const

Return the glMainWidget current display in the RGB888 format.

◆ pickNodeEdge()

bool tlp::GlMainView::pickNodeEdge ( const int  x,
const int  y,
tlp::node n,
tlp::edge e,
bool  pickNode = true,
bool  pickEdge = true 

Pick a node or an edge at a view position First take a look at a node located at (x,y); if none is found, take a look at an edge.

xthe x coordinate of the position
ythe y coordinate of the position
non return holds the node found under the (x,y) position, n.isValid() return false if none has been found
eon return holds the edge found under the (x,y) position, e.isValid() return false if none has been found
pickNodeenable or disable the node picking
pickEdgeenable or disable the edge picking
true if something has been found, false otherwise

◆ redraw

void tlp::GlMainView::redraw ( )

◆ refresh

void tlp::GlMainView::refresh ( )

◆ rotateCamera()

void tlp::GlMainView::rotateCamera ( int  x,
int  y,
int  z 

Rotate the view camera by (x,y,z)

xrotation around the X axis in degree
yrotation around the Y axis in degree
zrotation around Z axis in degree

Definition at line 131 of file GlMainView.h.

+ Here is the call graph for this function:

◆ setOverviewVisible

void tlp::GlMainView::setOverviewVisible ( bool  )

Toggles the overview on or off.

◆ setQuickAccessBarVisible

void tlp::GlMainView::setQuickAccessBarVisible ( bool  )

allows to control the quick access bar visibility

◆ setState()

void tlp::GlMainView::setState ( const tlp::DataSet )

Restores the state of the view. DataSet passed down to this method can come from a previous backup or be generated by the overlaying system. It's up to the view to use this data or not.

Reimplemented from tlp::View.

◆ setupWidget()

void tlp::GlMainView::setupWidget ( )

Sets up the central widget. This is similar to View::setupUi in the sense that the purpose of setupWidget is to construct the GUI element.

This method MUST call the setCentralWidget to provide the ViewWidget with a valid widget.

Implements tlp::ViewWidget.

◆ setViewOrtho

void tlp::GlMainView::setViewOrtho ( bool  )

Toggles the orthogonal projection on or off, then draws.

◆ snapshot()

QPixmap tlp::GlMainView::snapshot ( const QSize &  outputSize = QSize()) const

Takes a snapshot of the view's screen and saves it into the given pixmap. The snapshot is scaled to outputSize. If a null size is given, the snapshot is to be on a 1:1 ratio.

A non-null pixmap of the snapshot was correctly taken.

Implements tlp::View.

◆ state()

tlp::DataSet tlp::GlMainView::state ( ) const

Backup the state of the view. This method is used to restore the View's parameters when it's re-opened.

Reimplemented from tlp::View.

◆ translateCamera()

void tlp::GlMainView::translateCamera ( int  x,
int  y,
int  z 

Translate the view camera by (x,y,z)

xoffset along the X axis
yoffset along the Y axis
zoffset along the Z axis

Definition at line 141 of file GlMainView.h.

+ Here is the call graph for this function:

◆ viewToWorld()

Coord tlp::GlMainView::viewToWorld ( const Coord &  vpos) const

Return the 3D world position for the given view position.

Definition at line 148 of file GlMainView.h.

+ Here is the call graph for this function:

◆ worldToView()

Coord tlp::GlMainView::worldToView ( const Coord &  wpos) const

Return the view position for the given 3D position.

Definition at line 155 of file GlMainView.h.

+ Here is the call graph for this function:

◆ zoom()

void tlp::GlMainView::zoom ( int  step)

Zoom by step.

stepof zoom

Definition at line 171 of file GlMainView.h.

+ Here is the call graph for this function:

◆ zoomAndPanAnimation()

void tlp::GlMainView::zoomAndPanAnimation ( const tlp::BoundingBox boundingBox,
const double  duration = 1000. 

Do a zoom and pan animation.

boundingBoxthe bounding box in scene coordinates on which the view has to be zoomed and panned. If it is not valid, the scene bounding box will be used. At the end of the animation, the view will be zoomed and centered on the content of that bounding box.
durationthe animation duration in msecs

◆ zoomFactor()

void tlp::GlMainView::zoomFactor ( float  factor)

Zoom by factor.

factorof zoom

Definition at line 179 of file GlMainView.h.

+ Here is the call graph for this function:

◆ zoomXY()

void tlp::GlMainView::zoomXY ( int  step,
const int  x,
const int  y 

Zoom by step to the given (x,y) view position.

stepof zoom

Definition at line 163 of file GlMainView.h.

+ Here is the call graph for this function:
void setupWidget() override
Sets up the central widget. This is similar to View::setupUi in the sense that the purpose of setupWi...