orca-robotics


INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

REPOSITORY
Interfaces
Components
Libraries
Utilities
Software Map

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard
Wiki
login/pass: orca/orca

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

pathplanner2delement.h

00001 /*
00002  * Orca-Robotics Project: Components for robotics 
00003  *               http://orca-robotics.sf.net/
00004  * Copyright (c) 2004-2008 Alex Brooks, Alexei Makarenko, Tobias Kaupp
00005  *
00006  * This copy of Orca is licensed to you under the terms described in
00007  * the LICENSE file included in this distribution.
00008  *
00009  */
00010 
00011 #ifndef PATHPLANNER2DELEMENT_H
00012 #define PATHPLANNER2DELEMENT_H
00013 
00014 #include <iostream>
00015 #include <orca/pathplanner2d.h>
00016 
00017 #include <gbxsickacfr/gbxiceutilacfr/store.h>
00018 #include <orcaqguielementutil/icestormelement2d.h>
00019 
00020 #include <orcaqgui2dfactory/pathpainter.h>
00021 #include <orcaqgui2dfactory/pathplanneruserinteraction.h>
00022 
00023 namespace orcaqgui2d {
00024 
00025 // There's two consumer objects: the first one for icestorm (pathplanner pushes out whatever it computed) which is part
00026 // of the base class IceStormElement2d.
00027 // The second one here is for answers to tasks which were set by the GUI.
00028 
00030 class PathPlannerTaskAnswerConsumer : public orca::PathPlanner2dConsumer
00031 {
00032     public:
00033 
00034         virtual void setData(const ::orca::PathPlanner2dData& data, const ::Ice::Current& = ::Ice::Current());
00035         gbxiceutilacfr::Store<QString> msgStore_;
00036 };
00038 
00039 
00040 //
00041 // @author Tobias Kaupp
00042 //
00043 class PathPlanner2dElement : public orcaqguielementutil::IceStormElement2d<PathPainter,
00044                              orca::PathPlanner2dData,
00045                              orca::PathPlanner2dPrx,
00046                              orca::PathPlanner2dConsumer,
00047                              orca::PathPlanner2dConsumerPrx>
00048 {
00049 
00050 public: 
00051 
00052     PathPlanner2dElement( const orcaice::Context       &context,
00053                           const std::string            &proxyString,
00054                           hydroqguielementutil::IHumanManager     &humanManager,
00055                           hydroqguielementutil::MouseEventManager &mouseEventManager );
00056     ~PathPlanner2dElement();
00057 
00058     void update();
00059     
00060     // overriding paint since we have to paint human input
00061     void paint( QPainter *p, int z );
00062     
00063     virtual void actionOnConnection();
00064     virtual bool isInGlobalCS() { return true; }
00065     virtual QStringList contextMenu();
00066     virtual void execute( int action );
00067     virtual void setColor( QColor color ) { painter_.setColor( color ); };
00068     virtual void setFocus( bool inFocus );
00069     virtual void setUseTransparency( bool useTransparency );
00070 
00071     virtual void noLongerMouseEventReceiver() { pathHI_.noLongerMouseEventReceiver(); }
00072     virtual void mousePressEvent(QMouseEvent *e) { pathHI_.mousePressEvent(e); }
00073     virtual void mouseMoveEvent(QMouseEvent *e) { pathHI_.mouseMoveEvent(e); }
00074     virtual void mouseReleaseEvent(QMouseEvent *e) { pathHI_.mouseReleaseEvent(e); }
00075     virtual void mouseDoubleClickEvent(QMouseEvent *e) { pathHI_.mouseDoubleClickEvent(e); }
00076     void sendPath( const PathPlannerInput &pathInput );
00077 
00078 private: 
00079 
00080     PathPainter painter_;
00081     
00082     // Task answer
00083     PathPlannerTaskAnswerConsumer *pathTaskAnswerConsumer_;
00084     orca::PathPlanner2dConsumerPrx taskCallbackPrx_;
00085     Ice::ObjectPtr pathPlanner2dConsumerObj_;
00086     
00087     orca::PathPlanner2dPrx pathPlanner2dPrx_;
00088     
00089     orcaice::Context context_;
00090     std::string proxyString_;
00091     hydroqguielementutil::IHumanManager &humanManager_;
00092 
00093     bool displayWaypoints_;
00094     bool currentTransparency_;
00095         
00096     // Handles user interaction
00097     PathPlannerUserInteraction pathHI_;
00098 };
00099 
00100 }
00101 
00102 #endif
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5