// public FieldLimiter (T value) // { // return limit ( value ); // } public void init (NodeHandle nh, string field = "") { float fmin = float.NegativeInfinity; float fmax = float.PositiveInfinity; double dmin = double.NegativeInfinity; double dmax = double.PositiveInfinity; bool isDouble = typeof (T) == typeof (double); string prefix = !string.IsNullOrEmpty ( field ) ? field + "/" : ""; if ( nh.hasParam ( prefix + "max" ) || nh.hasParam ( prefix + "min" ) ) { object posinf = isDouble ? dmax : fmax; object neginf = isDouble ? dmin : fmin; nh.param<T> ( prefix + "max", ref max_, (T) posinf ); nh.param<T> ( prefix + "min", ref min_, (T) neginf ); // nh.param<T>(prefix + "max", ref max_, numeric_limits<T>::infinity()); // nh.param<T>(prefix + "min", ref min_, -max_); ROS.Info ("Limits " + nh.getNamespace () + "/" + field + " initialized " + field + " with min " + min_ + " and max " + max_); } }