Java Float Number Clamp clampDegree0To360(float degree)

Here you can find the source of clampDegree0To360(float degree)

Description

Replies the specified angle translated between 0 and 360.

License

Apache License

Parameter

Parameter Description
degree is an angle

Return

normalized angle

Declaration

@Deprecated
@SuppressWarnings("checkstyle:all")
public static float clampDegree0To360(float degree) 

Method Source Code

//package com.java2s;
/*//from   w w w  . j av a2 s . co  m
 * $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 {
    /**
     * Replies the specified angle translated between 0 and 360.
     *
     * @param degree
     *            is an angle
     * @return normalized angle
     * @deprecated since 13.0, see {@link #clampCyclic(double, double, double)}
     */
    @Deprecated
    @SuppressWarnings("checkstyle:all")
    public static float clampDegree0To360(float degree) {
        if ((!Float.isNaN(degree)) && (!Float.isInfinite(degree))) {
            return clampTrigo(degree, 0, 360);
        }
        return degree;
    }

    /** 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;
    }
}

Related

  1. clamp_float(float p_76131_0_, float p_76131_1_, float p_76131_2_)
  2. clampAngle(float value, float min, float max)
  3. clampAngle(float var, float min, float max)
  4. clampBounds(float[] target, float[] clamp)
  5. clampColour(float value)
  6. clampFloat(float value, float minimum, float maximum)
  7. clampLevel(float level)
  8. clampLevel(float level)
  9. clampNumberFromTime(long ms, float seconds)