rt/src/tf_push.c

100 lines
2.3 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* tf_push.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: scebula <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2016/10/01 16:55:52 by scebula #+# #+# */
/* Updated: 2016/10/20 17:49:38 by scebula ### ########.fr */
/* */
/* ************************************************************************** */
#include "rt.h"
void push_zrot_tf(t_tf_list **begin_tf_list, double deg)
{
t_tf_list *tmp;
tmp = *begin_tf_list;
if (tmp)
{
while (tmp->next)
tmp = tmp->next;
tmp->next = add_zrot_tf(deg);
tmp->next->previous = tmp;
}
else
*begin_tf_list = add_zrot_tf(deg);
}
void push_yrot_tf(t_tf_list **begin_tf_list, double deg)
{
t_tf_list *tmp;
tmp = *begin_tf_list;
if (tmp)
{
while (tmp->next)
tmp = tmp->next;
tmp->next = add_yrot_tf(deg);
tmp->next->previous = tmp;
}
else
*begin_tf_list = add_yrot_tf(deg);
}
void push_xrot_tf(t_tf_list **begin_tf_list, double deg)
{
t_tf_list *tmp;
tmp = *begin_tf_list;
if (tmp)
{
while (tmp->next)
tmp = tmp->next;
tmp->next = add_xrot_tf(deg);
tmp->next->previous = tmp;
}
else
*begin_tf_list = add_xrot_tf(deg);
}
void push_trans_tf(t_tf_list **begin_tf_list, double x, double y,
double z)
{
t_tf_list *tmp;
t_vect t;
t = init_vector(x, y, z, 0);
tmp = *begin_tf_list;
if (tmp)
{
while (tmp->next)
tmp = tmp->next;
tmp->next = add_trans_tf(t);
tmp->next->previous = tmp;
}
else
*begin_tf_list = add_trans_tf(t);
}
void push_scale_tf(t_tf_list **begin_tf_list, double x, double y,
double z)
{
t_tf_list *tmp;
t_vect t;
t = init_vector(x, y, z, 0);
tmp = *begin_tf_list;
if (tmp)
{
while (tmp->next)
tmp = tmp->next;
tmp->next = add_scale_tf(x, y, z);
tmp->next->previous = tmp;
}
else
*begin_tf_list = add_scale_tf(x, y, z);
}