basic/kinematics/LinkBase.h

Go to the documentation of this file.
00001 #ifndef LinkBase_h
00002 #define LinkBase_h 1
00003 
00004 #ifdef _MSC_VER
00005     #pragma warning( disable : 4786 )
00006 #endif
00007 
00008 #include "universe\NamedElement.h"
00009 #include "geometry\ObjectBase.h"
00010 #include "Kinematics\FrameManager.h"
00011 #include <set>
00012 #include <vector>
00013 
00014 
00015 class DH_Link;
00016 class IfstreamWithComments;
00017 
00018 using std::ostream ;
00019 using std::istream ;
00020 
00021 class LinkBase : public NamedElement
00022 {
00023   public:
00024       virtual ~LinkBase();
00025 
00026       virtual void UpdateFrames () const = 0;
00027 
00028       //## Operation: SetBaseFrame%924379573
00029       void SetBaseFrame (const unsigned int frame);
00030 
00031       //## Operation: BaseFrameNum%924379575
00032       unsigned int BaseFrameNum () const;
00033 
00034       //## Operation: Clone%924739819
00035       virtual LinkBase* Clone () const = 0;
00036 
00037       //## Operation: SetFrameManager%924978290
00038       void SetFrameManager (FrameManager* frameManager);
00039 
00040       //## Operation: SetJointVariable%925420851
00041       virtual void SetJointVariable (const double newValue) = 0;
00042 
00043       //## Operation: JointMax%928194468
00044       double JointMax () const;
00045 
00046       //## Operation: JointMin%928194469
00047       double JointMin () const;
00048 
00049       //## Operation: JointWraps%928194470
00050       bool JointWraps () const;
00051 
00052       //## Operation: SetJointMax%928263336
00053       void SetJointMax (const double jointMax);
00054 
00055       //## Operation: SetJointMin%928263337
00056       void SetJointMin (const double jointMin);
00057 
00058       //## Operation: SetJointLimits%928263338
00059       void SetJointLimits (const double limit1, const double limit2);
00060 
00061       //## Operation: DoesLinkControlFrame%928263348
00062       virtual bool DoesLinkControlFrame (const unsigned int frameNum) const = 0;
00063 
00064       //## Operation: Serialize%933801285
00065       virtual void Serialize (ostream& os) const;
00066 
00067       //## Operation: DeSerializeAbstract%935084509
00068       static LinkBase* DeSerializeAbstract (IfstreamWithComments& is, FrameManager* frameManager);
00069 
00070       //## Operation: SetPositioningFrame%969569781
00071       void SetPositioningFrame (const Matrix4x4& positioningFrame);
00072 
00073       //## Operation: DeSerialize%935084510
00074       virtual bool DeSerialize (IfstreamWithComments& is);
00075 
00076     // Data Members for Class Attributes
00077 
00078       //## Attribute: directlyDependantObjects%3755D91603AC
00079       //## begin LinkBase::directlyDependantObjects%3755D91603AC.attr preserve=no  public: std::set< unsigned int> {UA} 
00080       std::set< unsigned int> directlyDependantObjects;
00081       //## end LinkBase::directlyDependantObjects%3755D91603AC.attr
00082 
00083       //## Attribute: indirectlyDependantObjects%3755D93602EA
00084       //## begin LinkBase::indirectlyDependantObjects%3755D93602EA.attr preserve=no  public: std::set< unsigned int > {UA} 
00085       std::set< unsigned int > indirectlyDependantObjects;
00086       //## end LinkBase::indirectlyDependantObjects%3755D93602EA.attr
00087 
00088       //## Attribute: objects%3755E8E50148
00089       //## begin LinkBase::objects%3755E8E50148.attr preserve=no  public: std::vector< ObjectBase* > {UA} 
00090       std::vector< ObjectBase* > objects;
00091       //## end LinkBase::objects%3755E8E50148.attr
00092 
00093       //## Attribute: controlledFrames%377446700387
00094       //## begin LinkBase::controlledFrames%377446700387.attr preserve=no  public: std::vector< unsigned int > {UA} 
00095       std::vector< unsigned int > controlledFrames;
00096       //## end LinkBase::controlledFrames%377446700387.attr
00097 
00098   protected:
00099     //## Constructors (specified)
00100       //## Operation: LinkBase%924391853
00101       LinkBase (FrameManager* frameManager);
00102 
00103       //## Operation: LinkBase%925178922
00104       LinkBase (const LinkBase& right);
00105 
00106     // Data Members for Class Attributes
00107 
00108       //## Attribute: baseFrame%37191CD50302
00109       //## begin LinkBase::baseFrame%37191CD50302.attr preserve=no  protected: unsigned int {UA} 
00110       unsigned int baseFrame;
00111       //## end LinkBase::baseFrame%37191CD50302.attr
00112 
00113       //## Attribute: jointMax%37531F7602D7
00114       //## begin LinkBase::jointMax%37531F7602D7.attr preserve=no  protected: double {UA} 
00115       double jointMax;
00116       //## end LinkBase::jointMax%37531F7602D7.attr
00117 
00118       //## Attribute: jointMin%37531F800097
00119       //## begin LinkBase::jointMin%37531F800097.attr preserve=no  protected: double {UA} 
00120       double jointMin;
00121       //## end LinkBase::jointMin%37531F800097.attr
00122 
00123       //## Attribute: jointWraps%37531F8B02C3
00124       //## begin LinkBase::jointWraps%37531F8B02C3.attr preserve=no  protected: bool {UA} 
00125       bool jointWraps;
00126       //## end LinkBase::jointWraps%37531F8B02C3.attr
00127 
00128       //## Attribute: positioningFrame%39CA7CBD004F
00129       //## begin LinkBase::positioningFrame%39CA7CBD004F.attr preserve=no  protected: Matrix4x4 {UA} 
00130       Matrix4x4 positioningFrame;
00131       //## end LinkBase::positioningFrame%39CA7CBD004F.attr
00132 
00133     // Data Members for Associations
00134 
00135       //## Association: Kinematics::<unnamed>%37191A2B0258
00136       //## Role: LinkBase::frameManager%37191A2C005A
00137       //## begin LinkBase::frameManager%37191A2C005A.role preserve=no  protected: FrameManager { -> 1RHAN}
00138       FrameManager* frameManager;
00139       //## end LinkBase::frameManager%37191A2C005A.role
00140         
00141   private:
00142     // Additional Private Declarations
00143       //## begin LinkBase%3707C4E603CA.private preserve=yes
00144       //## end LinkBase%3707C4E603CA.private
00145 
00146   private: //## implementation
00147     // Additional Implementation Declarations
00148       //## begin LinkBase%3707C4E603CA.implementation preserve=yes
00149       //## end LinkBase%3707C4E603CA.implementation
00150 
00151 };
00152 
00153 //## begin LinkBase%3707C4E603CA.postscript preserve=yes
00154 std::ostream & operator<<( std::ostream &os, const LinkBase& v ) ;
00155 std::istream & operator>>( std::istream &is, LinkBase& v ) ;
00156 //## end LinkBase%3707C4E603CA.postscript
00157 
00158 // Class LinkBase 
00159 
00160 //## begin module%3707C4E603CA.epilog preserve=yes
00161 //## end module%3707C4E603CA.epilog
00162 
00163 
00164 #endif

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