47 #ifndef _MIRA_VISUALIZATIONVIEW_H_ 48 #define _MIRA_VISUALIZATIONVIEW_H_ 50 #include <QBasicTimer> 54 #include <serialization/adapters/std/list> 55 #include <serialization/adapters/Qt/QAction> 62 class QDragEnterEvent;
75 class VisualizationTool;
76 class VisualizationControlPage;
96 template <
typename Reflector>
100 r.member(
"Visualizations", mVisualizations,
"The assigned visualizations");
105 "Update interval in ms",
108 r.property(
"WindowTitle",
109 getter(&VisualizationView::getWindowTitle,
this),
110 setter(&VisualizationView::setWindowTitle,
this),
114 r.member(
"HideTools",
115 getter<bool>(boost::bind(actionGetter, mHideToolBar)),
116 setter<bool>(boost::bind(actionSetter, mHideToolBar, _1)),
117 "Hide tool bar with tools",
false);
119 r.property(
"Tools", mTools,
"The used tools");
167 const std::vector<VisualizationTool*>&
getTools()
const;
242 mOfferAuxiliaryVisualizations = on;
269 void setToolbarArea(Qt::ToolBarArea area);
270 void addToolButton(
VisualizationTool* tool,
const QString& name,
const QString& category,
const QString& description);
281 void setWindowTitle( std::string
const& title );
282 std::string getWindowTitle()
const;
287 void onHideToolbar(
bool);
290 VisualizationControlPage* mControl;
291 std::list<Visualization*> mVisualizations;
293 std::vector<VisualizationTool*> mTools;
297 std::map<QString, VisualizationTool*> mIdToTool;
300 std::map<QString, VisualizationTool*> mCurrentTool;
303 std::map<QString, QToolButton*> mCategoryToToolButton;
306 VisualizationTool* mActiveTool;
309 VisualizationTool* mDisplacedTool;
312 QButtonGroup* mButtonGroup;
315 QBasicTimer mUpdateTimer;
317 Time mLastUpdateTime;
321 QAction* mHideToolBar;
322 QWidget* mVisualizationPart;
323 Qt::ToolBarArea mCurrentToolboxArea;
325 const QString DEFAULT_CATEGORY;
327 bool mOfferAuxiliaryVisualizations;
349 template <
typename Reflector>
353 r.property(
"Fixed Frame",
mFixedFrame,
"The reference frame used to denote the world frame. Should not be moving (e.g. map frame, etc.)",
"");
356 "The frame where all other frames are transformed to for displaying the data",
TransformProperty());
374 std::string mLastAskedFixedFrame;
375 std::string mLastAskedCameraFrame;
376 QTimer* mFrameCheckTimer;
virtual const Class & supportedVisualizationClass() const =0
Derived visualization views must return the base class of their supported visualizations.
void setOfferAuxiliaryVisualizations(bool on)
Definition: VisualizationView.h:241
void focusOutEvent(QFocusEvent *event)
static Class & null()
Returns the only single existing instance of a NullClass.
virtual QWidget * createVisualizationPart()=0
Provide marker class for marking an invalid "null" class.
virtual void addVisualization(Visualization *vis)
Adds an existing visualization to this view.
void activateTool(VisualizationTool *tool)
virtual ~VisualizationView()
Definition: XMLSerializer.h:122
specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
Definition: IOService.h:67
Abstract base class for all derived visualizations, namely Visualization3D and Visualization2D.
Definition: Visualization.h:88
std::list< ClassProxy > getVisualizationsFor(const std::string &channelID)
An editor is typically used to edit or browse data or objects.
Definition: EditorPart.h:69
virtual void saveContentToFile()
VisualizationTool * getActiveTool()
Returns the current active tool, or NULL of no tool is active.
Definition: VisualizationView.h:236
#define MIRA_REFLECT_BASE(reflector, BaseClass)
Macro that can be used to reflect the base class easily.
Definition: ReflectorInterface.h:912
Time and Duration wrapper class.
Class object which supports some kind of class reflection.
Definition: Class.h:97
Setter< T > setter(void(*f)(const T &))
Creates a Setter for global or static class methods taking the argument by const reference.
Definition: GetterSetter.h:443
bool eventFilter(QObject *obj, QEvent *event)
virtual void moveUpVisualization(Visualization *vis)
Change order of visualizations in the view, move the specified visualization up.
void destroyVisualizations()
std::map< std::string, std::string > const & getMetaInfo() const
Return map with meta information.
#define MIRA_ABSTRACT_OBJECT(classIdentifier)
Use this MACRO instead of MIRA_OBJECT to declare the class as abstract.
Definition: FactoryMacros.h:235
Abstract base class for 2D, 3D, text and plot visualization views (namely Visualization2DView and Vis...
Definition: VisualizationView.h:83
void reflect(Reflector &r)
Definition: VisualizationView.h:97
VisualizationControlPage * getControl()
Returns pointer to VisualizationControlPage (or NULL, if no such page was created yet...
void keyPressEvent(QKeyEvent *event)
virtual void addTool(VisualizationTool *tool)
Adds an existing tool to this view.
void dropEventImpl(QDropEvent *event, QWidget *widget)
void dragEnterEventImpl(QDragEnterEvent *event)
Use this class to represent time durations.
Definition: Time.h:106
The object class acts as a generic base class for classes which should be used with the classFactory...
Definition: Object.h:144
virtual const Class & defaultVisualizationClass() const
If a default visualization class is provided, this class is used to instantiate a default visualizati...
Definition: VisualizationView.h:196
Getter< T > getter(T(*f)())
Creates a Getter for global or static class methods returning the result by value.
Definition: GetterSetter.h:136
void setUpdateInterval(int interval)
const std::vector< VisualizationTool * > & getTools() const
VisualizationControl page.
Definition: VisualizationControlPage.h:81
void keyReleaseEvent(QKeyEvent *event)
virtual void update(Duration dt)=0
Is called by this class within the update timer event to update the view.
Class const & getClass() const
call the virtual internalGetClass().
Definition: Object.h:159
const std::list< Visualization * > & getVisualizations() const
virtual void moveDownVisualization(Visualization *vis)
Change order of visualizations in the view, move the specified visualization down.
virtual void timerEvent(QTimerEvent *)
virtual Object * getAdapter(const Class &adapter)
Returns an object which is an instance of the given class associated with this object.
std::string getChannelIDFromMimeData(const QMimeData *mimeData)
virtual QWidget * createPartControl()
Must be overloaded in subclasses to create the actual widget for this EditorPart. ...
virtual const Class & supportedVisualizationToolClass() const
Derived visualization views may return the base class of their supported tools.
Definition: VisualizationView.h:205
Declaration of the EditorPart class.
virtual void removeVisualization(Visualization *vis)
Remove the specified visualization from this view.
Deserializer for serializing objects from XML format.
Definition: XMLSerializer.h:314