// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/DoubleRange.java
// public static final DoubleRange NORMAL_RANGE = range(0.0, 1.0);
// 
// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/DoubleRange.java
// public static final DoubleRange REVERSE_NORMAL_RANGE = range(1.0, 0.0);
// 
// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/DoubleRange.java
// public static DoubleRange range(double limit1, double limit2) {
// 	return new DoubleRange(limit1, limit2);
// }


import static com.iamcontent.core.math.DoubleRange.NORMAL_RANGE;
import static com.iamcontent.core.math.DoubleRange.REVERSE_NORMAL_RANGE;
import static com.iamcontent.core.math.DoubleRange.range;

		this.toRange = toRange;
		this.clampingMode = clampingMode;
	}

	public static InterRangeDoubleConverter converterFromNormalTo(double toLimit1, double toLimit2) {
		return converterFromNormalTo(range(toLimit1, toLimit2));
	}
	
	public static InterRangeDoubleConverter converterFromNormalTo(DoubleRange toRange) {
		return interRangeConverter(NORMAL_RANGE, toRange, DEFAULT_MODE);
	}

	public static InterRangeDoubleConverter converterFromNormalTo(DoubleRange toRange, ClampingMode clampingMode) {
		return interRangeConverter(NORMAL_RANGE, toRange, clampingMode);
	}

	public static InterRangeDoubleConverter interRangeConverter(DoubleRange fromRange, DoubleRange toRange) {
		return interRangeConverter(fromRange, toRange, DEFAULT_MODE);
	}

	public static InterRangeDoubleConverter interRangeConverter(DoubleRange fromRange, DoubleRange toRange, ClampingMode clampingMode) {
		return new InterRangeDoubleConverter(fromRange, toRange, clampingMode);
	}
	
	@Override
	public double applyForward(double v) {
		return convertAndClamp(v, fromRange, toRange);
	}

	@Override

// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/DoubleRange.java
// public static final DoubleRange NORMAL_RANGE = range(0.0, 1.0);
// 
// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/DoubleRange.java
// public static final DoubleRange REVERSE_NORMAL_RANGE = range(1.0, 0.0);
// 
// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/DoubleRange.java
// public static DoubleRange range(double limit1, double limit2) {
// 	return new DoubleRange(limit1, limit2);
// }


// Path: public-java/iamcontent-core/src/main/java/com/iamcontent/core/math/InterRangeDoubleConverter.java
import static com.iamcontent.core.math.DoubleRange.NORMAL_RANGE;
import static com.iamcontent.core.math.DoubleRange.REVERSE_NORMAL_RANGE;
import static com.iamcontent.core.math.DoubleRange.range;

		this.toRange = toRange;
		this.clampingMode = clampingMode;
	}

	public static InterRangeDoubleConverter converterFromNormalTo(double toLimit1, double toLimit2) {
		return converterFromNormalTo(range(toLimit1, toLimit2));
	}
	
	public static InterRangeDoubleConverter converterFromNormalTo(DoubleRange toRange) {
		return interRangeConverter(NORMAL_RANGE, toRange, DEFAULT_MODE);
	}

	public static InterRangeDoubleConverter converterFromNormalTo(DoubleRange toRange, ClampingMode clampingMode) {
		return interRangeConverter(NORMAL_RANGE, toRange, clampingMode);
	}

	public static InterRangeDoubleConverter interRangeConverter(DoubleRange fromRange, DoubleRange toRange) {
		return interRangeConverter(fromRange, toRange, DEFAULT_MODE);
	}

	public static InterRangeDoubleConverter interRangeConverter(DoubleRange fromRange, DoubleRange toRange, ClampingMode clampingMode) {
		return new InterRangeDoubleConverter(fromRange, toRange, clampingMode);
	}
	
	@Override
	public double applyForward(double v) {
		return convertAndClamp(v, fromRange, toRange);
	}

	@Override

	public double applyBackward(double v) {
