Tulip 5.7.1
Large graphs analysis and drawing
Loading...
Searching...
No Matches
GLInteractor.h
1/*
2 *
3 * This file is part of Tulip (https://tulip.labri.fr)
4 *
5 * Authors: David Auber and the Tulip development Team
6 * from LaBRI, University of Bordeaux
7 *
8 * Tulip is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation, either version 3
11 * of the License, or (at your option) any later version.
12 *
13 * Tulip is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 * See the GNU General Public License for more details.
17 *
18 */
19#ifndef GLINTERACTOR_H
20#define GLINTERACTOR_H
21
22#include <tulip/InteractorComposite.h>
23
24#include <QIcon>
25
26namespace tlp {
27
28class GlMainWidget;
29
30/**
31 * @brief The GLInteractorComponent class is an InteractorComponent that can do OpenGL rendering on
32 * a GlMainWidget.
33 *
34 * @warning Only GLInteractorComponent that are stored into a GLInteractorComposite will be able to
35 * do OpenGL rendering. Storing them into an InteractorComposite will have no effect.
36 *
37 * GLInteractorComponent are meant to be stored into a GLInteractorComposite
38 * When installed on a GlMainWidget, this interactor will have two new methods getting called:
39 * @list
40 * @li draw: Draws a visual feedback into the OpenGL scene. This is called after the scene was
41 * rendered
42 * @li compute: Allows the interactor to do some pre-initialisation steps before the OpenGL scene is
43 * rendered.
44 * @endlist
45 */
46class TLP_QT_SCOPE GLInteractorComponent : public tlp::InteractorComponent {
47 Q_OBJECT
48public slots:
49
50 /**
51 * @brief Draws an OpenGL visual feedback for the interactor into a given GlMainWidget.
52 * This method is called after the scene was rendered.
53 * @return true if the rendering completed successfully
54 */
55 virtual bool draw(tlp::GlMainWidget *) {
56 return false;
57 }
58
59 /**
60 * @brief Initializes the interactor before the scene in the given GlMainWidget is rendered
61 */
62 virtual bool compute(tlp::GlMainWidget *) {
63 return false;
64 }
65};
66
67/**
68 * @brief The GLInteractorComposite class behaves like a InteractorComposite but is meant to store
69 * GLInteractorComponent.
70 * @warning Only GLInteractorComponent that are stored into a GLInteractorComposite will be able to
71 * do OpenGL rendering. Storing them into an InteractorComposite will have no effect.
72 */
74 Q_OBJECT
75
76public:
77 GLInteractorComposite(const QIcon &icon, const QString &text = "");
78
79public slots:
80 /**
81 * @brief Calls the compute method on every sub-components
82 * @note You can subclass this method to add custom behavior before or after components are
83 * called.
84 */
85 virtual void compute(tlp::GlMainWidget *);
86
87 /**
88 * @brief Calls the draw method on every sub-components
89 * @note You can subclass this method to add custom behavior before or after components are
90 * called.
91 */
92 virtual void draw(tlp::GlMainWidget *);
93};
94} // namespace tlp
95
96#endif // GLINTERACTOR_H
The GLInteractorComponent class is an InteractorComponent that can do OpenGL rendering on a GlMainWid...
Definition: GLInteractor.h:46
virtual bool draw(tlp::GlMainWidget *)
Draws an OpenGL visual feedback for the interactor into a given GlMainWidget. This method is called a...
Definition: GLInteractor.h:55
virtual bool compute(tlp::GlMainWidget *)
Initializes the interactor before the scene in the given GlMainWidget is rendered.
Definition: GLInteractor.h:62
The GLInteractorComposite class behaves like a InteractorComposite but is meant to store GLInteractor...
Definition: GLInteractor.h:73
virtual void compute(tlp::GlMainWidget *)
Calls the compute method on every sub-components.
virtual void draw(tlp::GlMainWidget *)
Calls the draw method on every sub-components.
This widget provide a simple system to visualize data/graph with OpenGL 3D engine.
Definition: GlMainWidget.h:63