summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraigory V Coppola <craigorycoppola@gmail.com>2019-06-26 22:19:52 -0500
committerAgentEnder <craigorycoppola@gmail.com>2019-06-29 02:04:13 -0500
commitdc9659a9bf11e151098aed94ce5f6382f2dcca0d (patch)
treee547ab9947b540dedc17e617b5edba1ff10b936f
parent43a69694706ee5084c154aafb4377e10a2df1ed7 (diff)
AStar get_closest_point/get_closest_position_in_segment enabled consideration
-rw-r--r--core/math/a_star.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp
index 7ce3824505..b61119d8df 100644
--- a/core/math/a_star.cpp
+++ b/core/math/a_star.cpp
@@ -216,6 +216,8 @@ int AStar::get_closest_point(const Vector3 &p_point) const {
for (const Map<int, Point *>::Element *E = points.front(); E; E = E->next()) {
+ if (!E->get()->enabled)
+ continue; //Disabled points should not be considered
real_t d = p_point.distance_squared_to(E->get()->pos);
if (closest_id < 0 || d < closest_dist) {
closest_dist = d;
@@ -234,6 +236,10 @@ Vector3 AStar::get_closest_position_in_segment(const Vector3 &p_point) const {
for (const Set<Segment>::Element *E = segments.front(); E; E = E->next()) {
+ if (!(E->get().from_point->enabled && E->get().to_point->enabled)) {
+ continue;
+ }
+
Vector3 segment[2] = {
E->get().from_point->pos,
E->get().to_point->pos,