static void my_check(t_btree **root, t_btree **n, t_btree *add, int is_parent_at_left) { t_btree *y; if (is_parent_at_left) y = (*n)->parent->parent->right; else y = (*n)->parent->parent->left; if (y && y->color == RB_RED) { y->color = RB_BLACK; (*n)->parent->color = RB_BLACK; (*n)->parent->parent->color = RB_RED; *n = (*n)->parent->parent; } else { if ((is_parent_at_left && (*n == (*n)->parent->right)) || (!is_parent_at_left && add == (*n)->parent->left)) { *n = (*n)->parent; my_rotate(root, *n, is_parent_at_left); } (*n)->parent->color = RB_BLACK; (*n)->parent->parent->color = RB_RED; my_rotate(root, (*n)->parent->parent, !is_parent_at_left); } }
void check_obj(t_rtv *rtv, t_coord *light, double norme[3]) { if (rtv->color == SPHERE) { norme[0] = light->xo - rtv->sph.tab[rtv->obj][1]; norme[1] = light->yo - rtv->sph.tab[rtv->obj][2]; norme[2] = light->zo - rtv->sph.tab[rtv->obj][3]; } else if (rtv->color == CYLINDR) { my_rotate(light, rtv->cyl.tab[rtv->obj][4], rtv->cyl.tab[rtv->obj][5], rtv->cyl.tab[rtv->obj][6]); norme[0] = light->xo - rtv->cyl.tab[rtv->obj][1]; norme[1] = light->yo - rtv->cyl.tab[rtv->obj][2]; my_rotate(light, rtv->cyl.tab[rtv->obj][4], rtv->cyl.tab[rtv->obj][5], rtv->cyl.tab[rtv->obj][6]); } else if (rtv->color == CONE) { my_rotate(light, rtv->cone.tab[rtv->obj][4], rtv->cone.tab[rtv->obj][5], rtv->cone.tab[rtv->obj][6]); norme[0] = light->xo - rtv->cone.tab[rtv->obj][1]; norme[1] = light->yo - rtv->cone.tab[rtv->obj][2]; my_rotate(light, rtv->cone.tab[rtv->obj][4], rtv->cone.tab[rtv->obj][5], rtv->cone.tab[rtv->obj][6]); } }
int my_init2(int *pile1, int *pile2, int *s, int r[3][5]) { r[1][0] = my_swap(pile1, s[1], 1); r[1][1] = my_rotate(pile1, s[1], 1); r[1][2] = my_reverse(pile1, s[1], 1); r[2][0] = my_swap(pile2, s[2], -1); r[2][1] = my_rotate(pile2, s[2], -1); r[2][2] = my_reverse(pile2, s[2], -1); return (1); }
int main(int argc, char **argv) { static t_list *mapile = NULL; static t_list *stack2 = NULL; static t_list *lc = NULL; t_var var; var.i = 1; while (argv[var.i]) { my_push(&mapile, my_getnbr(argv[var.i])); var.i = var.i + 1; } my_reverse_doc(&mapile); while (my_is_empty(mapile) != -1) { var.len = my_length(mapile); var.nb = my_min_doc(mapile, stack2, &var.pos); while (var.pos != 0) { my_rotate(&mapile); my_var_ini(&var.i, &var.pos, 1, mapile); } my_delete_first(&mapile, &stack2); my_var_ini(&var.i, &var.pos, 2, mapile); } my_putchar('\n'); }