Extend the input to arbitrary TemplatePoint, but it is working only for TemplatePoint<double, 3> == Point3d for now.