/// <summary>
 /// Creates a new ResponseCurveGenerator with the given
 /// response curve.
 /// </summary>
 /// <param name="responseCurve"></param>
 /// <param name="floatGenerator"></param>
 public ResponseCurveGenerator(ResponseCurveBase <T> responseCurve, IGenerator <float> floatGenerator)
 {
     this.responseCurve  = responseCurve;
     this.floatGenerator = floatGenerator;
 }
 /// <summary>
 /// Creates a new ResponseCurveGenerator with the given
 /// response curve.
 /// </summary>
 /// <param name="responseCurve"></param>
 /// <param name="random">The random generator to use.</param>
 public ResponseCurveGenerator(ResponseCurveBase <T> responseCurve, IRandom random) :
     this(responseCurve, new UniformFloatGenerator(random))
 {
 }
 /// <summary>
 /// Creates a new ResponseCurveGenerator with the given
 /// response curve.
 /// </summary>
 /// <param name="responseCurve"></param>
 public ResponseCurveGenerator(ResponseCurveBase <T> responseCurve) :
     this(responseCurve, new UniformFloatGenerator())
 {
 }
 /// <summary>
 /// Creates a new ResponseCurveGenerator with the given
 /// response curve.
 /// </summary>
 /// <param name="responseCurve"></param>
 public ResponseCurveGenerator(ResponseCurveBase <T> responseCurve) :
     this(responseCurve, GLRandom.GlobalRandom)
 {
 }