|
|
@@ -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);
|
|
|
}
|
|
|
-
|