Preserve winding order for transformed tiles' navigation polygons
This commit is contained in:
parent
64bc9a25a3
commit
5a275eae38
4 changed files with 26 additions and 31 deletions
|
|
@ -3565,16 +3565,7 @@ void TileMapLayer::navmesh_parse_source_geometry(const Ref<NavigationPolygon> &p
|
|||
continue;
|
||||
}
|
||||
|
||||
Vector<Vector2> traversable_outline;
|
||||
traversable_outline.resize(navigation_polygon_outline.size());
|
||||
|
||||
const Vector2 *navigation_polygon_outline_ptr = navigation_polygon_outline.ptr();
|
||||
Vector2 *traversable_outline_ptrw = traversable_outline.ptrw();
|
||||
|
||||
for (int traversable_outline_index = 0; traversable_outline_index < traversable_outline.size(); traversable_outline_index++) {
|
||||
traversable_outline_ptrw[traversable_outline_index] = tile_transform_offset.xform(navigation_polygon_outline_ptr[traversable_outline_index]);
|
||||
}
|
||||
|
||||
Vector<Vector2> traversable_outline = tile_transform_offset.xform(navigation_polygon_outline);
|
||||
p_source_geometry_data->_add_traversable_outline(traversable_outline);
|
||||
}
|
||||
}
|
||||
|
|
@ -3598,16 +3589,7 @@ void TileMapLayer::navmesh_parse_source_geometry(const Ref<NavigationPolygon> &p
|
|||
collision_polygon_points = TileData::get_transformed_vertices(collision_polygon_points, flip_h, flip_v, transpose);
|
||||
}
|
||||
|
||||
Vector<Vector2> obstruction_outline;
|
||||
obstruction_outline.resize(collision_polygon_points.size());
|
||||
|
||||
const Vector2 *collision_polygon_points_ptr = collision_polygon_points.ptr();
|
||||
Vector2 *obstruction_outline_ptrw = obstruction_outline.ptrw();
|
||||
|
||||
for (int obstruction_outline_index = 0; obstruction_outline_index < obstruction_outline.size(); obstruction_outline_index++) {
|
||||
obstruction_outline_ptrw[obstruction_outline_index] = tile_transform_offset.xform(collision_polygon_points_ptr[obstruction_outline_index]);
|
||||
}
|
||||
|
||||
Vector<Vector2> obstruction_outline = tile_transform_offset.xform(collision_polygon_points);
|
||||
p_source_geometry_data->_add_obstruction_outline(obstruction_outline);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue