Change Ellipse
representation and improve helpers
#11435
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
Currently, the
Ellipse
primitive is represented by ahalf_width
andhalf_height
. To improve consistency (similarly to #11434), it might make more sense to use aVec2
half_size
instead.Alternatively, to make the elliptical nature clearer, the properties could also be called
radius_x
andradius_y
.Secondly,
Ellipse::new
currently takes a full width and height instead of two radii. I would expect it to take the half-width and half-height because ellipses and circles are almost always defined using radii. I wouldn't expectCircle::new
to take a diameter (if we had that method).Solution
Change
Ellipse
to store ahalf_size
andnew
to take the half-width and half-height.I also added a
from_size
method similar toRectangle::from_size
, and added thesemi_minor
andsemi_major
helpers to get the semi-minor/major radius.