1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- namespace Animancer
- {
-
- public static partial class Validate
- {
-
-
-
- public enum Value
- {
-
- Any,
-
- ZeroToOne,
-
- IsNotNegative,
-
- IsFinite,
-
- IsFiniteOrNaN,
- }
-
-
- public static void ValueRule(ref float value, Value rule)
- {
- switch (rule)
- {
- case Value.Any:
- default:
- return;
- case Value.ZeroToOne:
- if (!(value >= 0))
- value = 0;
- else if (value > 1)
- value = 1;
- break;
- case Value.IsNotNegative:
- if (!(value >= 0))
- value = 0;
- break;
- case Value.IsFinite:
- if (float.IsNaN(value))
- value = 0;
- else if (float.IsPositiveInfinity(value))
- value = float.MaxValue;
- else if (float.IsNegativeInfinity(value))
- value = float.MinValue;
- break;
- case Value.IsFiniteOrNaN:
- if (float.IsPositiveInfinity(value))
- value = float.MaxValue;
- else if (float.IsNegativeInfinity(value))
- value = float.MinValue;
- break;
- }
- }
-
- }
- }
|