diff --git a/src/algorithm/contact-info.hpp b/src/algorithm/contact-info.hpp
index 06bb5a0ba7e1e333c4c1647ecb032357f13ddd99..ca11e5a07a99f6e2275205629e3d6c2945886b12 100644
--- a/src/algorithm/contact-info.hpp
+++ b/src/algorithm/contact-info.hpp
@@ -149,6 +149,21 @@ namespace pinocchio
       }
       return -1;
     }
+
+    /// \returns An expression of *this with the Scalar type casted to NewScalar.
+    template<typename NewScalar>
+    RigidContactModelTpl<NewScalar,Options> cast() const
+    {
+      typedef RigidContactModelTpl<NewScalar,Options> ReturnType;
+      ReturnType res;
+      res.type = type;
+      res.frame_id = frame_id;
+      res.reference_frame =reference_frame;
+      res.desired_contact_placement = desired_contact_placement.template cast<NewScalar>();
+      res.desired_contact_velocity = desired_contact_velocity.template cast<NewScalar>();
+      res.desired_contact_acceleration = desired_contact_acceleration.template cast<NewScalar>();
+      return res;
+    }
     
   };