00001 #ifndef __PYLINK_H__ 00002 #define __PYLINK_H__ 00003 00004 #include <boost/python.hpp> 00005 #include "hrpsys/util/GLlink.h" 00006 00007 class PyShape; 00008 00009 class PyLink : public GLlink 00010 { 00011 public: 00012 PyLink(); 00013 ~PyLink(); 00014 PyObject *getPosition(); 00015 void setPosition(PyObject *v); 00016 PyObject *getRotation(); 00017 void setRotation(PyObject *v); 00018 PyObject *getRelPosition(); 00019 void setRelPosition(PyObject *v); 00020 PyObject *getRelRotation(); 00021 void setRelRotation(PyObject *v); 00022 double getPosture(); 00023 void setPosture(double); 00024 PyObject *getCoM(); 00025 void setCoM(PyObject *v); 00026 PyObject *getInertia(); 00027 void setInertia(PyObject *v); 00028 PyObject *getLinVel(); 00029 void setLinVel(PyObject *v); 00030 PyObject *getAngVel(); 00031 void setAngVel(PyObject *v); 00032 PyObject *getRotationAxis(); 00033 void setRotationAxis(PyObject *v); 00034 PyObject *getTranslationAxis(); 00035 void setTranslationAxis(PyObject *v); 00036 PyLink *addChildLink(std::string name); 00037 PyLink *getParent(); 00038 void addShapeFromFile(std::string url); 00039 PyShape *addCube(double x, double y, double z); 00040 PyObject *getChildren(); 00041 void setJointType(std::string type); 00042 std::string getJointType(); 00043 PyObject *shapes(); 00044 int getJointId(); 00045 void setJointId(int id); 00046 private: 00047 void notifyChanged(); 00048 }; 00049 00050 #endif