mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-27 19:54:27 +00:00 
			
		
		
		
	Rename Math::stepify to snapped
This commit is contained in:
		
							parent
							
								
									be509bf5e4
								
							
						
					
					
						commit
						b743a2ef3c
					
				
					 28 changed files with 148 additions and 148 deletions
				
			
		|  | @ -123,7 +123,7 @@ double Math::ease(double p_x, double p_c) { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| double Math::stepify(double p_value, double p_step) { | double Math::snapped(double p_value, double p_step) { | ||||||
| 	if (p_step != 0) { | 	if (p_step != 0) { | ||||||
| 		p_value = Math::floor(p_value / p_step + 0.5) * p_step; | 		p_value = Math::floor(p_value / p_step + 0.5) * p_step; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -292,7 +292,7 @@ public: | ||||||
| 	static double ease(double p_x, double p_c); | 	static double ease(double p_x, double p_c); | ||||||
| 	static int step_decimals(double p_step); | 	static int step_decimals(double p_step); | ||||||
| 	static int range_step_decimals(double p_step); | 	static int range_step_decimals(double p_step); | ||||||
| 	static double stepify(double p_value, double p_step); | 	static double snapped(double p_value, double p_step); | ||||||
| 	static double dectime(double p_value, double p_amount, double p_step); | 	static double dectime(double p_value, double p_amount, double p_step); | ||||||
| 
 | 
 | ||||||
| 	static uint32_t larger_prime(uint32_t p_val); | 	static uint32_t larger_prime(uint32_t p_val); | ||||||
|  | @ -472,12 +472,12 @@ public: | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	static _ALWAYS_INLINE_ float snap_scalar(float p_offset, float p_step, float p_target) { | 	static _ALWAYS_INLINE_ float snap_scalar(float p_offset, float p_step, float p_target) { | ||||||
| 		return p_step != 0 ? Math::stepify(p_target - p_offset, p_step) + p_offset : p_target; | 		return p_step != 0 ? Math::snapped(p_target - p_offset, p_step) + p_offset : p_target; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	static _ALWAYS_INLINE_ float snap_scalar_separation(float p_offset, float p_step, float p_target, float p_separation) { | 	static _ALWAYS_INLINE_ float snap_scalar_separation(float p_offset, float p_step, float p_target, float p_separation) { | ||||||
| 		if (p_step != 0) { | 		if (p_step != 0) { | ||||||
| 			float a = Math::stepify(p_target - p_offset, p_step + p_separation) + p_offset; | 			float a = Math::snapped(p_target - p_offset, p_step + p_separation) + p_offset; | ||||||
| 			float b = a; | 			float b = a; | ||||||
| 			if (p_target >= 0) { | 			if (p_target >= 0) { | ||||||
| 				b -= p_separation; | 				b -= p_separation; | ||||||
|  |  | ||||||
|  | @ -122,10 +122,10 @@ Vector2 Vector2::project(const Vector2 &p_to) const { | ||||||
| 	return p_to * (dot(p_to) / p_to.length_squared()); | 	return p_to * (dot(p_to) / p_to.length_squared()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Vector2 Vector2::snapped(const Vector2 &p_by) const { | Vector2 Vector2::snapped(const Vector2 &p_step) const { | ||||||
| 	return Vector2( | 	return Vector2( | ||||||
| 			Math::stepify(x, p_by.x), | 			Math::snapped(x, p_step.x), | ||||||
| 			Math::stepify(y, p_by.y)); | 			Math::snapped(y, p_step.y)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Vector2 Vector2::clamped(real_t p_len) const { | Vector2 Vector2::clamped(real_t p_len) const { | ||||||
|  |  | ||||||
|  | @ -60,15 +60,15 @@ int Vector3::max_axis() const { | ||||||
| 	return x < y ? (y < z ? 2 : 1) : (x < z ? 2 : 0); | 	return x < y ? (y < z ? 2 : 1) : (x < z ? 2 : 0); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Vector3::snap(Vector3 p_val) { | void Vector3::snap(Vector3 p_step) { | ||||||
| 	x = Math::stepify(x, p_val.x); | 	x = Math::snapped(x, p_step.x); | ||||||
| 	y = Math::stepify(y, p_val.y); | 	y = Math::snapped(y, p_step.y); | ||||||
| 	z = Math::stepify(z, p_val.z); | 	z = Math::snapped(z, p_step.z); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Vector3 Vector3::snapped(Vector3 p_val) const { | Vector3 Vector3::snapped(Vector3 p_step) const { | ||||||
| 	Vector3 v = *this; | 	Vector3 v = *this; | ||||||
| 	v.snap(p_val); | 	v.snap(p_step); | ||||||
| 	return v; | 	return v; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1016,7 +1016,7 @@ static void _register_variant_builtin_methods() { | ||||||
| 	bind_method(Vector2, cross, sarray("with"), varray()); | 	bind_method(Vector2, cross, sarray("with"), varray()); | ||||||
| 	bind_method(Vector2, abs, sarray(), varray()); | 	bind_method(Vector2, abs, sarray(), varray()); | ||||||
| 	bind_method(Vector2, sign, sarray(), varray()); | 	bind_method(Vector2, sign, sarray(), varray()); | ||||||
| 	bind_method(Vector2, snapped, sarray("by"), varray()); | 	bind_method(Vector2, snapped, sarray("step"), varray()); | ||||||
| 	bind_method(Vector2, clamped, sarray("length"), varray()); | 	bind_method(Vector2, clamped, sarray("length"), varray()); | ||||||
| 
 | 
 | ||||||
| 	/* Vector2i */ | 	/* Vector2i */ | ||||||
|  | @ -1070,7 +1070,7 @@ static void _register_variant_builtin_methods() { | ||||||
| 	bind_method(Vector3, is_normalized, sarray(), varray()); | 	bind_method(Vector3, is_normalized, sarray(), varray()); | ||||||
| 	bind_method(Vector3, is_equal_approx, sarray("to"), varray()); | 	bind_method(Vector3, is_equal_approx, sarray("to"), varray()); | ||||||
| 	bind_method(Vector3, inverse, sarray(), varray()); | 	bind_method(Vector3, inverse, sarray(), varray()); | ||||||
| 	bind_method(Vector3, snapped, sarray("by"), varray()); | 	bind_method(Vector3, snapped, sarray("step"), varray()); | ||||||
| 	bind_method(Vector3, rotated, sarray("by_axis", "phi"), varray()); | 	bind_method(Vector3, rotated, sarray("by_axis", "phi"), varray()); | ||||||
| 	bind_method(Vector3, lerp, sarray("to", "weight"), varray()); | 	bind_method(Vector3, lerp, sarray("to", "weight"), varray()); | ||||||
| 	bind_method(Vector3, slerp, sarray("to", "weight"), varray()); | 	bind_method(Vector3, slerp, sarray("to", "weight"), varray()); | ||||||
|  |  | ||||||
|  | @ -217,8 +217,8 @@ struct VariantUtilityFunctions { | ||||||
| 		return Math::range_step_decimals(step); | 		return Math::range_step_decimals(step); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	static inline double stepify(double value, double step) { | 	static inline double snapped(double value, double step) { | ||||||
| 		return Math::stepify(value, step); | 		return Math::snapped(value, step); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	static inline double lerp(double from, double to, double weight) { | 	static inline double lerp(double from, double to, double weight) { | ||||||
|  | @ -1181,7 +1181,7 @@ void Variant::_register_variant_utility_functions() { | ||||||
| 	FUNCBINDR(ease, sarray("x", "curve"), Variant::UTILITY_FUNC_TYPE_MATH); | 	FUNCBINDR(ease, sarray("x", "curve"), Variant::UTILITY_FUNC_TYPE_MATH); | ||||||
| 	FUNCBINDR(step_decimals, sarray("x"), Variant::UTILITY_FUNC_TYPE_MATH); | 	FUNCBINDR(step_decimals, sarray("x"), Variant::UTILITY_FUNC_TYPE_MATH); | ||||||
| 	FUNCBINDR(range_step_decimals, sarray("x"), Variant::UTILITY_FUNC_TYPE_MATH); | 	FUNCBINDR(range_step_decimals, sarray("x"), Variant::UTILITY_FUNC_TYPE_MATH); | ||||||
| 	FUNCBINDR(stepify, sarray("x", "step"), Variant::UTILITY_FUNC_TYPE_MATH); | 	FUNCBINDR(snapped, sarray("x", "step"), Variant::UTILITY_FUNC_TYPE_MATH); | ||||||
| 
 | 
 | ||||||
| 	FUNCBINDR(lerp, sarray("from", "to", "weight"), Variant::UTILITY_FUNC_TYPE_MATH); | 	FUNCBINDR(lerp, sarray("from", "to", "weight"), Variant::UTILITY_FUNC_TYPE_MATH); | ||||||
| 	FUNCBINDR(lerp_angle, sarray("from", "to", "weight"), Variant::UTILITY_FUNC_TYPE_MATH); | 	FUNCBINDR(lerp_angle, sarray("from", "to", "weight"), Variant::UTILITY_FUNC_TYPE_MATH); | ||||||
|  |  | ||||||
|  | @ -140,7 +140,7 @@ | ||||||
| 				i = ceil(1.45)  # i is 2 | 				i = ceil(1.45)  # i is 2 | ||||||
| 				i = ceil(1.001) # i is 2 | 				i = ceil(1.001) # i is 2 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method floor], [method round], and [method stepify]. | 				See also [method floor], [method round], and [method snapped]. | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
| 		<method name="clamp"> | 		<method name="clamp"> | ||||||
|  | @ -303,7 +303,7 @@ | ||||||
| 				# a is -3.0 | 				# a is -3.0 | ||||||
| 				a = floor(-2.99) | 				a = floor(-2.99) | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method ceil], [method round], and [method stepify]. | 				See also [method ceil], [method round], and [method snapped]. | ||||||
| 				[b]Note:[/b] This method returns a float. If you need an integer, you can use [code]int(x)[/code] directly. | 				[b]Note:[/b] This method returns a float. If you need an integer, you can use [code]int(x)[/code] directly. | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
|  | @ -848,7 +848,7 @@ | ||||||
| 				[codeblock] | 				[codeblock] | ||||||
| 				round(2.6) # Returns 3 | 				round(2.6) # Returns 3 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method floor], [method ceil], and [method stepify]. | 				See also [method floor], [method ceil], and [method snapped]. | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
| 		<method name="seed"> | 		<method name="seed"> | ||||||
|  | @ -974,7 +974,7 @@ | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
| 		<method name="stepify"> | 		<method name="snapped"> | ||||||
| 			<return type="float"> | 			<return type="float"> | ||||||
| 			</return> | 			</return> | ||||||
| 			<argument index="0" name="x" type="float"> | 			<argument index="0" name="x" type="float"> | ||||||
|  | @ -984,8 +984,8 @@ | ||||||
| 			<description> | 			<description> | ||||||
| 				Snaps float value [code]x[/code] to a given [code]step[/code]. This can also be used to round a floating point number to an arbitrary number of decimals. | 				Snaps float value [code]x[/code] to a given [code]step[/code]. This can also be used to round a floating point number to an arbitrary number of decimals. | ||||||
| 				[codeblock] | 				[codeblock] | ||||||
| 				stepify(100, 32) # Returns 96 | 				snapped(100, 32) # Returns 96 | ||||||
| 				stepify(3.14159, 0.01) # Returns 3.14 | 				snapped(3.14159, 0.01) # Returns 3.14 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method ceil], [method floor], and [method round]. | 				See also [method ceil], [method floor], and [method round]. | ||||||
| 			</description> | 			</description> | ||||||
|  |  | ||||||
|  | @ -473,7 +473,7 @@ | ||||||
| 		<method name="snapped"> | 		<method name="snapped"> | ||||||
| 			<return type="Vector2"> | 			<return type="Vector2"> | ||||||
| 			</return> | 			</return> | ||||||
| 			<argument index="0" name="by" type="Vector2"> | 			<argument index="0" name="step" type="Vector2"> | ||||||
| 			</argument> | 			</argument> | ||||||
| 			<description> | 			<description> | ||||||
| 				Returns this vector with each component snapped to the nearest multiple of [code]step[/code]. This can also be used to round to an arbitrary number of decimals. | 				Returns this vector with each component snapped to the nearest multiple of [code]step[/code]. This can also be used to round to an arbitrary number of decimals. | ||||||
|  |  | ||||||
|  | @ -489,7 +489,7 @@ | ||||||
| 		<method name="snapped"> | 		<method name="snapped"> | ||||||
| 			<return type="Vector3"> | 			<return type="Vector3"> | ||||||
| 			</return> | 			</return> | ||||||
| 			<argument index="0" name="by" type="Vector3"> | 			<argument index="0" name="step" type="Vector3"> | ||||||
| 			</argument> | 			</argument> | ||||||
| 			<description> | 			<description> | ||||||
| 				Returns this vector with each component snapped to the nearest multiple of [code]step[/code]. This can also be used to round to an arbitrary number of decimals. | 				Returns this vector with each component snapped to the nearest multiple of [code]step[/code]. This can also be used to round to an arbitrary number of decimals. | ||||||
|  |  | ||||||
|  | @ -367,7 +367,7 @@ void AnimationBezierTrackEdit::_notification(int p_what) { | ||||||
| 
 | 
 | ||||||
| 			float scale = (min_left_scale * 2) * v_zoom; | 			float scale = (min_left_scale * 2) * v_zoom; | ||||||
| 			float step = Math::pow(10.0, Math::round(Math::log(scale / 5.0) / Math::log(10.0))) * 5.0; | 			float step = Math::pow(10.0, Math::round(Math::log(scale / 5.0) / Math::log(10.0))) * 5.0; | ||||||
| 			scale = Math::stepify(scale, step); | 			scale = Math::snapped(scale, step); | ||||||
| 
 | 
 | ||||||
| 			while (scale / v_zoom < min_left_scale * 2) { | 			while (scale / v_zoom < min_left_scale * 2) { | ||||||
| 				scale += step; | 				scale += step; | ||||||
|  | @ -390,7 +390,7 @@ void AnimationBezierTrackEdit::_notification(int p_what) { | ||||||
| 					draw_line(Point2(limit, i), Point2(right_limit, i), lc); | 					draw_line(Point2(limit, i), Point2(right_limit, i), lc); | ||||||
| 					Color c = color; | 					Color c = color; | ||||||
| 					c.a *= 0.5; | 					c.a *= 0.5; | ||||||
| 					draw_string(font, Point2(limit + 8, i - 2), TS->format_number(rtos(Math::stepify((iv + 1) * scale, step))), HALIGN_LEFT, -1, font_size, c); | 					draw_string(font, Point2(limit + 8, i - 2), TS->format_number(rtos(Math::snapped((iv + 1) * scale, step))), HALIGN_LEFT, -1, font_size, c); | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				first = false; | 				first = false; | ||||||
|  | @ -461,8 +461,8 @@ void AnimationBezierTrackEdit::_notification(int p_what) { | ||||||
| 					ep.point_rect.size = bezier_icon->get_size(); | 					ep.point_rect.size = bezier_icon->get_size(); | ||||||
| 					if (selection.has(i)) { | 					if (selection.has(i)) { | ||||||
| 						draw_texture(selected_icon, ep.point_rect.position); | 						draw_texture(selected_icon, ep.point_rect.position); | ||||||
| 						draw_string(font, ep.point_rect.position + Vector2(8, -font->get_height(font_size) - 4), TTR("Time:") + " " + TS->format_number(rtos(Math::stepify(offset, 0.001))), HALIGN_LEFT, -1, font_size, accent); | 						draw_string(font, ep.point_rect.position + Vector2(8, -font->get_height(font_size) - 4), TTR("Time:") + " " + TS->format_number(rtos(Math::snapped(offset, 0.001))), HALIGN_LEFT, -1, font_size, accent); | ||||||
| 						draw_string(font, ep.point_rect.position + Vector2(8, -8), TTR("Value:") + " " + TS->format_number(rtos(Math::stepify(value, 0.001))), HALIGN_LEFT, -1, font_size, accent); | 						draw_string(font, ep.point_rect.position + Vector2(8, -8), TTR("Value:") + " " + TS->format_number(rtos(Math::snapped(value, 0.001))), HALIGN_LEFT, -1, font_size, accent); | ||||||
| 					} else { | 					} else { | ||||||
| 						draw_texture(bezier_icon, ep.point_rect.position); | 						draw_texture(bezier_icon, ep.point_rect.position); | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
|  | @ -3445,7 +3445,7 @@ void AnimationTrackEditor::_insert_delay(bool p_create_reset, bool p_create_bezi | ||||||
| 
 | 
 | ||||||
| 		float pos = timeline->get_play_position(); | 		float pos = timeline->get_play_position(); | ||||||
| 
 | 
 | ||||||
| 		pos = Math::stepify(pos + step, step); | 		pos = Math::snapped(pos + step, step); | ||||||
| 		if (pos > animation->get_length()) { | 		if (pos > animation->get_length()) { | ||||||
| 			pos = animation->get_length(); | 			pos = animation->get_length(); | ||||||
| 		} | 		} | ||||||
|  | @ -5433,7 +5433,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { | ||||||
| 
 | 
 | ||||||
| 			float pos = timeline->get_play_position(); | 			float pos = timeline->get_play_position(); | ||||||
| 
 | 
 | ||||||
| 			pos = Math::stepify(pos + step, step); | 			pos = Math::snapped(pos + step, step); | ||||||
| 			if (pos > animation->get_length()) { | 			if (pos > animation->get_length()) { | ||||||
| 				pos = animation->get_length(); | 				pos = animation->get_length(); | ||||||
| 			} | 			} | ||||||
|  | @ -5452,7 +5452,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			float pos = timeline->get_play_position(); | 			float pos = timeline->get_play_position(); | ||||||
| 			pos = Math::stepify(pos - step, step); | 			pos = Math::snapped(pos - step, step); | ||||||
| 			if (pos < 0) { | 			if (pos < 0) { | ||||||
| 				pos = 0; | 				pos = 0; | ||||||
| 			} | 			} | ||||||
|  | @ -5581,9 +5581,9 @@ float AnimationTrackEditor::snap_time(float p_value, bool p_relative) { | ||||||
| 
 | 
 | ||||||
| 		if (p_relative) { | 		if (p_relative) { | ||||||
| 			double rel = Math::fmod(timeline->get_value(), snap_increment); | 			double rel = Math::fmod(timeline->get_value(), snap_increment); | ||||||
| 			p_value = Math::stepify(p_value + rel, snap_increment) - rel; | 			p_value = Math::snapped(p_value + rel, snap_increment) - rel; | ||||||
| 		} else { | 		} else { | ||||||
| 			p_value = Math::stepify(p_value, snap_increment); | 			p_value = Math::snapped(p_value, snap_increment); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -863,7 +863,7 @@ void Light3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Camer | ||||||
| 
 | 
 | ||||||
| 			float d = -ra.z; | 			float d = -ra.z; | ||||||
| 			if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 			if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 				d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 				d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			if (d <= 0) { // Equal is here for negative zero.
 | 			if (d <= 0) { // Equal is here for negative zero.
 | ||||||
|  | @ -878,7 +878,7 @@ void Light3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Camer | ||||||
| 			if (cp.intersects_ray(ray_from, ray_dir, &inters)) { | 			if (cp.intersects_ray(ray_from, ray_dir, &inters)) { | ||||||
| 				float r = inters.distance_to(gt.origin); | 				float r = inters.distance_to(gt.origin); | ||||||
| 				if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 				if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 					r = Math::stepify(r, Node3DEditor::get_singleton()->get_translate_snap()); | 					r = Math::snapped(r, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				light->set_param(Light3D::PARAM_RANGE, r); | 				light->set_param(Light3D::PARAM_RANGE, r); | ||||||
|  | @ -1243,7 +1243,7 @@ void Camera3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Came | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(0, 0, -1), Vector3(4096, 0, -1), s[0], s[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(0, 0, -1), Vector3(4096, 0, -1), s[0], s[1], ra, rb); | ||||||
| 		float d = ra.x * 2.0; | 		float d = ra.x * 2.0; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		d = CLAMP(d, 0.1, 16384); | 		d = CLAMP(d, 0.1, 16384); | ||||||
|  | @ -2173,7 +2173,7 @@ void VisibilityNotifier3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int | ||||||
| 
 | 
 | ||||||
| 		float d = ra[p_idx]; | 		float d = ra[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		aabb.position[p_idx] = d - 1.0 - aabb.size[p_idx] * 0.5; | 		aabb.position[p_idx] = d - 1.0 - aabb.size[p_idx] * 0.5; | ||||||
|  | @ -2185,7 +2185,7 @@ void VisibilityNotifier3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int | ||||||
| 
 | 
 | ||||||
| 		float d = ra[p_idx] - ofs[p_idx]; | 		float d = ra[p_idx] - ofs[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -2364,7 +2364,7 @@ void GPUParticles3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx | ||||||
| 
 | 
 | ||||||
| 		float d = ra[p_idx]; | 		float d = ra[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		aabb.position[p_idx] = d - 1.0 - aabb.size[p_idx] * 0.5; | 		aabb.position[p_idx] = d - 1.0 - aabb.size[p_idx] * 0.5; | ||||||
|  | @ -2376,7 +2376,7 @@ void GPUParticles3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx | ||||||
| 
 | 
 | ||||||
| 		float d = ra[p_idx] - ofs[p_idx]; | 		float d = ra[p_idx] - ofs[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -2521,7 +2521,7 @@ void GPUParticlesCollision3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra.x; | 		float d = ra.x; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -2538,7 +2538,7 @@ void GPUParticlesCollision3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra[p_idx]; | 		float d = ra[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -2786,7 +2786,7 @@ void ReflectionProbeGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_id | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 16384, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 16384, sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra[p_idx]; | 		float d = ra[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -2814,7 +2814,7 @@ void ReflectionProbeGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_id | ||||||
| 		// Adjust the actual position to account for the gizmo handle position
 | 		// Adjust the actual position to account for the gizmo handle position
 | ||||||
| 		float d = ra[p_idx] + 0.25; | 		float d = ra[p_idx] + 0.25; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		origin[p_idx] = d; | 		origin[p_idx] = d; | ||||||
|  | @ -2964,7 +2964,7 @@ void DecalGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Camera3 | ||||||
| 	Geometry3D::get_closest_points_between_segments(Vector3(), axis * 16384, sg[0], sg[1], ra, rb); | 	Geometry3D::get_closest_points_between_segments(Vector3(), axis * 16384, sg[0], sg[1], ra, rb); | ||||||
| 	float d = ra[p_idx]; | 	float d = ra[p_idx]; | ||||||
| 	if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 	if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 		d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 		d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (d < 0.001) { | 	if (d < 0.001) { | ||||||
|  | @ -3105,7 +3105,7 @@ void GIProbeGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Camer | ||||||
| 	Geometry3D::get_closest_points_between_segments(Vector3(), axis * 16384, sg[0], sg[1], ra, rb); | 	Geometry3D::get_closest_points_between_segments(Vector3(), axis * 16384, sg[0], sg[1], ra, rb); | ||||||
| 	float d = ra[p_idx]; | 	float d = ra[p_idx]; | ||||||
| 	if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 	if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 		d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 		d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (d < 0.001) { | 	if (d < 0.001) { | ||||||
|  | @ -3617,7 +3617,7 @@ void CollisionShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_i | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra.x; | 		float d = ra.x; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -3633,7 +3633,7 @@ void CollisionShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_i | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(0, 0, 4096), sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(0, 0, 4096), sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra.z; | 		float d = ra.z; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -3651,7 +3651,7 @@ void CollisionShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_i | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra[p_idx]; | 		float d = ra[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -3675,7 +3675,7 @@ void CollisionShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_i | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -3697,7 +3697,7 @@ void CollisionShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_i | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | ||||||
| 		float d = axis.dot(ra); | 		float d = axis.dot(ra); | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  |  | ||||||
|  | @ -106,7 +106,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_gui_input(const Ref<InputEven | ||||||
| 		add_point_pos += blend_space->get_min_space(); | 		add_point_pos += blend_space->get_min_space(); | ||||||
| 
 | 
 | ||||||
| 		if (snap->is_pressed()) { | 		if (snap->is_pressed()) { | ||||||
| 			add_point_pos = Math::stepify(add_point_pos, blend_space->get_snap()); | 			add_point_pos = Math::snapped(add_point_pos, blend_space->get_snap()); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -139,7 +139,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_gui_input(const Ref<InputEven | ||||||
| 			point += drag_ofs.x; | 			point += drag_ofs.x; | ||||||
| 
 | 
 | ||||||
| 			if (snap->is_pressed()) { | 			if (snap->is_pressed()) { | ||||||
| 				point = Math::stepify(point, blend_space->get_snap()); | 				point = Math::snapped(point, blend_space->get_snap()); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			updating = true; | 			updating = true; | ||||||
|  | @ -253,7 +253,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_draw() { | ||||||
| 		if (dragging_selected && selected_point == i) { | 		if (dragging_selected && selected_point == i) { | ||||||
| 			point += drag_ofs.x; | 			point += drag_ofs.x; | ||||||
| 			if (snap->is_pressed()) { | 			if (snap->is_pressed()) { | ||||||
| 				point = Math::stepify(point, blend_space->get_snap()); | 				point = Math::snapped(point, blend_space->get_snap()); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -454,7 +454,7 @@ void AnimationNodeBlendSpace1DEditor::_update_edited_point_pos() { | ||||||
| 			pos += drag_ofs.x; | 			pos += drag_ofs.x; | ||||||
| 
 | 
 | ||||||
| 			if (snap->is_pressed()) { | 			if (snap->is_pressed()) { | ||||||
| 				pos = Math::stepify(pos, blend_space->get_snap()); | 				pos = Math::snapped(pos, blend_space->get_snap()); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -129,8 +129,8 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven | ||||||
| 		add_point_pos += blend_space->get_min_space(); | 		add_point_pos += blend_space->get_min_space(); | ||||||
| 
 | 
 | ||||||
| 		if (snap->is_pressed()) { | 		if (snap->is_pressed()) { | ||||||
| 			add_point_pos.x = Math::stepify(add_point_pos.x, blend_space->get_snap().x); | 			add_point_pos.x = Math::snapped(add_point_pos.x, blend_space->get_snap().x); | ||||||
| 			add_point_pos.y = Math::stepify(add_point_pos.y, blend_space->get_snap().y); | 			add_point_pos.y = Math::snapped(add_point_pos.y, blend_space->get_snap().y); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -215,8 +215,8 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven | ||||||
| 			Vector2 point = blend_space->get_blend_point_position(selected_point); | 			Vector2 point = blend_space->get_blend_point_position(selected_point); | ||||||
| 			point += drag_ofs; | 			point += drag_ofs; | ||||||
| 			if (snap->is_pressed()) { | 			if (snap->is_pressed()) { | ||||||
| 				point.x = Math::stepify(point.x, blend_space->get_snap().x); | 				point.x = Math::snapped(point.x, blend_space->get_snap().x); | ||||||
| 				point.y = Math::stepify(point.y, blend_space->get_snap().y); | 				point.y = Math::snapped(point.y, blend_space->get_snap().y); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			updating = true; | 			updating = true; | ||||||
|  | @ -467,8 +467,8 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { | ||||||
| 			if (dragging_selected && selected_point == point_idx) { | 			if (dragging_selected && selected_point == point_idx) { | ||||||
| 				point += drag_ofs; | 				point += drag_ofs; | ||||||
| 				if (snap->is_pressed()) { | 				if (snap->is_pressed()) { | ||||||
| 					point.x = Math::stepify(point.x, blend_space->get_snap().x); | 					point.x = Math::snapped(point.x, blend_space->get_snap().x); | ||||||
| 					point.y = Math::stepify(point.y, blend_space->get_snap().y); | 					point.y = Math::snapped(point.y, blend_space->get_snap().y); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			point = (point - blend_space->get_min_space()) / (blend_space->get_max_space() - blend_space->get_min_space()); | 			point = (point - blend_space->get_min_space()) / (blend_space->get_max_space() - blend_space->get_min_space()); | ||||||
|  | @ -503,8 +503,8 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_draw() { | ||||||
| 		if (dragging_selected && selected_point == i) { | 		if (dragging_selected && selected_point == i) { | ||||||
| 			point += drag_ofs; | 			point += drag_ofs; | ||||||
| 			if (snap->is_pressed()) { | 			if (snap->is_pressed()) { | ||||||
| 				point.x = Math::stepify(point.x, blend_space->get_snap().x); | 				point.x = Math::snapped(point.x, blend_space->get_snap().x); | ||||||
| 				point.y = Math::stepify(point.y, blend_space->get_snap().y); | 				point.y = Math::snapped(point.y, blend_space->get_snap().y); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		point = (point - blend_space->get_min_space()) / (blend_space->get_max_space() - blend_space->get_min_space()); | 		point = (point - blend_space->get_min_space()) / (blend_space->get_max_space() - blend_space->get_min_space()); | ||||||
|  | @ -702,8 +702,8 @@ void AnimationNodeBlendSpace2DEditor::_update_edited_point_pos() { | ||||||
| 		if (dragging_selected) { | 		if (dragging_selected) { | ||||||
| 			pos += drag_ofs; | 			pos += drag_ofs; | ||||||
| 			if (snap->is_pressed()) { | 			if (snap->is_pressed()) { | ||||||
| 				pos.x = Math::stepify(pos.x, blend_space->get_snap().x); | 				pos.x = Math::snapped(pos.x, blend_space->get_snap().x); | ||||||
| 				pos.y = Math::stepify(pos.y, blend_space->get_snap().y); | 				pos.y = Math::snapped(pos.y, blend_space->get_snap().y); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		updating = true; | 		updating = true; | ||||||
|  |  | ||||||
|  | @ -1013,7 +1013,7 @@ void AnimationPlayerEditor::_seek_value_changed(float p_value, bool p_set) { | ||||||
| 
 | 
 | ||||||
| 	float pos = CLAMP(anim->get_length() * (p_value / frame->get_max()), 0, anim->get_length()); | 	float pos = CLAMP(anim->get_length() * (p_value / frame->get_max()), 0, anim->get_length()); | ||||||
| 	if (track_editor->is_snap_enabled()) { | 	if (track_editor->is_snap_enabled()) { | ||||||
| 		pos = Math::stepify(pos, _get_editor_step()); | 		pos = Math::snapped(pos, _get_editor_step()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (player->is_valid() && !p_set) { | 	if (player->is_valid() && !p_set) { | ||||||
|  | @ -1069,7 +1069,7 @@ void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos, bool p_drag) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	updating = true; | 	updating = true; | ||||||
| 	frame->set_value(Math::stepify(p_pos, _get_editor_step())); | 	frame->set_value(Math::snapped(p_pos, _get_editor_step())); | ||||||
| 	updating = false; | 	updating = false; | ||||||
| 	_seek_value_changed(p_pos, !p_drag); | 	_seek_value_changed(p_pos, !p_drag); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -444,8 +444,8 @@ Point2 CanvasItemEditor::snap_point(Point2 p_target, unsigned int p_modes, unsig | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		Point2 grid_output; | 		Point2 grid_output; | ||||||
| 		grid_output.x = Math::stepify(p_target.x - offset.x, grid_step.x * Math::pow(2.0, grid_step_multiplier)) + offset.x; | 		grid_output.x = Math::snapped(p_target.x - offset.x, grid_step.x * Math::pow(2.0, grid_step_multiplier)) + offset.x; | ||||||
| 		grid_output.y = Math::stepify(p_target.y - offset.y, grid_step.y * Math::pow(2.0, grid_step_multiplier)) + offset.y; | 		grid_output.y = Math::snapped(p_target.y - offset.y, grid_step.y * Math::pow(2.0, grid_step_multiplier)) + offset.y; | ||||||
| 		_snap_if_closer_point(p_target, output, snap_target, grid_output, SNAP_TARGET_GRID, 0.0, -1.0); | 		_snap_if_closer_point(p_target, output, snap_target, grid_output, SNAP_TARGET_GRID, 0.0, -1.0); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -462,9 +462,9 @@ Point2 CanvasItemEditor::snap_point(Point2 p_target, unsigned int p_modes, unsig | ||||||
| float CanvasItemEditor::snap_angle(float p_target, float p_start) const { | float CanvasItemEditor::snap_angle(float p_target, float p_start) const { | ||||||
| 	if (((smart_snap_active || snap_rotation) ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL)) && snap_rotation_step != 0) { | 	if (((smart_snap_active || snap_rotation) ^ Input::get_singleton()->is_key_pressed(KEY_CONTROL)) && snap_rotation_step != 0) { | ||||||
| 		if (snap_relative) { | 		if (snap_relative) { | ||||||
| 			return Math::stepify(p_target - snap_rotation_offset, snap_rotation_step) + snap_rotation_offset + (p_start - (int)(p_start / snap_rotation_step) * snap_rotation_step); | 			return Math::snapped(p_target - snap_rotation_offset, snap_rotation_step) + snap_rotation_offset + (p_start - (int)(p_start / snap_rotation_step) * snap_rotation_step); | ||||||
| 		} else { | 		} else { | ||||||
| 			return Math::stepify(p_target - snap_rotation_offset, snap_rotation_step) + snap_rotation_offset; | 			return Math::snapped(p_target - snap_rotation_offset, snap_rotation_step) + snap_rotation_offset; | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		return p_target; | 		return p_target; | ||||||
|  | @ -1931,8 +1931,8 @@ bool CanvasItemEditor::_gui_input_resize(const Ref<InputEvent> &p_event) { | ||||||
| 						vformat( | 						vformat( | ||||||
| 								TTR("Scale Node2D \"%s\" to (%s, %s)"), | 								TTR("Scale Node2D \"%s\" to (%s, %s)"), | ||||||
| 								drag_selection[0]->get_name(), | 								drag_selection[0]->get_name(), | ||||||
| 								Math::stepify(drag_selection[0]->_edit_get_scale().x, 0.01), | 								Math::snapped(drag_selection[0]->_edit_get_scale().x, 0.01), | ||||||
| 								Math::stepify(drag_selection[0]->_edit_get_scale().y, 0.01)), | 								Math::snapped(drag_selection[0]->_edit_get_scale().y, 0.01)), | ||||||
| 						true); | 						true); | ||||||
| 			} else { | 			} else { | ||||||
| 				// Extends from Control.
 | 				// Extends from Control.
 | ||||||
|  | @ -2083,8 +2083,8 @@ bool CanvasItemEditor::_gui_input_scale(const Ref<InputEvent> &p_event) { | ||||||
| 						drag_selection, | 						drag_selection, | ||||||
| 						vformat(TTR("Scale CanvasItem \"%s\" to (%s, %s)"), | 						vformat(TTR("Scale CanvasItem \"%s\" to (%s, %s)"), | ||||||
| 								drag_selection[0]->get_name(), | 								drag_selection[0]->get_name(), | ||||||
| 								Math::stepify(drag_selection[0]->_edit_get_scale().x, 0.01), | 								Math::snapped(drag_selection[0]->_edit_get_scale().x, 0.01), | ||||||
| 								Math::stepify(drag_selection[0]->_edit_get_scale().y, 0.01)), | 								Math::snapped(drag_selection[0]->_edit_get_scale().y, 0.01)), | ||||||
| 						true); | 						true); | ||||||
| 			} | 			} | ||||||
| 			if (key_auto_insert_button->is_pressed()) { | 			if (key_auto_insert_button->is_pressed()) { | ||||||
|  | @ -4576,7 +4576,7 @@ void CanvasItemEditor::_update_zoom_label() { | ||||||
| 		// Don't show a decimal when the zoom level is higher than 1000 %.
 | 		// Don't show a decimal when the zoom level is higher than 1000 %.
 | ||||||
| 		zoom_text = TS->format_number(rtos(Math::round((zoom / MAX(1, EDSCALE)) * 100))) + " " + TS->percent_sign(); | 		zoom_text = TS->format_number(rtos(Math::round((zoom / MAX(1, EDSCALE)) * 100))) + " " + TS->percent_sign(); | ||||||
| 	} else { | 	} else { | ||||||
| 		zoom_text = TS->format_number(rtos(Math::stepify((zoom / MAX(1, EDSCALE)) * 100, 0.1))) + " " + TS->percent_sign(); | 		zoom_text = TS->format_number(rtos(Math::snapped((zoom / MAX(1, EDSCALE)) * 100, 0.1))) + " " + TS->percent_sign(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	zoom_reset->set_text(zoom_text); | 	zoom_reset->set_text(zoom_text); | ||||||
|  |  | ||||||
|  | @ -123,7 +123,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra.x; | 		float d = ra.x; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -142,7 +142,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | ||||||
| 		float d = ra[p_idx]; | 		float d = ra[p_idx]; | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -171,7 +171,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | ||||||
| 		float d = axis.dot(ra); | 		float d = axis.dot(ra); | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  | @ -194,7 +194,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca | ||||||
| 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | 		Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); | ||||||
| 		float d = axis.dot(ra); | 		float d = axis.dot(ra); | ||||||
| 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | 		if (Node3DEditor::get_singleton()->is_snap_enabled()) { | ||||||
| 			d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); | 			d = Math::snapped(d, Node3DEditor::get_singleton()->get_translate_snap()); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (d < 0.001) { | 		if (d < 0.001) { | ||||||
|  |  | ||||||
|  | @ -168,7 +168,7 @@ | ||||||
| 				a = ceil(1.45)  # a is 2.0 | 				a = ceil(1.45)  # a is 2.0 | ||||||
| 				a = ceil(1.001) # a is 2.0 | 				a = ceil(1.001) # a is 2.0 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method floor], [method round], [method stepify], and [int]. | 				See also [method floor], [method round], [method snapped], and [int]. | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
| 		<method name="char"> | 		<method name="char"> | ||||||
|  | @ -331,7 +331,7 @@ | ||||||
| 				a = floor(2.99)  # a is 2.0 | 				a = floor(2.99)  # a is 2.0 | ||||||
| 				a = floor(-2.99) # a is -3.0 | 				a = floor(-2.99) # a is -3.0 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method ceil], [method round], [method stepify], and [int]. | 				See also [method ceil], [method round], [method snapped], and [int]. | ||||||
| 				[b]Note:[/b] This method returns a float. If you need an integer and [code]s[/code] is a non-negative number, you can use [code]int(s)[/code] directly. | 				[b]Note:[/b] This method returns a float. If you need an integer and [code]s[/code] is a non-negative number, you can use [code]int(s)[/code] directly. | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
|  | @ -1015,7 +1015,7 @@ | ||||||
| 				a = round(2.5)  # a is 3.0 | 				a = round(2.5)  # a is 3.0 | ||||||
| 				a = round(2.51) # a is 3.0 | 				a = round(2.51) # a is 3.0 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method floor], [method ceil], [method stepify], and [int]. | 				See also [method floor], [method ceil], [method snapped], and [int]. | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
| 		<method name="seed"> | 		<method name="seed"> | ||||||
|  | @ -1118,7 +1118,7 @@ | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 			</description> | 			</description> | ||||||
| 		</method> | 		</method> | ||||||
| 		<method name="stepify"> | 		<method name="snapped"> | ||||||
| 			<return type="float"> | 			<return type="float"> | ||||||
| 			</return> | 			</return> | ||||||
| 			<argument index="0" name="s" type="float"> | 			<argument index="0" name="s" type="float"> | ||||||
|  | @ -1128,8 +1128,8 @@ | ||||||
| 			<description> | 			<description> | ||||||
| 				Snaps float value [code]s[/code] to a given [code]step[/code]. This can also be used to round a floating point number to an arbitrary number of decimals. | 				Snaps float value [code]s[/code] to a given [code]step[/code]. This can also be used to round a floating point number to an arbitrary number of decimals. | ||||||
| 				[codeblock] | 				[codeblock] | ||||||
| 				stepify(100, 32) # Returns 96.0 | 				snapped(100, 32) # Returns 96.0 | ||||||
| 				stepify(3.14159, 0.01) # Returns 3.14 | 				snapped(3.14159, 0.01) # Returns 3.14 | ||||||
| 				[/codeblock] | 				[/codeblock] | ||||||
| 				See also [method ceil], [method floor], [method round], and [int]. | 				See also [method ceil], [method floor], [method round], and [int]. | ||||||
| 			</description> | 			</description> | ||||||
|  |  | ||||||
|  | @ -178,7 +178,7 @@ Error GLTFDocument::serialize(Ref<GLTFState> state, Node *p_root, const String & | ||||||
| 	} | 	} | ||||||
| 	uint64_t elapsed = OS::get_singleton()->get_ticks_usec() - begin_time; | 	uint64_t elapsed = OS::get_singleton()->get_ticks_usec() - begin_time; | ||||||
| 	float elapsed_sec = double(elapsed) / 1000000.0; | 	float elapsed_sec = double(elapsed) / 1000000.0; | ||||||
| 	elapsed_sec = Math::stepify(elapsed_sec, 0.01f); | 	elapsed_sec = Math::snapped(elapsed_sec, 0.01f); | ||||||
| 	print_line("glTF: Export time elapsed seconds " + rtos(elapsed_sec).pad_decimals(2)); | 	print_line("glTF: Export time elapsed seconds " + rtos(elapsed_sec).pad_decimals(2)); | ||||||
| 
 | 
 | ||||||
| 	return OK; | 	return OK; | ||||||
|  | @ -1460,7 +1460,7 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_ints(Ref<GLTFState> state, c | ||||||
| 	Vector<double> type_min; | 	Vector<double> type_min; | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		attribs.write[i] = Math::stepify(p_attribs[i], 1.0); | 		attribs.write[i] = Math::snapped(p_attribs[i], 1.0); | ||||||
| 		if (i == 0) { | 		if (i == 0) { | ||||||
| 			for (int32_t type_i = 0; type_i < element_count; type_i++) { | 			for (int32_t type_i = 0; type_i < element_count; type_i++) { | ||||||
| 				type_max.write[type_i] = attribs[(i * element_count) + type_i]; | 				type_max.write[type_i] = attribs[(i * element_count) + type_i]; | ||||||
|  | @ -1552,8 +1552,8 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_vec2(Ref<GLTFState> state, c | ||||||
| 
 | 
 | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		Vector2 attrib = p_attribs[i]; | 		Vector2 attrib = p_attribs[i]; | ||||||
| 		attribs.write[(i * element_count) + 0] = Math::stepify(attrib.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 0] = Math::snapped(attrib.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 1] = Math::stepify(attrib.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 1] = Math::snapped(attrib.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -1598,10 +1598,10 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_color(Ref<GLTFState> state, | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		Color attrib = p_attribs[i]; | 		Color attrib = p_attribs[i]; | ||||||
| 		attribs.write[(i * element_count) + 0] = Math::stepify(attrib.r, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 0] = Math::snapped(attrib.r, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 1] = Math::stepify(attrib.g, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 1] = Math::snapped(attrib.g, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 2] = Math::stepify(attrib.b, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 2] = Math::snapped(attrib.b, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 3] = Math::stepify(attrib.a, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 3] = Math::snapped(attrib.a, CMP_NORMALIZE_TOLERANCE); | ||||||
| 
 | 
 | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
|  | @ -1663,10 +1663,10 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_weights(Ref<GLTFState> state | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		Color attrib = p_attribs[i]; | 		Color attrib = p_attribs[i]; | ||||||
| 		attribs.write[(i * element_count) + 0] = Math::stepify(attrib.r, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 0] = Math::snapped(attrib.r, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 1] = Math::stepify(attrib.g, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 1] = Math::snapped(attrib.g, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 2] = Math::stepify(attrib.b, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 2] = Math::snapped(attrib.b, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 3] = Math::stepify(attrib.a, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 3] = Math::snapped(attrib.a, CMP_NORMALIZE_TOLERANCE); | ||||||
| 
 | 
 | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
|  | @ -1712,10 +1712,10 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_joints(Ref<GLTFState> state, | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		Color attrib = p_attribs[i]; | 		Color attrib = p_attribs[i]; | ||||||
| 		attribs.write[(i * element_count) + 0] = Math::stepify(attrib.r, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 0] = Math::snapped(attrib.r, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 1] = Math::stepify(attrib.g, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 1] = Math::snapped(attrib.g, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 2] = Math::stepify(attrib.b, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 2] = Math::snapped(attrib.b, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 3] = Math::stepify(attrib.a, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 3] = Math::snapped(attrib.a, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
| 	ERR_FAIL_COND_V(attribs.size() % element_count != 0, -1); | 	ERR_FAIL_COND_V(attribs.size() % element_count != 0, -1); | ||||||
|  | @ -1759,10 +1759,10 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_quats(Ref<GLTFState> state, | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		Quat quat = p_attribs[i]; | 		Quat quat = p_attribs[i]; | ||||||
| 		attribs.write[(i * element_count) + 0] = Math::stepify(quat.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 0] = Math::snapped(quat.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 1] = Math::stepify(quat.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 1] = Math::snapped(quat.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 2] = Math::stepify(quat.z, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 2] = Math::snapped(quat.z, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 3] = Math::stepify(quat.w, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 3] = Math::snapped(quat.w, CMP_NORMALIZE_TOLERANCE); | ||||||
| 
 | 
 | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
|  | @ -1826,7 +1826,7 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_floats(Ref<GLTFState> state, | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 
 | 
 | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		attribs.write[i] = Math::stepify(p_attribs[i], CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i] = Math::snapped(p_attribs[i], CMP_NORMALIZE_TOLERANCE); | ||||||
| 
 | 
 | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
|  | @ -1871,9 +1871,9 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_vec3(Ref<GLTFState> state, c | ||||||
| 	type_min.resize(element_count); | 	type_min.resize(element_count); | ||||||
| 	for (int i = 0; i < p_attribs.size(); i++) { | 	for (int i = 0; i < p_attribs.size(); i++) { | ||||||
| 		Vector3 attrib = p_attribs[i]; | 		Vector3 attrib = p_attribs[i]; | ||||||
| 		attribs.write[(i * element_count) + 0] = Math::stepify(attrib.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 0] = Math::snapped(attrib.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 1] = Math::stepify(attrib.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 1] = Math::snapped(attrib.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[(i * element_count) + 2] = Math::stepify(attrib.z, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[(i * element_count) + 2] = Math::snapped(attrib.z, CMP_NORMALIZE_TOLERANCE); | ||||||
| 
 | 
 | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
| 	} | 	} | ||||||
|  | @ -1920,27 +1920,27 @@ GLTFAccessorIndex GLTFDocument::_encode_accessor_as_xform(Ref<GLTFState> state, | ||||||
| 		Basis basis = attrib.get_basis(); | 		Basis basis = attrib.get_basis(); | ||||||
| 		Vector3 axis_0 = basis.get_axis(Vector3::AXIS_X); | 		Vector3 axis_0 = basis.get_axis(Vector3::AXIS_X); | ||||||
| 
 | 
 | ||||||
| 		attribs.write[i * element_count + 0] = Math::stepify(axis_0.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 0] = Math::snapped(axis_0.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 1] = Math::stepify(axis_0.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 1] = Math::snapped(axis_0.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 2] = Math::stepify(axis_0.z, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 2] = Math::snapped(axis_0.z, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 3] = 0.0; | 		attribs.write[i * element_count + 3] = 0.0; | ||||||
| 
 | 
 | ||||||
| 		Vector3 axis_1 = basis.get_axis(Vector3::AXIS_Y); | 		Vector3 axis_1 = basis.get_axis(Vector3::AXIS_Y); | ||||||
| 		attribs.write[i * element_count + 4] = Math::stepify(axis_1.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 4] = Math::snapped(axis_1.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 5] = Math::stepify(axis_1.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 5] = Math::snapped(axis_1.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 6] = Math::stepify(axis_1.z, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 6] = Math::snapped(axis_1.z, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 7] = 0.0; | 		attribs.write[i * element_count + 7] = 0.0; | ||||||
| 
 | 
 | ||||||
| 		Vector3 axis_2 = basis.get_axis(Vector3::AXIS_Z); | 		Vector3 axis_2 = basis.get_axis(Vector3::AXIS_Z); | ||||||
| 		attribs.write[i * element_count + 8] = Math::stepify(axis_2.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 8] = Math::snapped(axis_2.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 9] = Math::stepify(axis_2.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 9] = Math::snapped(axis_2.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 10] = Math::stepify(axis_2.z, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 10] = Math::snapped(axis_2.z, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 11] = 0.0; | 		attribs.write[i * element_count + 11] = 0.0; | ||||||
| 
 | 
 | ||||||
| 		Vector3 origin = attrib.get_origin(); | 		Vector3 origin = attrib.get_origin(); | ||||||
| 		attribs.write[i * element_count + 12] = Math::stepify(origin.x, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 12] = Math::snapped(origin.x, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 13] = Math::stepify(origin.y, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 13] = Math::snapped(origin.y, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 14] = Math::stepify(origin.z, CMP_NORMALIZE_TOLERANCE); | 		attribs.write[i * element_count + 14] = Math::snapped(origin.z, CMP_NORMALIZE_TOLERANCE); | ||||||
| 		attribs.write[i * element_count + 15] = 1.0; | 		attribs.write[i * element_count + 15] = 1.0; | ||||||
| 
 | 
 | ||||||
| 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | 		_calc_accessor_min_max(i, element_count, type_max, attribs, type_min); | ||||||
|  |  | ||||||
|  | @ -618,10 +618,10 @@ namespace Godot | ||||||
|         /// This can also be used to round a floating point |         /// This can also be used to round a floating point | ||||||
|         /// number to an arbitrary number of decimals. |         /// number to an arbitrary number of decimals. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="s">The value to stepify.</param> |         /// <param name="s">The value to snap.</param> | ||||||
|         /// <param name="step">The step size to snap to.</param> |         /// <param name="step">The step size to snap to.</param> | ||||||
|         /// <returns></returns> |         /// <returns></returns> | ||||||
|         public static real_t Stepify(real_t s, real_t step) |         public static real_t Snapped(real_t s, real_t step) | ||||||
|         { |         { | ||||||
|             if (step != 0f) |             if (step != 0f) | ||||||
|             { |             { | ||||||
|  |  | ||||||
|  | @ -511,7 +511,7 @@ namespace Godot | ||||||
|         /// <returns>The snapped vector.</returns> |         /// <returns>The snapped vector.</returns> | ||||||
|         public Vector2 Snapped(Vector2 step) |         public Vector2 Snapped(Vector2 step) | ||||||
|         { |         { | ||||||
|             return new Vector2(Mathf.Stepify(x, step.x), Mathf.Stepify(y, step.y)); |             return new Vector2(Mathf.Snapped(x, step.x), Mathf.Snapped(y, step.y)); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|  |  | ||||||
|  | @ -513,9 +513,9 @@ namespace Godot | ||||||
|         { |         { | ||||||
|             return new Vector3 |             return new Vector3 | ||||||
|             ( |             ( | ||||||
|                 Mathf.Stepify(x, step.x), |                 Mathf.Snapped(x, step.x), | ||||||
|                 Mathf.Stepify(y, step.y), |                 Mathf.Snapped(y, step.y), | ||||||
|                 Mathf.Stepify(z, step.z) |                 Mathf.Snapped(z, step.z) | ||||||
|             ); |             ); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ const char *VisualScriptBuiltinFunc::func_name[VisualScriptBuiltinFunc::FUNC_MAX | ||||||
| 	"is_inf", | 	"is_inf", | ||||||
| 	"ease", | 	"ease", | ||||||
| 	"step_decimals", | 	"step_decimals", | ||||||
| 	"stepify", | 	"snapped", | ||||||
| 	"lerp", | 	"lerp", | ||||||
| 	"inverse_lerp", | 	"inverse_lerp", | ||||||
| 	"range_lerp", | 	"range_lerp", | ||||||
|  | @ -192,7 +192,7 @@ int VisualScriptBuiltinFunc::get_func_argument_count(BuiltinFunc p_func) { | ||||||
| 		case MATH_POSMOD: | 		case MATH_POSMOD: | ||||||
| 		case MATH_POW: | 		case MATH_POW: | ||||||
| 		case MATH_EASE: | 		case MATH_EASE: | ||||||
| 		case MATH_STEPIFY: | 		case MATH_SNAPPED: | ||||||
| 		case MATH_RANDF_RANGE: | 		case MATH_RANDF_RANGE: | ||||||
| 		case MATH_RANDI_RANGE: | 		case MATH_RANDI_RANGE: | ||||||
| 		case MATH_POLAR2CARTESIAN: | 		case MATH_POLAR2CARTESIAN: | ||||||
|  | @ -309,7 +309,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const | ||||||
| 		case MATH_STEP_DECIMALS: { | 		case MATH_STEP_DECIMALS: { | ||||||
| 			return PropertyInfo(Variant::FLOAT, "step"); | 			return PropertyInfo(Variant::FLOAT, "step"); | ||||||
| 		} break; | 		} break; | ||||||
| 		case MATH_STEPIFY: { | 		case MATH_SNAPPED: { | ||||||
| 			if (p_idx == 0) { | 			if (p_idx == 0) { | ||||||
| 				return PropertyInfo(Variant::FLOAT, "s"); | 				return PropertyInfo(Variant::FLOAT, "s"); | ||||||
| 			} else { | 			} else { | ||||||
|  | @ -537,7 +537,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_output_value_port_info(int p_idx) cons | ||||||
| 		case MATH_STEP_DECIMALS: { | 		case MATH_STEP_DECIMALS: { | ||||||
| 			t = Variant::INT; | 			t = Variant::INT; | ||||||
| 		} break; | 		} break; | ||||||
| 		case MATH_STEPIFY: | 		case MATH_SNAPPED: | ||||||
| 		case MATH_LERP: | 		case MATH_LERP: | ||||||
| 		case MATH_LERP_ANGLE: | 		case MATH_LERP_ANGLE: | ||||||
| 		case MATH_INVERSE_LERP: | 		case MATH_INVERSE_LERP: | ||||||
|  | @ -805,10 +805,10 @@ void VisualScriptBuiltinFunc::exec_func(BuiltinFunc p_func, const Variant **p_in | ||||||
| 			VALIDATE_ARG_NUM(0); | 			VALIDATE_ARG_NUM(0); | ||||||
| 			*r_return = Math::step_decimals((double)*p_inputs[0]); | 			*r_return = Math::step_decimals((double)*p_inputs[0]); | ||||||
| 		} break; | 		} break; | ||||||
| 		case VisualScriptBuiltinFunc::MATH_STEPIFY: { | 		case VisualScriptBuiltinFunc::MATH_SNAPPED: { | ||||||
| 			VALIDATE_ARG_NUM(0); | 			VALIDATE_ARG_NUM(0); | ||||||
| 			VALIDATE_ARG_NUM(1); | 			VALIDATE_ARG_NUM(1); | ||||||
| 			*r_return = Math::stepify((double)*p_inputs[0], (double)*p_inputs[1]); | 			*r_return = Math::snapped((double)*p_inputs[0], (double)*p_inputs[1]); | ||||||
| 		} break; | 		} break; | ||||||
| 		case VisualScriptBuiltinFunc::MATH_LERP: { | 		case VisualScriptBuiltinFunc::MATH_LERP: { | ||||||
| 			VALIDATE_ARG_NUM(0); | 			VALIDATE_ARG_NUM(0); | ||||||
|  | @ -1254,7 +1254,7 @@ void VisualScriptBuiltinFunc::_bind_methods() { | ||||||
| 	BIND_ENUM_CONSTANT(MATH_ISINF); | 	BIND_ENUM_CONSTANT(MATH_ISINF); | ||||||
| 	BIND_ENUM_CONSTANT(MATH_EASE); | 	BIND_ENUM_CONSTANT(MATH_EASE); | ||||||
| 	BIND_ENUM_CONSTANT(MATH_STEP_DECIMALS); | 	BIND_ENUM_CONSTANT(MATH_STEP_DECIMALS); | ||||||
| 	BIND_ENUM_CONSTANT(MATH_STEPIFY); | 	BIND_ENUM_CONSTANT(MATH_SNAPPED); | ||||||
| 	BIND_ENUM_CONSTANT(MATH_LERP); | 	BIND_ENUM_CONSTANT(MATH_LERP); | ||||||
| 	BIND_ENUM_CONSTANT(MATH_INVERSE_LERP); | 	BIND_ENUM_CONSTANT(MATH_INVERSE_LERP); | ||||||
| 	BIND_ENUM_CONSTANT(MATH_RANGE_LERP); | 	BIND_ENUM_CONSTANT(MATH_RANGE_LERP); | ||||||
|  | @ -1344,7 +1344,7 @@ void register_visual_script_builtin_func_node() { | ||||||
| 
 | 
 | ||||||
| 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/ease", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_EASE>); | 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/ease", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_EASE>); | ||||||
| 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/step_decimals", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_STEP_DECIMALS>); | 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/step_decimals", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_STEP_DECIMALS>); | ||||||
| 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/stepify", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_STEPIFY>); | 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/snapped", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_SNAPPED>); | ||||||
| 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/lerp", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_LERP>); | 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/lerp", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_LERP>); | ||||||
| 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/lerp_angle", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_LERP_ANGLE>); | 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/lerp_angle", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_LERP_ANGLE>); | ||||||
| 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/inverse_lerp", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_INVERSE_LERP>); | 	VisualScriptLanguage::singleton->add_register_func("functions/built_in/inverse_lerp", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_INVERSE_LERP>); | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ public: | ||||||
| 		MATH_ISINF, | 		MATH_ISINF, | ||||||
| 		MATH_EASE, | 		MATH_EASE, | ||||||
| 		MATH_STEP_DECIMALS, | 		MATH_STEP_DECIMALS, | ||||||
| 		MATH_STEPIFY, | 		MATH_SNAPPED, | ||||||
| 		MATH_LERP, | 		MATH_LERP, | ||||||
| 		MATH_INVERSE_LERP, | 		MATH_INVERSE_LERP, | ||||||
| 		MATH_RANGE_LERP, | 		MATH_RANGE_LERP, | ||||||
|  |  | ||||||
|  | @ -237,7 +237,7 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { | ||||||
| 		// Snap to "round" coordinates if holding Ctrl.
 | 		// Snap to "round" coordinates if holding Ctrl.
 | ||||||
| 		// Be more precise if holding Shift as well
 | 		// Be more precise if holding Shift as well
 | ||||||
| 		if (mm->get_control()) { | 		if (mm->get_control()) { | ||||||
| 			newofs = Math::stepify(newofs, mm->get_shift() ? 0.025 : 0.1); | 			newofs = Math::snapped(newofs, mm->get_shift() ? 0.025 : 0.1); | ||||||
| 		} else if (mm->get_shift()) { | 		} else if (mm->get_shift()) { | ||||||
| 			// Snap to nearest point if holding just Shift
 | 			// Snap to nearest point if holding just Shift
 | ||||||
| 			const float snap_threshold = 0.03; | 			const float snap_threshold = 0.03; | ||||||
|  |  | ||||||
|  | @ -320,7 +320,7 @@ int TreeItem::get_icon_max_width(int p_column) const { | ||||||
| void TreeItem::set_range(int p_column, double p_value) { | void TreeItem::set_range(int p_column, double p_value) { | ||||||
| 	ERR_FAIL_INDEX(p_column, cells.size()); | 	ERR_FAIL_INDEX(p_column, cells.size()); | ||||||
| 	if (cells[p_column].step > 0) { | 	if (cells[p_column].step > 0) { | ||||||
| 		p_value = Math::stepify(p_value, cells[p_column].step); | 		p_value = Math::snapped(p_value, cells[p_column].step); | ||||||
| 	} | 	} | ||||||
| 	if (p_value < cells[p_column].min) { | 	if (p_value < cells[p_column].min) { | ||||||
| 		p_value = cells[p_column].min; | 		p_value = cells[p_column].min; | ||||||
|  | @ -2191,7 +2191,7 @@ void Tree::_text_editor_enter(String p_text) { | ||||||
| 		case TreeItem::CELL_MODE_RANGE: { | 		case TreeItem::CELL_MODE_RANGE: { | ||||||
| 			c.val = p_text.to_float(); | 			c.val = p_text.to_float(); | ||||||
| 			if (c.step > 0) { | 			if (c.step > 0) { | ||||||
| 				c.val = Math::stepify(c.val, c.step); | 				c.val = Math::snapped(c.val, c.step); | ||||||
| 			} | 			} | ||||||
| 			if (c.val < c.min) { | 			if (c.val < c.min) { | ||||||
| 				c.val = c.min; | 				c.val = c.min; | ||||||
|  |  | ||||||
|  | @ -1674,10 +1674,10 @@ void RendererSceneCull::_light_instance_setup_directional_shadow(int p_shadow_in | ||||||
| 
 | 
 | ||||||
| 				real_t unit = radius * 2.0 / texture_size; | 				real_t unit = radius * 2.0 / texture_size; | ||||||
| 
 | 
 | ||||||
| 				x_max_cam = Math::stepify(x_max_cam, unit); | 				x_max_cam = Math::snapped(x_max_cam, unit); | ||||||
| 				x_min_cam = Math::stepify(x_min_cam, unit); | 				x_min_cam = Math::snapped(x_min_cam, unit); | ||||||
| 				y_max_cam = Math::stepify(y_max_cam, unit); | 				y_max_cam = Math::snapped(y_max_cam, unit); | ||||||
| 				y_min_cam = Math::stepify(y_min_cam, unit); | 				y_min_cam = Math::snapped(y_min_cam, unit); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -173,11 +173,11 @@ TEST_CASE("[Expression] Built-in functions") { | ||||||
| 			"`sqrt(pow(3, 2) + pow(4, 2))` should return the expected result."); | 			"`sqrt(pow(3, 2) + pow(4, 2))` should return the expected result."); | ||||||
| 
 | 
 | ||||||
| 	CHECK_MESSAGE( | 	CHECK_MESSAGE( | ||||||
| 			expression.parse("stepify(sin(0.5), 0.01)") == OK, | 			expression.parse("snapped(sin(0.5), 0.01)") == OK, | ||||||
| 			"The expression should parse successfully."); | 			"The expression should parse successfully."); | ||||||
| 	CHECK_MESSAGE( | 	CHECK_MESSAGE( | ||||||
| 			Math::is_equal_approx(float(expression.execute()), 0.48), | 			Math::is_equal_approx(float(expression.execute()), 0.48), | ||||||
| 			"`stepify(sin(0.5), 0.01)` should return the expected result."); | 			"`snapped(sin(0.5), 0.01)` should return the expected result."); | ||||||
| 
 | 
 | ||||||
| 	CHECK_MESSAGE( | 	CHECK_MESSAGE( | ||||||
| 			expression.parse("pow(2.0, -2500)") == OK, | 			expression.parse("pow(2.0, -2500)") == OK, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Marcel Admiraal
						Marcel Admiraal