Exemple #1
0
//-------------------------------------------------------------------------------------
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)); //计算点乘并返回
}