GPUGraph.Node.AreFloatsDifferent C# (CSharp) Метод

AreFloatsDifferent() публичный статический Метод

Compares two floats like normal, except that if they are both NaN, they are considered to be *equal*.
public static AreFloatsDifferent ( float f1, float f2 ) : bool
f1 float
f2 float
Результат bool
        public static bool AreFloatsDifferent(float f1, float f2)
        {
            bool nan1 = float.IsNaN(f1),
                 nan2 = float.IsNaN(f2);
            return (nan1 && !nan2) ||
                   (!nan1 && nan2) ||
                   (!nan1 && !nan2 && f1 != f2);
        }

Usage Example

		/// <summary>
		/// Runs a GUI using EditorGUILayout for these parameters.
		/// This GUI can be used to modify each parameter's "default value" fields.
		/// Returns whether any values have been changed.
		/// </summary>
		public bool ParamEditorGUI()
		{
			bool changed = false;

			for (int i = 0; i < FloatParams.Count; ++i)
			{
				GUILayout.BeginHorizontal();
				GUILayout.Label(StringUtils.PrettifyVarName(FloatParams[i].Name));
				float oldVal = FloatParams[i].DefaultValue;
				if (FloatParams[i].IsSlider)
				{
					GUILayout.Label(FloatParams[i].SliderMin.ToString());
					FloatParams[i] = new FloatParamInfo(FloatParams[i],
						Mathf.InverseLerp(FloatParams[i].SliderMin, FloatParams[i].SliderMax,
										  GUILayout.HorizontalSlider(Mathf.Lerp(FloatParams[i].SliderMin,
																				FloatParams[i].SliderMax,
																				FloatParams[i].DefaultValue),
																	 FloatParams[i].SliderMin,
																	 FloatParams[i].SliderMax,
																	 GUILayout.MinWidth(50.0f))));
					GUILayout.Label(FloatParams[i].SliderMax.ToString());
				}
				else
				{
					FloatParams[i] = new FloatParamInfo(FloatParams[i],
														EditorGUILayout.FloatField(FloatParams[i].DefaultValue));
				}

				changed = (changed || Node.AreFloatsDifferent(oldVal, FloatParams[i].DefaultValue));

				GUILayout.EndHorizontal();
			}
			for (int i = 0; i < Tex2DParams.Count; ++i)
			{
				GUILayout.BeginHorizontal();

				GUILayout.Label(StringUtils.PrettifyVarName(Tex2DParams[i].Name));

				Texture2D oldVal = Tex2DParams[i].DefaultVal;
				Tex2DParams[i] = new Texture2DParamInfo(Tex2DParams[i].Name,
						(Texture2D)EditorGUILayout.ObjectField(Tex2DParams[i].DefaultVal,
															   typeof(Texture2D), false));

				changed = (oldVal != Tex2DParams[i].DefaultVal);

				GUILayout.EndHorizontal();
			}

			return changed;
		}