static PyObject* pyQuat_subtract(PyObject* left, PyObject* right) { if (!pyQuat_Check(left) || !pyQuat_Check(right)) { PyErr_SetString(PyExc_TypeError, "Incompatible Types"); return NULL; } return pyQuat_FromQuat(*((pyQuat*)left)->fThis - *((pyQuat*)right)->fThis); }
static PyObject* pyQuat_multiply(PyObject* left, PyObject* right) { if (pyQuat_Check(left)) { if (pyQuat_Check(right)) { return pyQuat_FromQuat(*((pyQuat*)left)->fThis * *((pyQuat*)right)->fThis); } else if (PyFloat_Check(right)) { return pyQuat_FromQuat(*((pyQuat*)left)->fThis * PyFloat_AsDouble(right)); } else { PyErr_SetString(PyExc_TypeError, "Incompatible Types"); return NULL; } } else if (pyQuat_Check(right)) { if (PyFloat_Check(left)) { return pyQuat_FromQuat(*((pyQuat*)right)->fThis * PyFloat_AsDouble(left)); } else { PyErr_SetString(PyExc_TypeError, "Incompatible Types"); return NULL; } } else { PyErr_SetString(PyExc_TypeError, "This should not happen"); return NULL; } }
static PyObject* pyQuatChannel_getResult(pyQuatChannel* self, void*) { return pyQuat_FromQuat(self->fThis->getResult()); }
static PyObject* pyCompressedQuatKey64_getValue(pyCompressedQuatKey64* self, void*) { return pyQuat_FromQuat(self->fThis->getQuat()); }
static PyObject* pyQuatKey_getValue(pyQuatKey* self, void*) { return pyQuat_FromQuat(self->fThis->fValue); }
static PyObject* pyGenericPhysical_getRot(pyGenericPhysical* self, void*) { return pyQuat_FromQuat(self->fThis->getRot()); }
static PyObject* pyScaleKey_getValue(pyScaleKey* self, void*) { return Py_BuildValue("OO", pyVector3_FromVector3(self->fThis->fS), pyQuat_FromQuat(self->fThis->fQ)); }
static PyObject* pyQuat_conjugate(pyQuat* self) { return pyQuat_FromQuat(self->fThis->conjugate()); }
static PyObject* pyQuat_Identity(PyObject*) { return pyQuat_FromQuat(hsQuat::Identity()); }
static PyObject* pyQuat_absolute(pyQuat* self) { return pyQuat_FromQuat(hsQuat(fabs(self->fThis->X), fabs(self->fThis->Y), fabs(self->fThis->Z), fabs(self->fThis->W))); }
static PyObject* pyQuat_positive(pyQuat* self) { return pyQuat_FromQuat(hsQuat(+(self->fThis->X), +(self->fThis->Y), +(self->fThis->Z), +(self->fThis->W))); }
static PyObject* pyQuat_negative(pyQuat* self) { return pyQuat_FromQuat(hsQuat(-(self->fThis->X), -(self->fThis->Y), -(self->fThis->Z), -(self->fThis->W))); }
static PyObject* pyAffineParts_getU(pyAffineParts* self, void*) { return pyQuat_FromQuat(self->fThis->fU); }