X-Git-Url: http://git.tdb.fi/?p=libs%2Fmath.git;a=blobdiff_plain;f=source%2Fgeometry%2Fextrudedshape.h;h=7aeedb0cd146e30e761e3c88b41d54dde680cdfb;hp=0d895ac5bc0aecbac9d6de46f5e93c9c932ca0dd;hb=827b227ae53884109b6885ccd1424dda8c0b3725;hpb=68389c29cf88d6522dcfa00b5e2a5166e3947210 diff --git a/source/geometry/extrudedshape.h b/source/geometry/extrudedshape.h index 0d895ac..7aeedb0 100644 --- a/source/geometry/extrudedshape.h +++ b/source/geometry/extrudedshape.h @@ -141,7 +141,7 @@ inline unsigned ExtrudedShape::get_intersections(const Ray &ray, Sur base_points = reinterpret_cast *>(points+size)-size; unsigned count = base->get_intersections(base_ray, base_points, size); - for(unsigned i=0; i::get_intersections(const Ray &ray, Sur } ++n; - if(n==size) - return n; } } /* If the ray is not parallel to the base space, it may pass through the caps. */ - if(ray_direction[D-1]) + if(n p = ray_start+ray_direction*x; - if(base->contains(LinAl::Vector(p)) && ncontains(LinAl::Vector(p))) { if(points) { @@ -176,16 +174,13 @@ inline unsigned ExtrudedShape::get_intersections(const Ray &ray, Sur points[n].normal = LinAl::Vector(); points[n].normal[D-1] = i; points[n].distance = x; - - if(n==1 && x