@@ 250-260 (lines=11) @@ | ||
247 | var val = this; |
|
248 | return (val < 0); |
|
249 | }, |
|
250 | relativeTo: function(v2, type){ |
|
251 | var v1 = this; |
|
252 | // type .. 0=any, 1=pos, 2=neg |
|
253 | var v = v2 - v1; |
|
254 | if (type == 1) { |
|
255 | return v > 0 ? v : -v; |
|
256 | }else if (type == 2) { |
|
257 | return v > 0 ? -v : v; |
|
258 | } |
|
259 | return v; |
|
260 | }, |
|
261 | abs: function(negative = false){ |
|
262 | var v = this; |
|
263 | if (negative){ |
|
@@ 775-798 (lines=24) @@ | ||
772 | var input = this; |
|
773 | return parseFloat(input.toString().substr(0, digits)); |
|
774 | }, |
|
775 | limit: function(min, max){ |
|
776 | var input = this; |
|
777 | ||
778 | // ensure ok |
|
779 | if (input != input) { /// fast isNaN check |
|
780 | return min; |
|
781 | } |
|
782 | ||
783 | // flip limits if in reverse order |
|
784 | if (min > max) { |
|
785 | var temp = max; |
|
786 | max = min; |
|
787 | min = temp; |
|
788 | } |
|
789 | ||
790 | // ensure within limits |
|
791 | if (input < min) { |
|
792 | return min; |
|
793 | }else if (input > max) { |
|
794 | return max; |
|
795 | } |
|
796 | return input; |
|
797 | }, |
|
798 | limitToArray: function(array, extraMax = 0, extraMin = 0){ |
|
799 | var pointer = this; |
|
800 | if (pointer <= -extraMin) { |
|
801 | return -extraMin; |
|
@@ 821-840 (lines=20) @@ | ||
818 | } |
|
819 | return min + (value % diff); |
|
820 | }, |
|
821 | wrap2: function(min, max){ |
|
822 | var input = this; |
|
823 | ||
824 | // flip limits if in reverse order |
|
825 | if (min > max) { |
|
826 | var temp = max; |
|
827 | max = min; |
|
828 | min = temp; |
|
829 | } |
|
830 | ||
831 | // ensure wrapped to limits |
|
832 | var diff = (max - min) + 1; |
|
833 | while (input < min) { |
|
834 | input += diff; |
|
835 | } |
|
836 | while (input > max) { |
|
837 | input -= diff; |
|
838 | } |
|
839 | return input; |
|
840 | }, |
|
841 | wrapToMax: function(max){ |
|
842 | var value = this; |
|
843 | var diff = max + 1; |