-
Notifications
You must be signed in to change notification settings - Fork 668
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce dependence on Boost.Geometry #8128
Comments
Here are the current benchmark results with 500 randomly generated polygons with 9 vertices:
I will need to work on speeding up (especially for |
Latest benchmark results with 500 randomly generated polygons with 9 vertices:
Now all functions except |
At this moment, the implementation assumes that polygons are convex. |
@mraditya01 is implementing a triangulation algorithm which allows to split any concave polygon into a set of convex polygons (triangles). This will allow using convex-only algorithms with any type of polygons. Of course the effect on performance will need to properly be investigated, and in some case it may be better to implement generic algorithms rather than use triangulation+convex algorithms. |
Now that @mraditya01 's #8609 is merged, I'll begin working on supporting non-convex polygons. But first let me re-implement the triangulation algorithm without using Boost.Geometry. |
I asked @mraditya01 to clean up the code of triangulation algorithm first. I'm working on adding |
I added |
#8965 enabled the triangulation function to be used with |
I finished working on #8974, but it cannot be merged since it is not fully tested yet. By #7778, #8592 and #8974, the following classes will be added:
Note:
In addition, the following functions will be available without dependence on Boost.Geometry:
Note:
|
Below are not implemented yet:
|
Checklist
Description
Currently, Autoware relies on Boost.Geometry for most geometric calculations. However, Boost's generic implementation is considered to extend the build time.
The goal of this task is to reduce the build time by minimizing (or eliminating) dependency on Boost.Geometry.
Purpose
This task aims to shorten the build time by reducing dependency on Boost.Geometry. This involves adding utility functions that compile independently of Boost and omitting unnecessary features for Autoware to improve function execution efficiency.
Possible approaches
The following functions are planned to be replaced:
area()
@mitukou1109convex_hull()
@mitukou1109covered_by()
@mitukou1109disjoint()
@mitukou1109distance()
@mitukou1109intersects()
@mitukou1109within()
@mitukou1109difference()
@mraditya01union_()
@mraditya01envelope()
@mitukou1109simplify()
@mitukou1109buffer()
@mitukou1109Definition of done
The text was updated successfully, but these errors were encountered: