Mercurial > hg > cmdp
view src/uk/ac/qmul/eecs/depic/patterns/Range.java @ 4:473da40f3d39 tip
added html formatting to Daw/package-info.java
author | Fiore Martin <f.martin@qmul.ac.uk> |
---|---|
date | Thu, 25 Feb 2016 17:50:09 +0000 |
parents | 629262395647 |
children |
line wrap: on
line source
/* Cross-Modal DAW Prototype - Prototype of a simple Cross-Modal Digital Audio Workstation. Copyright (C) 2015 Queen Mary University of London (http://depic.eecs.qmul.ac.uk/) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package uk.ac.qmul.eecs.depic.patterns; /** * * Immutable class containing two comparable number which represent the start and the end of a range. * * * @param <T> */ public class Range<T extends Number & Comparable<T> > { protected T start; protected T end; public Range(T t1, T t2){ if(t1.compareTo(t2) < 1){ start = t1; end = t2; }else{ start = t2; end = t1; } } /** * Creates a new instance by comparing {@code mm1} and {@code mm2}. * * The minimum of this object will be the minimum value between {@code mm1.getMin()} and {@code mm2.getMin()}. * The maximum of this object will be the maximum value between {@code mm1.getMax()} and {@code mm2.getMax()}. * * @param r1 the former Range whose min and max are to be compared * @param r2 the latter Range whose min and max are to be compared */ public Range(Range<T> r1, Range<T> r2){ if(r1.getStart().compareTo(r2.getStart()) < 0){ // if the minimum of mm1 is less than the minimum of mm2 start = r1.getStart(); // then min is the minimum of mm1 }else{ // else start = r2.getStart(); // min is the minimum of mm2 } if(r1.getEnd().compareTo(r2.getEnd()) > 0){ // if the maximum of mm1 is greater than the maximum of mm2 end = r1.getEnd(); // then max is the maximum of mm1 }else{ // else end = r2.getEnd(); // max is the maximum of mm2 } } protected Range(){ // empty range } public T getStart() { return start; } public T getEnd() { return end; } public float lenght(){ return getEnd().floatValue() - getStart().floatValue(); } @Override public String toString(){ return "Range ["+ getStart()+","+getEnd()+"]"; } public static final Range<Float> NORMALIZED_RANGE_F = new Range<>(0.0f,1.0f); public static final Range<Double> NORMALIZED_RANGE_D = new Range<>(0.0,1.0); }