TrajectoryModuleContainer.hpp
Go to the documentation of this file.
00001 /*
00002  * TrajectoryModuleContainer.hpp
00003  *
00004  *  Created on: Dec 13, 2011
00005  *      Author: mriedel
00006  */
00007 
00008 #ifndef TRAJECTORYMODULECONTAINER_HPP_
00009 #define TRAJECTORYMODULECONTAINER_HPP_
00010 
00011 #include <telekyb_defines/telekyb_defines.hpp>
00012 
00013 #include <tk_trajprocessor/TrajectoryModule.hpp>
00014 #include <pluginlib/class_loader.h>
00015 
00016 // stl
00017 #include <set>
00018 #include <list>
00019 
00020 
00021 namespace TELEKYB_NAMESPACE {
00022 
00023 class TrajectoryModuleContainer {
00024 protected:
00025         pluginlib::ClassLoader<TrajectoryModule> trajectoryModuleLoader;
00026         // Behaviorset. Contains all loaded Behaviors from all Containers!
00027         std::set<TrajectoryModule*> trajectoryModuleInstances;
00028 
00030         std::list<TrajectoryModule*> positionPriorityList;
00032         std::list<TrajectoryModule*> velocityPriorityList;
00034         std::list<TrajectoryModule*> accelerationPriorityList;
00035         //** only contains TrajModulePosType::All **//
00036         std::list<TrajectoryModule*> otherPriorityList;
00037 
00038         // add and remove from priority lists
00039         void insertPriorityLists(TrajectoryModule* tm);
00040         void removePriorityLists(TrajectoryModule* tm);
00041 
00042         // general insert function
00043         static void insertPriorityElementIntoList(TrajectoryModule* tm, std::list<TrajectoryModule*>& list);
00044 
00045 public:
00046         TrajectoryModuleContainer();
00047         virtual ~TrajectoryModuleContainer();
00048 
00049         // should be const, but getDeclaredClasses is declared wrongly.
00050         void getAvailableTrajectoryModules(std::vector<std::string>& trajectoryModuleClassNames);
00051 
00052         // returns 0 if fails
00053         TrajectoryModule* loadTrajectoryModule(const std::string& trajectoryModuleClassName);
00054         void unLoadTrajectoryModule(TrajectoryModule* tm);
00055 
00056         // Reset all Modules to intital State.
00057         void activateAllTrajectoryModules();
00058         void deactivateAllTrajectoryModules();
00059 
00060         // steps
00061         void trajectoryStepPosition(const TKState& currentState, TKTrajectory& trajInput);
00062         void trajectoryStepVelocity(const TKState& currentState, TKTrajectory& trajInput);
00063         void trajectoryStepAcceleration(const TKState& currentState, TKTrajectory& trajInput);
00064         void trajectoryStepOther(const TKState& currentState, TKTrajectory& trajInput);
00065 
00066 };
00067 
00068 } /* namespace telekyb */
00069 #endif /* TRAJECTORYMODULECONTAINER_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines


tk_trajprocessor
Author(s): Martin Riedel
autogenerated on Mon Nov 11 2013 11:13:29