summaryrefslogtreecommitdiffstats
path: root/scene/resources/curve.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/resources/curve.cpp')
-rw-r--r--scene/resources/curve.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/scene/resources/curve.cpp b/scene/resources/curve.cpp
index d2aabf7d5c..2b54acef75 100644
--- a/scene/resources/curve.cpp
+++ b/scene/resources/curve.cpp
@@ -527,7 +527,7 @@ bool Curve::_set(const StringName &p_name, const Variant &p_value) {
Vector<String> components = String(p_name).split("/", true, 2);
if (components.size() >= 2 && components[0].begins_with("point_") && components[0].trim_prefix("point_").is_valid_int()) {
int point_index = components[0].trim_prefix("point_").to_int();
- String property = components[1];
+ const String &property = components[1];
if (property == "position") {
Vector2 position = p_value.operator Vector2();
set_point_offset(point_index, position.x);
@@ -556,7 +556,7 @@ bool Curve::_get(const StringName &p_name, Variant &r_ret) const {
Vector<String> components = String(p_name).split("/", true, 2);
if (components.size() >= 2 && components[0].begins_with("point_") && components[0].trim_prefix("point_").is_valid_int()) {
int point_index = components[0].trim_prefix("point_").to_int();
- String property = components[1];
+ const String &property = components[1];
if (property == "position") {
r_ret = get_point_position(point_index);
return true;
@@ -977,7 +977,7 @@ Transform2D Curve2D::_sample_posture(Interval p_interval) const {
const Vector2 forward = forward_begin.slerp(forward_end, frac).normalized();
const Vector2 side = Vector2(-forward.y, forward.x);
- return Transform2D(side, forward, Vector2(0.0, 0.0));
+ return Transform2D(forward, side, Vector2(0.0, 0.0));
}
Vector2 Curve2D::sample_baked(real_t p_offset, bool p_cubic) const {
@@ -1046,6 +1046,10 @@ real_t Curve2D::get_bake_interval() const {
return bake_interval;
}
+PackedVector2Array Curve2D::get_points() const {
+ return _get_data()["points"];
+}
+
Vector2 Curve2D::get_closest_point(const Vector2 &p_to_point) const {
// Brute force method.
@@ -1255,7 +1259,7 @@ bool Curve2D::_set(const StringName &p_name, const Variant &p_value) {
Vector<String> components = String(p_name).split("/", true, 2);
if (components.size() >= 2 && components[0].begins_with("point_") && components[0].trim_prefix("point_").is_valid_int()) {
int point_index = components[0].trim_prefix("point_").to_int();
- String property = components[1];
+ const String &property = components[1];
if (property == "position") {
set_point_position(point_index, p_value);
return true;
@@ -1274,7 +1278,7 @@ bool Curve2D::_get(const StringName &p_name, Variant &r_ret) const {
Vector<String> components = String(p_name).split("/", true, 2);
if (components.size() >= 2 && components[0].begins_with("point_") && components[0].trim_prefix("point_").is_valid_int()) {
int point_index = components[0].trim_prefix("point_").to_int();
- String property = components[1];
+ const String &property = components[1];
if (property == "position") {
r_ret = get_point_position(point_index);
return true;
@@ -2220,7 +2224,7 @@ bool Curve3D::_set(const StringName &p_name, const Variant &p_value) {
Vector<String> components = String(p_name).split("/", true, 2);
if (components.size() >= 2 && components[0].begins_with("point_") && components[0].trim_prefix("point_").is_valid_int()) {
int point_index = components[0].trim_prefix("point_").to_int();
- String property = components[1];
+ const String &property = components[1];
if (property == "position") {
set_point_position(point_index, p_value);
return true;
@@ -2242,7 +2246,7 @@ bool Curve3D::_get(const StringName &p_name, Variant &r_ret) const {
Vector<String> components = String(p_name).split("/", true, 2);
if (components.size() >= 2 && components[0].begins_with("point_") && components[0].trim_prefix("point_").is_valid_int()) {
int point_index = components[0].trim_prefix("point_").to_int();
- String property = components[1];
+ const String &property = components[1];
if (property == "position") {
r_ret = get_point_position(point_index);
return true;