static void step(void *void_data, double time) { (void) time; struct cube_data *data = (struct cube_data*) void_data; data->q = quat_mult(data->rot, data->q); quat_to_matrix(data->q, data->m); }
/** * Get a translation matrix for this object. **/ void object_get_transform_mat(object_t *object, float matrix[16]) { MATRIX_DECL(translate, object->scale[0], 0, 0, object->trans[0], 0, object->scale[1], 0, object->trans[1], 0, 0, object->scale[2], object->trans[2], 0, 0, 0, 1); float rotate[16]; float translate_final[16]; quat_to_matrix(&object->rot, rotate); matrix_multiply(translate, rotate, translate_final); matrix_multiply(translate_final, object->pretransform, matrix); }