basic/robots/R_OpenChain.h

Go to the documentation of this file.
00001 #ifndef R_OpenChain_h
00002 #define R_OpenChain_h 1
00003 
00004 #pragma warning( disable : 4786 )
00005 
00006 #include "robots\RobotBase.h"
00007 
00008 class Frame;
00009 class LinkBase;
00010 
00011 class R_OpenChain : public RobotBase  //## Inherits: <unnamed>%3718ED9001AE
00012 {
00013 
00014   public:
00015       R_OpenChain (const R_OpenChain& right);
00016 
00017       R_OpenChain (FrameManager* frameManager);
00018 
00019       virtual ~R_OpenChain();
00020 
00021 
00022       //        appends a link onto the very end of the robot
00023       //        manipulator.  This link should have been allocated
00024       //        previously, but the robot now retains control of the
00025       //        pointer.
00026       void AppendLink (const LinkBase* link);
00027 
00028       //        returns the number of degrees of freedom in a robot
00029       virtual unsigned int DOF () const;
00030 
00031       //        this operation allocates memory for a copy of this
00032       //        object, and returns a pointer to this new instantiation.
00033       virtual Entity* Clone () const;
00034 
00035       //        Returns a list of pointers to all the links that compose
00036       //        the robot.
00037       virtual std::list< LinkBase*> GetAllLinks () const;
00038           virtual std::list< int > GetAllToolFrames() const;
00039       virtual LinkBase* GetLink( const unsigned int i );
00040 
00041           // Adds a tool frame to a paritcular robot
00042       void AddToolFrame( const Frame& frame, const int baseFrameNum );
00043 
00044       virtual bool CanCheckInterference (const Entity* entity) const;
00045 
00046       virtual bool IsInterfering (const Entity* entity) const;
00047 
00048           virtual bool Deserialize( IfstreamWithComments& is ) ;
00049 
00050           //Added by Zhenwang.Yao 2003.01
00051           int GetToolFrame(int index);
00052 
00053   protected:
00054       std::vector< int > m_ToolFrames;
00055       std::vector< int > m_ToolFrameBases;
00056       std::vector< LinkBase* > links;
00057 };
00058 
00059 #endif

Generated on Sat Apr 1 21:30:35 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO