diff options
author | Craigory V Coppola <craigorycoppola@gmail.com> | 2019-06-26 22:19:52 -0500 |
---|---|---|
committer | AgentEnder <craigorycoppola@gmail.com> | 2019-06-29 02:04:13 -0500 |
commit | dc9659a9bf11e151098aed94ce5f6382f2dcca0d (patch) | |
tree | e547ab9947b540dedc17e617b5edba1ff10b936f | |
parent | 43a69694706ee5084c154aafb4377e10a2df1ed7 (diff) |
AStar get_closest_point/get_closest_position_in_segment enabled consideration
-rw-r--r-- | core/math/a_star.cpp | 6 |
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, |