+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);
+}
+