Homepage Demos Overview Downloads Tutorials Reference
Credits

SaveWalkControl.h

Go to the documentation of this file.
00001 #ifndef INCLUDED_SaveWalkControl_h
00002 #define INCLUDED_SaveWalkControl_h
00003 
00004 #include "StringInputControl.h"
00005 #include "Motion/MotionManager.h"
00006 #include "Motion/WalkMC.h"
00007 #include <string>
00008 
00009 //! When activated, saves walk parameters to a file specified from cin
00010 class SaveWalkControl : public StringInputControl {
00011  public:
00012   //! constructor, pass the MC_ID of the walk you want to save
00013   SaveWalkControl(const std::string& n, MotionManager::MC_ID w) : StringInputControl(n,"Saves Walk parameters to filename read from user","Please enter name for posture file (in /ms/data/motion)..."), walk_id(w), thewalk(NULL) {}
00014   //! constructor, pass a pointer to the walk you want to save
00015   SaveWalkControl(const std::string& n, WalkMC * awalk) : StringInputControl(n,"Saves Walk parameters to filename read from user","Please enter name for posture file (in /ms/data/motion)..."), walk_id(MotionManager::invalid_MC_ID), thewalk(awalk) {}
00016   //! destructor
00017   virtual ~SaveWalkControl() {}
00018 
00019   virtual ControlBase * takeInput(const std::string& msg) {
00020     if(msg.size()>0) {
00021       std::string filename;
00022       if(msg[0]=='/')
00023         filename=msg;
00024       else
00025         filename=config->motion.root+"/"+msg;
00026       MotionManager::MC_ID id = thewalk==NULL?walk_id:thewalk->getID();
00027       WalkMC* walk=thewalk;
00028       if(id!=MotionManager::invalid_MC_ID)
00029         walk = (WalkMC*)motman->checkoutMotion(id);
00030       if(walk==NULL)
00031         serr->printf("Invalid walk for saving\n");
00032       else {
00033         walk->SaveFile(filename.c_str());
00034         motman->checkinMotion(id);
00035       }
00036     }
00037     return StringInputControl::takeInput(msg);
00038   }
00039 
00040  protected:
00041   MotionManager::MC_ID walk_id; //!< MC_ID of walk to save from
00042   WalkMC * thewalk; //!< walk to save from
00043 
00044 private:
00045   SaveWalkControl(const SaveWalkControl&); //!< don't call
00046   SaveWalkControl operator=(const SaveWalkControl&); //!< don't call
00047 };
00048 
00049 /*! @file
00050  * @brief Defines SaveWalkControl, which when activated, saves walk parameters to a file specified from cin
00051  * @author ejt (Creator)
00052  *
00053  * $Author: ejt $
00054  * $Name: tekkotsu-2_1 $
00055  * $Revision: 1.7 $
00056  * $State: Exp $
00057  * $Date: 2004/01/10 20:10:27 $
00058  */
00059 #endif

Tekkotsu v2.1
Generated Tue Mar 16 23:19:15 2004 by Doxygen 1.3.5