Here you can find the source of clampTrigo(float value, float min, float max)
Parameter | Description |
---|---|
value | a parameter |
min | a parameter |
max | a parameter |
@Deprecated @SuppressWarnings("checkstyle:all") public static float clampTrigo(float value, float min, float max)
//package com.java2s; /*//www. j av a 2 s .c om * $Id$ * This file is a part of the Arakhne Foundation Classes, http://www.arakhne.org/afc * * Copyright (c) 2000-2012 Stephane GALLAND. * Copyright (c) 2005-10, Multiagent Team, Laboratoire Systemes et Transports, * Universite de Technologie de Belfort-Montbeliard. * Copyright (c) 2013-2016 The original authors, and other authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Main { /** Clamp the given value to fit between the min and max values * according to a trigonometric-like heuristic. * If the given value is not between the minimum and maximum * values and the value is positive, the value is modulo the perimeter * of the counterclockwise circle. * If the given value is not between the minimum and maximum * values and the value is negative, the value is modulo the perimeter * of the clockwise circle. * The perimeter is the distance between {@code min} and {@code max}. * * @param value * @param min * @param max * @return the clamped value * @deprecated since 13.0, see {@link #clampCyclic(double, double, double)} */ @Deprecated @SuppressWarnings("checkstyle:all") public static float clampTrigo(float value, float min, float max) { if (Float.isNaN(max)) { // NaN is lower than all the number according to float.compareTo() return Float.NaN; } if (Float.isNaN(min)) { // Clamp max only if (value > max) return max - Float.MAX_VALUE + value; } else { assert (min <= max); if (min == max) return min; // special case: empty interval if (value < min || value > max) { float perimeter = max - min; float nvalue = value - min; float rest = nvalue % perimeter; return (value < 0) ? max + rest : rest + min; } } return value; } }