示例#1
0
static PyObject *Freestyle_blendRamp(PyObject *self, PyObject *args)
{
	PyObject *obj1, *obj2;
	char *s;
	int type;
	float a[3], fac, b[3];

	if (!PyArg_ParseTuple(args, "sOfO", &s, &obj1, &fac, &obj2))
		return NULL;
	type = ramp_blend_type(s);
	if (type < 0) {
		PyErr_SetString(PyExc_TypeError, "argument 1 is an unknown ramp blend type");
		return NULL;
	}
	if (!float_array_from_PyObject(obj1, a, 3)) {
		PyErr_SetString(PyExc_TypeError,
		                "argument 2 must be a 3D vector (either a tuple/list of 3 elements or Vector)");
		return NULL;
	}
	if (!float_array_from_PyObject(obj2, b, 3)) {
		PyErr_SetString(PyExc_TypeError,
		                "argument 4 must be a 3D vector (either a tuple/list of 3 elements or Vector)");
		return NULL;
	}
	ramp_blend(type, a, fac, b);
	return Vector_CreatePyObject(a, 3, Py_NEW, NULL);
}
示例#2
0
static int SVertex_point_2d_set(BPy_SVertex *self, PyObject *value, void *UNUSED(closure))
{
	float v[3];
	if (!float_array_from_PyObject(value, v, 3)) {
		PyErr_SetString(PyExc_ValueError, "value must be a 3-dimensional vector");
		return -1;
	}
	Vec3r p(v[0], v[1], v[2]);
	self->sv->setPoint2D(p);
	return 0;
}
示例#3
0
static int convert_v3(PyObject *obj, void *v)
{
	return float_array_from_PyObject(obj, (float *)v, 3);
}