//------------------------------------------------------------------------------------- PyObject* ScriptVector4::py_inplace_subtract(PyObject *self, PyObject *b) { if(!check(b)) { PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } Vector4 bv; convertPyObjectToVector4(bv, b); ScriptVector4* sv = static_cast<ScriptVector4*>(self); Vector4& v = sv->getVector(); v -= bv; Py_INCREF(sv); return sv; }
//------------------------------------------------------------------------------------- PyObject* ScriptVector4::__py_pyDistSqrTo(PyObject* self, PyObject* args) { if (PyTuple_Size(args) != 1) { PyErr_SetString(PyExc_TypeError, "args > 1 is error!\n"); PyErr_PrintEx(0); S_Return; } ScriptVector4* sv = static_cast<ScriptVector4*>(self); Vector4& v = sv->getVector(); Vector4 v1; convertPyObjectToVector4(v1, PyTuple_GET_ITEM(args, 0)); Vector4 rv = (v - v1); return PyFloat_FromDouble(KBEVec4LengthSq(&rv)); //计算点乘并返回 }