-template<typename T, unsigned D>
-inline Ray<T, D> TransformedShape<T, D>::make_local_ray(const Ray<T, D> &ray) const
-{
- LinAl::Vector<T, D> local_dir = inverse_trans.transform_linear(ray.get_direction());
- float distortion = local_dir.norm();
- return Ray<T, D>(inverse_trans.transform(ray.get_start()), local_dir, ray.get_limit()*distortion);
-}
-
-template<typename T, unsigned D>
-inline bool TransformedShape<T, D>::check_intersection(const Ray<T, D> &ray) const
-{
- return shape->check_intersection(make_local_ray(ray));
-}
-