OpenWalnut  1.5.0dev
WTransferFunctionScene.h
1 //---------------------------------------------------------------------------
2 //
3 // Project: OpenWalnut ( http://www.openwalnut.org )
4 //
5 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6 // For more information see http://www.openwalnut.org/copying
7 //
8 // This file is part of OpenWalnut.
9 //
10 // OpenWalnut is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // OpenWalnut is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public License
21 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22 //
23 //---------------------------------------------------------------------------
24 
25 #ifndef WTRANSFERFUNCTIONSCENE_H
26 #define WTRANSFERFUNCTIONSCENE_H
27 
28 #include "QGraphicsScene"
29 
31 
32 /**
33  * The scene for our visualization of the transfer function.
34  * It differs from the QT implementation because it overloads
35  * the Drag&drop methods to allow users to drop colors onto
36  * the graph, which adds new nodes in the color representation.
37  *
38  * This has to be done here according to the QT documentation
39  * as we cannot drop something in a location where no object
40  * exists.
41  */
43 {
44 public:
45  /** type of base class for cleaner programming */
47 
48  /**
49  * Default constructor.
50  *
51  * \param parent the parent QObject, typically the QWidget
52  */
53  explicit WTransferFunctionScene( QObject*parent =0 );
54 
55  /**
56  * Default destructor
57  */
58  virtual ~WTransferFunctionScene();
59 
60 protected:
61  /**
62  * Checks whether the drag is inside the main rectangle of the scene
63  * and whether the dragged object is of type QColor or similar.
64  *
65  * \param event the event to handle
66  */
67  virtual void dragMoveEvent( QGraphicsSceneDragDropEvent* event );
68 
69  /**
70  * Allows drop of QColor-alike objects and creates new color control points
71  * in the scene.
72  *
73  * \param event the event to handle
74  */
75  virtual void dropEvent( QGraphicsSceneDragDropEvent* event );
76 
77 private:
78  /** storage of the widget as this currently manages the data */
80 };
81 
82 #endif // WTRANSFERFUNCTIONSCENE_H
83 
The scene for our visualization of the transfer function.
virtual ~WTransferFunctionScene()
Default destructor.
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event)
Checks whether the drag is inside the main rectangle of the scene and whether the dragged object is o...
virtual void dropEvent(QGraphicsSceneDragDropEvent *event)
Allows drop of QColor-alike objects and creates new color control points in the scene.
WTransferFunctionScene(QObject *parent=0)
Default constructor.
WTransferFunctionWidget * myparent
storage of the widget as this currently manages the data
QGraphicsScene BaseClass
type of base class for cleaner programming
A widget that holds a scene to display and modify the transfer function.