/* ************************************************************************* */ double Pose2::range(const Point2& point, boost::optional<Matrix&> H1, boost::optional<Matrix&> H2) const { Point2 d = point - t_; if (!H1 && !H2) return d.norm(); Matrix H; double r = d.norm(H); if (H1) *H1 = H * (Matrix(2, 3) << -r_.c(), r_.s(), 0.0, -r_.s(), -r_.c(), 0.0); if (H2) *H2 = H; return r; }