Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00015 #ifndef HRPMODEL_LINK_PATH_H_INCLUDED
00016 #define HRPMODEL_LINK_PATH_H_INCLUDED
00017
00018 #include "LinkTraverse.h"
00019 #include "Config.h"
00020
00021 namespace hrp {
00022
00023 class HRPMODEL_API LinkPath : public LinkTraverse
00024 {
00025 public:
00026
00027 LinkPath();
00028 LinkPath(Link* base, Link* end);
00029 LinkPath(Link* end);
00030
00031 bool find(Link* base, Link* end);
00032 void find(Link* end);
00033
00034 inline Link* baseLink() const {
00035 return links.front();
00036 }
00037
00038 inline Link* endLink() const {
00039 return links.back();
00040 }
00041
00042 private:
00043
00044 virtual void find(Link* root, bool doUpward, bool doDownward);
00045
00046 bool findPathSub(Link* link, Link* prev, Link* end, bool isForwardDirection);
00047 void findPathFromRootSub(Link* link);
00048 };
00049
00050 };
00051
00052 #endif