//modificado para transformar la normal y la posicion del punto
 private bool Intersect(Ray r, TransformedGraphic graphic, out IntersectionInfo info)
 {
     Ray transformedRay = r.Transformed(graphic.Transform.Inverse);
     if (Intersect(transformedRay, graphic.Graphic, out info))
     {
         info.Position = (vec3)(new vec4(info.Position, 1) * graphic.Transform);
         info.Normal = info.Normal * ((mat3x3)graphic.Transform);
         return true;
     }
     return false;
 }