private float Snap(float value) { if (SnapValues == null) return value; foreach (float v in SnapValues) { if (Math.Abs(value - v) <= SnapThreshold) return v; } return value; }