-
Notifications
You must be signed in to change notification settings - Fork 14
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
Geometry_Engine: Add missing methods for ellipse #2999
Geometry_Engine: Add missing methods for ellipse #2999
Conversation
Fallback to line for very very extreme cases Use non-optimised trig version for extreme cases
Simply computing line intersecting the plane and plane of ellipse, and using line intersection algorithm
…andard ellipse equation, in local coordinates
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...and approval with text to make @BHoMBot happy 😉
@BHoMBot check compliance |
@IsakNaslundBh to confirm, the following actions are now queued:
|
@IsakNaslundBh to confirm, the following actions are now queued:
|
The check |
The check |
Tests passing locally, but failing on remote. The test data should be extensive enough even with the 5 entries failing on remote removed
@BHoMBot check unit-tests |
@IsakNaslundBh to confirm, the following actions are now queued:
There are 19 requests in the queue ahead of you. |
@IsakNaslundBh to confirm, the following actions are now queued:
|
The check |
The check |
Requesting dispensation for the null handling as the only method failing is a method returning a boolean, where both true and false can be valid returns, and expected valued, even for a crash. Reference this old issue: BHoM/admin#7 The only safe way to handle currently, until we support nullable primitives formally, is to just let it crash. |
The check |
FAO: @FraserGreenroyd The check they wish to have dispensation on is null-handling. If you are providing dispensation on this occasion, please reply with:
|
@BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. 11130365886 |
@FraserGreenroyd I have now provided a passing check on reference |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only changes since @pawelbaran approval have been to unit tests - approving on the basis that @pawelbaran approval is still valid.
@BHoMBot check ready-to-merge |
@FraserGreenroyd to confirm, the following actions are now queued:
|
Thanks @FraserGreenroyd :) |
Issues addressed by this PR
Closes #314
Adding all of the (relatively) low hanging methods mentioned in the issue.
Intentionally skipping:
For both of those cases I think the issue is fine to be closed and for those two cases to be handled separately.
Test files
Test file testing through general cases, and also attempting to find as many edge cases that I could think of.
Testing through ellipses of a wide range of aspect ratios and size.
Only real failure noted in the script is for some plane intersections for ellipse with ridiculous aspect ratio of 1 : 10 000 000, which is still close to correct. This failure seem to simply be a numerical tolerance issue, that I attempted to fix as much as possible, but could not figure out to get it better. Basically, the maths are correct, but for some of these extreme cases, the method might give slightly erroneous results for the intersection methods. Overall, though, they are working much better than the built in rhino versions.EDIT fixed the plane intersection - should be fine now
https://burohappold.sharepoint.com/:f:/s/BHoM/EkzmvWVps5FOnYoqdle_gBMBCwtmchnT5Qp6iWCbWFTivg?e=CCgMBX
Changelog
Additional comments
Have unit tests ready to be pushed based on all the tests preformed in the testfile. Will need to update existing test datasets, so holding of pushing until review is done, to make sure I only have to push them up once.