Esempio n. 1
0
Vec3r *Vec3r_ptr_from_PyList(PyObject *obj)
{
	float v[3];

	if (!PyList_Check(obj) || PyList_Size(obj) != 3)
		return NULL;
	if (!float_array_from_PyList(obj, v, 3))
		return NULL;
	return new Vec3r(v[0], v[1], v[2]);
}
Esempio n. 2
0
Vec2f *Vec2f_ptr_from_PyList(PyObject *obj)
{
	float v[2];

	if (!PyList_Check(obj) || PyList_Size(obj) != 2)
		return NULL;
	if (!float_array_from_PyList(obj, v, 2))
		return NULL;
	return new Vec2f(v[0], v[1]);
}
bool Vec2f_ptr_from_PyList(PyObject *obj, Vec2f &vec)
{
	float v[2];

	if (!PyList_Check(obj) || PyList_GET_SIZE(obj) != 2)
		return false;
	if (!float_array_from_PyList(obj, v, 2))
		return false;
	vec[0] = v[0];
	vec[1] = v[1];
	return true;
}
Esempio n. 4
0
int float_array_from_PyObject(PyObject *obj, float *v, int n)
{
	if (VectorObject_Check(obj) && ((VectorObject *)obj)->size == n) {
		for (int i = 0; i < n; i++)
			v[i] = ((VectorObject *)obj)->vec[i];
		return 1;
	}
	else if (PyList_Check(obj) && PyList_Size(obj) == n) {
		return float_array_from_PyList(obj, v, n);
	}
	else if (PyTuple_Check(obj) && PyTuple_Size(obj) == n) {
		return float_array_from_PyTuple(obj, v, n);
	}
	return 0;
}
bool float_array_from_PyObject(PyObject *obj, float *v, int n)
{
	if (VectorObject_Check(obj) && ((VectorObject *)obj)->size == n) {
		if (BaseMath_ReadCallback((BaseMathObject *)obj) == -1)
			return 0;
		for (int i = 0; i < n; i++)
			v[i] = ((VectorObject *)obj)->vec[i];
		return 1;
	}
	else if (ColorObject_Check(obj) && n == 3) {
		if (BaseMath_ReadCallback((BaseMathObject *)obj) == -1)
			return 0;
		for (int i = 0; i < n; i++)
			v[i] = ((ColorObject *)obj)->col[i];
		return 1;
	}
	else if (PyList_Check(obj) && PyList_GET_SIZE(obj) == n) {
		return float_array_from_PyList(obj, v, n);
	}
	else if (PyTuple_Check(obj) && PyTuple_GET_SIZE(obj) == n) {
		return float_array_from_PyTuple(obj, v, n);
	}
	return 0;
}