Ejemplo n.º 1
0
Archivo: set.c Proyecto: BRAINSia/teem
void
echoCylinderSet(echoObject *cylind,
                int axis) {

  if (cylind && echoTypeCylinder == cylind->type) {
    CYLINDER(cylind)->axis = axis;
  }
  return;
}
Ejemplo n.º 2
0
t_intersectInfo			*cylinder_intersection(t_cylinder *cylinder, t_ray r)
{
	t_intersectInfo *i;
	t_vector		nray_origin;
	t_vector		nray_direction;
	t_cylinder		ncylinder;
	t_ray			nray;

	if (!(i = (t_intersectInfo *)malloc(sizeof(t_intersectInfo))))
		return (NULL);
	nray_origin = SUB(r.origin,
		mult(cylinder->direction, DOT_PROD(r.origin, cylinder->direction)));
	nray_direction = SUB(r.direction, mult(cylinder->direction,
		DOT_PROD(r.direction, cylinder->direction)));
	ncylinder = CYLINDER(SUB(cylinder->origin,
		mult(cylinder->direction,
		DOT_PROD(cylinder->origin, cylinder->direction))),
		cylinder->direction, cylinder->radius, cylinder->color);
	nray = RAY(nray_origin, nray_direction);
	if (!(project_2d_cylinder(&(ncylinder), nray, i)))
		return (NULL);
	return (end_int(cylinder, r, i));
}