]> git.tdb.fi Git - libs/math.git/blobdiff - source/geometry/hypersphere.h
Make the check_intersection function non-virtual
[libs/math.git] / source / geometry / hypersphere.h
index cbec2d99af744e7182f4b5f0081379b059a14d95..abdd1939508c2a717f5856fed975da0690226a0a 100644 (file)
@@ -32,7 +32,6 @@ public:
 
        virtual HyperBox<T, D> get_axis_aligned_bounding_box() const;
        virtual bool contains(const LinAl::Vector<T, D> &) const;
-       virtual bool check_intersection(const Ray<T, D> &) const;
        virtual unsigned get_max_ray_intersections() const { return 2; }
        virtual unsigned get_intersections(const Ray<T, D> &, SurfacePoint<T, D> *, unsigned) const;
 };
@@ -66,16 +65,6 @@ inline bool HyperSphere<T, D>::contains(const LinAl::Vector<T, D> &point) const
        return inner_product(point, point)<=radius*radius;
 }
 
-template<typename T, unsigned D>
-inline bool HyperSphere<T, D>::check_intersection(const Ray<T, D> &ray) const
-{
-       T x = inner_product(ray.get_direction(), ray.get_start());
-       if(x>0)
-               return contains(ray.get_start());
-       else
-               return contains(ray.get_start()-ray.get_direction()*x);
-}
-
 template<typename T, unsigned D>
 inline unsigned HyperSphere<T, D>::get_intersections(const Ray<T, D> &ray, SurfacePoint<T, D> *points, unsigned size) const
 {