diff --git a/panda/src/linmath/lvecBase2_ext_src.I b/panda/src/linmath/lvecBase2_ext_src.I index 7de551b291..c7effdaf7c 100644 --- a/panda/src/linmath/lvecBase2_ext_src.I +++ b/panda/src/linmath/lvecBase2_ext_src.I @@ -15,6 +15,8 @@ #ifndef CPPPARSER IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVecBase2); +IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVecBase3); +IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVecBase4); #endif //////////////////////////////////////////////////////////////////// @@ -85,6 +87,21 @@ __getattr__, const string &attr_name) { vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVecBase2), true, false); + + } else if (attr_name.size() == 3) { + FLOATNAME(LVecBase3) *vec = new FLOATNAME(LVecBase3); + vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; + vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; + vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; + return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVecBase3), true, false); + + } else if (attr_name.size() == 4) { + FLOATNAME(LVecBase4) *vec = new FLOATNAME(LVecBase4); + vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; + vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; + vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; + vec->_v.v._3 = this->_v.data[attr_name[3] - 'x']; + return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVecBase4), true, false); } return NULL; @@ -170,4 +187,3 @@ __setattr__, PyObject *self, const string &attr_name, PyObject *assign) { return 0; } - diff --git a/panda/src/linmath/lvecBase3_ext_src.I b/panda/src/linmath/lvecBase3_ext_src.I index 0ec51335f7..9a348883b8 100644 --- a/panda/src/linmath/lvecBase3_ext_src.I +++ b/panda/src/linmath/lvecBase3_ext_src.I @@ -16,6 +16,7 @@ #ifndef CPPPARSER IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVecBase2); IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVecBase3); +IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVecBase4); #endif //////////////////////////////////////////////////////////////////// @@ -94,6 +95,14 @@ __getattr__, const string &attr_name) { vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVecBase3), true, false); + + } else if (attr_name.size() == 4) { + FLOATNAME(LVecBase4) *vec = new FLOATNAME(LVecBase4); + vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; + vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; + vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; + vec->_v.v._3 = this->_v.data[attr_name[3] - 'x']; + return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVecBase4), true, false); } return NULL; diff --git a/panda/src/linmath/lvector2_ext_src.I b/panda/src/linmath/lvector2_ext_src.I index 5307896b67..ae0ce62dac 100644 --- a/panda/src/linmath/lvector2_ext_src.I +++ b/panda/src/linmath/lvector2_ext_src.I @@ -15,6 +15,8 @@ #ifndef CPPPARSER IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVector2); +IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVector3); +IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVector4); #endif //////////////////////////////////////////////////////////////////// @@ -51,6 +53,21 @@ __getattr__, const string &attr_name) { vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVector2), true, false); + + } else if (attr_name.size() == 3) { + FLOATNAME(LVector3) *vec = new FLOATNAME(LVector3); + vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; + vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; + vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; + return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVector3), true, false); + + } else if (attr_name.size() == 4) { + FLOATNAME(LVector4) *vec = new FLOATNAME(LVector4); + vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; + vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; + vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; + vec->_v.v._3 = this->_v.data[attr_name[3] - 'x']; + return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVector4), true, false); } return NULL; @@ -67,4 +84,3 @@ INLINE int EXT_METHOD_ARGS(FLOATNAME(LVector2), __setattr__, PyObject *self, const string &attr_name, PyObject *assign) { return CALL_EXT_METHOD(FLOATNAME(LVecBase2), __setattr__, this, self, attr_name, assign); } - diff --git a/panda/src/linmath/lvector3_ext_src.I b/panda/src/linmath/lvector3_ext_src.I index 523e79cbf4..108be8665f 100644 --- a/panda/src/linmath/lvector3_ext_src.I +++ b/panda/src/linmath/lvector3_ext_src.I @@ -16,6 +16,7 @@ #ifndef CPPPARSER IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVector2); IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVector3); +IMPORT_THIS struct Dtool_PyTypedObject FLOATNAME(Dtool_LVector4); #endif //////////////////////////////////////////////////////////////////// @@ -60,6 +61,14 @@ __getattr__, const string &attr_name) { vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVector3), true, false); + + } else if (attr_name.size() == 4) { + FLOATNAME(LVector4) *vec = new FLOATNAME(LVector4); + vec->_v.v._0 = this->_v.data[attr_name[0] - 'x']; + vec->_v.v._1 = this->_v.data[attr_name[1] - 'x']; + vec->_v.v._2 = this->_v.data[attr_name[2] - 'x']; + vec->_v.v._3 = this->_v.data[attr_name[3] - 'x']; + return DTool_CreatePyInstance((void *)vec, FLOATNAME(Dtool_LVector4), true, false); } return NULL;