Browse Source

AStar get_closest_point/get_closest_position_in_segment enabled consideration

Craigory V Coppola 6 years ago
parent
commit
dc9659a9bf
1 changed files with 6 additions and 0 deletions
  1. 6 0
      core/math/a_star.cpp

+ 6 - 0
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,