From 54585ba35adc6afc46201b746401c5a8a66ab6fa Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 29 May 2011 12:43:00 -0600 Subject: Add transform() to Python Objects. --- libdimension-python/Sphere.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libdimension-python/Sphere.c') diff --git a/libdimension-python/Sphere.c b/libdimension-python/Sphere.c index c2d5157..c6ec6a6 100644 --- a/libdimension-python/Sphere.c +++ b/libdimension-python/Sphere.c @@ -42,6 +42,20 @@ dmnsn_py_Sphere_init(dmnsn_py_Sphere *self, PyObject *args, PyObject *kwds) static PyObject * dmnsn_py_Sphere_initialize(dmnsn_py_Sphere *self) { + dmnsn_matrix trans = dmnsn_scale_matrix( + dmnsn_new_vector(self->radius, self->radius, self->radius) + ); + trans = dmnsn_matrix_mul(dmnsn_translation_matrix(self->center), trans); + + dmnsn_object *object = self->base.object; + object->trans = dmnsn_matrix_mul(object->trans, trans); + + dmnsn_texture *texture = object->texture; + if (texture) { + dmnsn_matrix trans_inv = dmnsn_matrix_inverse(trans); + texture->trans = dmnsn_matrix_mul(trans_inv, texture->trans); + } + Py_INCREF(Py_None); return Py_None; } -- cgit v1.2.3