00001
00002
00003
00004 #ifndef BASE_MATRIXPY_H
00005 #define BASE_MATRIXPY_H
00006
00007 #include <Base/PyObjectBase.h>
00008 #include <Base/Matrix.h>
00009 #include <string>
00010
00011 namespace Base
00012 {
00013
00014
00015
00016
00017
00020 class BaseExport MatrixPy : public Base::PyObjectBase
00021 {
00022 public:
00023 static PyTypeObject Type;
00024 static PyMethodDef Methods[];
00025 static PyNumberMethods Number[];
00026 static PyGetSetDef GetterSetter[];
00027 static PyParentObject Parents[];
00028 virtual PyTypeObject *GetType(void) {return &Type;};
00029 virtual PyParentObject *GetParents(void) {return Parents;}
00030
00031 public:
00032 MatrixPy(Matrix4D *pcObject, PyTypeObject *T = &Type);
00033 static PyObject *PyMake(struct _typeobject *, PyObject *, PyObject *);
00034 virtual int PyInit(PyObject* args, PyObject*k);
00035 ~MatrixPy();
00036
00037 typedef Matrix4D* PointerType ;
00038
00039 virtual PyObject *_repr(void);
00040 std::string representation(void) const;
00041
00044
00045 static PyObject * staticCallback_move (PyObject *self, PyObject *args);
00047 PyObject* move(PyObject *args);
00049 static PyObject * staticCallback_scale (PyObject *self, PyObject *args);
00051 PyObject* scale(PyObject *args);
00053 static PyObject * staticCallback_unity (PyObject *self, PyObject *args);
00055 PyObject* unity(PyObject *args);
00057 static PyObject * staticCallback_transform (PyObject *self, PyObject *args);
00059 PyObject* transform(PyObject *args);
00061 static PyObject * staticCallback_rotateX (PyObject *self, PyObject *args);
00063 PyObject* rotateX(PyObject *args);
00065 static PyObject * staticCallback_rotateY (PyObject *self, PyObject *args);
00067 PyObject* rotateY(PyObject *args);
00069 static PyObject * staticCallback_rotateZ (PyObject *self, PyObject *args);
00071 PyObject* rotateZ(PyObject *args);
00073 static PyObject * staticCallback_multiply (PyObject *self, PyObject *args);
00075 PyObject* multiply(PyObject *args);
00077 static PyObject * staticCallback_invert (PyObject *self, PyObject *args);
00079 PyObject* invert(PyObject *args);
00081 static PyObject * staticCallback_inverse (PyObject *self, PyObject *args);
00083 PyObject* inverse(PyObject *args);
00085 static PyObject * staticCallback_determinant (PyObject *self, PyObject *args);
00087 PyObject* determinant(PyObject *args);
00089
00092
00093 static PyObject * number_add_handler (PyObject *self, PyObject *other);
00095 static PyObject * number_subtract_handler (PyObject *self, PyObject *other);
00097 static PyObject * number_multiply_handler (PyObject *self, PyObject *other);
00099
00102
00103 static PyObject * staticCallback_getA11 (PyObject *self, void *closure);
00105 Py::Float getA11(void) const;
00107 static int staticCallback_setA11 (PyObject *self, PyObject *value, void *closure);
00109 void setA11(Py::Float arg);
00111 static PyObject * staticCallback_getA12 (PyObject *self, void *closure);
00113 Py::Float getA12(void) const;
00115 static int staticCallback_setA12 (PyObject *self, PyObject *value, void *closure);
00117 void setA12(Py::Float arg);
00119 static PyObject * staticCallback_getA13 (PyObject *self, void *closure);
00121 Py::Float getA13(void) const;
00123 static int staticCallback_setA13 (PyObject *self, PyObject *value, void *closure);
00125 void setA13(Py::Float arg);
00127 static PyObject * staticCallback_getA14 (PyObject *self, void *closure);
00129 Py::Float getA14(void) const;
00131 static int staticCallback_setA14 (PyObject *self, PyObject *value, void *closure);
00133 void setA14(Py::Float arg);
00135 static PyObject * staticCallback_getA21 (PyObject *self, void *closure);
00137 Py::Float getA21(void) const;
00139 static int staticCallback_setA21 (PyObject *self, PyObject *value, void *closure);
00141 void setA21(Py::Float arg);
00143 static PyObject * staticCallback_getA22 (PyObject *self, void *closure);
00145 Py::Float getA22(void) const;
00147 static int staticCallback_setA22 (PyObject *self, PyObject *value, void *closure);
00149 void setA22(Py::Float arg);
00151 static PyObject * staticCallback_getA23 (PyObject *self, void *closure);
00153 Py::Float getA23(void) const;
00155 static int staticCallback_setA23 (PyObject *self, PyObject *value, void *closure);
00157 void setA23(Py::Float arg);
00159 static PyObject * staticCallback_getA24 (PyObject *self, void *closure);
00161 Py::Float getA24(void) const;
00163 static int staticCallback_setA24 (PyObject *self, PyObject *value, void *closure);
00165 void setA24(Py::Float arg);
00167 static PyObject * staticCallback_getA31 (PyObject *self, void *closure);
00169 Py::Float getA31(void) const;
00171 static int staticCallback_setA31 (PyObject *self, PyObject *value, void *closure);
00173 void setA31(Py::Float arg);
00175 static PyObject * staticCallback_getA32 (PyObject *self, void *closure);
00177 Py::Float getA32(void) const;
00179 static int staticCallback_setA32 (PyObject *self, PyObject *value, void *closure);
00181 void setA32(Py::Float arg);
00183 static PyObject * staticCallback_getA33 (PyObject *self, void *closure);
00185 Py::Float getA33(void) const;
00187 static int staticCallback_setA33 (PyObject *self, PyObject *value, void *closure);
00189 void setA33(Py::Float arg);
00191 static PyObject * staticCallback_getA34 (PyObject *self, void *closure);
00193 Py::Float getA34(void) const;
00195 static int staticCallback_setA34 (PyObject *self, PyObject *value, void *closure);
00197 void setA34(Py::Float arg);
00199 static PyObject * staticCallback_getA41 (PyObject *self, void *closure);
00201 Py::Float getA41(void) const;
00203 static int staticCallback_setA41 (PyObject *self, PyObject *value, void *closure);
00205 void setA41(Py::Float arg);
00207 static PyObject * staticCallback_getA42 (PyObject *self, void *closure);
00209 Py::Float getA42(void) const;
00211 static int staticCallback_setA42 (PyObject *self, PyObject *value, void *closure);
00213 void setA42(Py::Float arg);
00215 static PyObject * staticCallback_getA43 (PyObject *self, void *closure);
00217 Py::Float getA43(void) const;
00219 static int staticCallback_setA43 (PyObject *self, PyObject *value, void *closure);
00221 void setA43(Py::Float arg);
00223 static PyObject * staticCallback_getA44 (PyObject *self, void *closure);
00225 Py::Float getA44(void) const;
00227 static int staticCallback_setA44 (PyObject *self, PyObject *value, void *closure);
00229 void setA44(Py::Float arg);
00231 static PyObject * staticCallback_getA (PyObject *self, void *closure);
00233 Py::List getA(void) const;
00235 static int staticCallback_setA (PyObject *self, PyObject *value, void *closure);
00237 void setA(Py::List arg);
00239
00241 PyObject *getCustomAttributes(const char* attr) const;
00243 int setCustomAttributes(const char* attr, PyObject *obj);
00244 PyObject *_getattr(char *attr);
00245 int _setattr(char *attr, PyObject *value);
00246
00248 Matrix4D *getMatrixPtr(void) const;
00249
00252 public:
00253 MatrixPy(const Matrix4D & mat, PyTypeObject *T = &Type)
00254 :PyObjectBase(new Matrix4D(mat),T){}
00255 Matrix4D value() const
00256 { return *(getMatrixPtr()); }
00257
00259 };
00260
00261 #define PARENTSBaseMatrixPy &MatrixPy::Type,PARENTSBasePyObjectBase
00262
00263 }
00264
00265 #endif // BASE_MATRIXPY_H
00266
00267