-
Notifications
You must be signed in to change notification settings - Fork 62
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
Implemented Fuselage Profile Type: Superellipse ( #1016) #1021
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1021 +/- ##
==========================================
+ Coverage 69.36% 69.47% +0.11%
==========================================
Files 301 301
Lines 26785 26889 +104
==========================================
+ Hits 18579 18681 +102
- Misses 8206 8208 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
|
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.
Just some minor changes. I checked your super ellipse points using matplotlib and they seem fine. The blue dots are the sampled points using your formulas, the green dots are the parametric form as provided on the Wikipedia page for superellipses.
The fuselages look awesome by the way :D |
Thanks @merakulix 💐 |
Description
With the superellipse profile type, the CPACS standard profile type is now fully implemented.
The profile curves are generated using the functionality of the CFunctionToBSpline class with an implementation of the MathFunc3d interface.
As with the rectangle profile, this functionality means that profile curves require fewer knots than building a profile from point lists.
See also Issues #1016, #909. #1005 covered the rectangle type.
Changes in tiglcommonfunctions.* :
Added new global function that builds the wire which is needed to build profiles:
Uses the implementation of the MathFunc3d interface in an anonymos namespace:
Changes in CCPACSFuselageProfile.* :
Added new member function that uses buildWireSuperellipse(..,) from tiglcommonfunctions.*:
Changed member function:
Added conditional statement to choose right method for building the wire, depending on profile type.
How Has This Been Tested?
The implementation hast been tested in Unit Tests, by creating test files, that include different test profiles, checking also the combination of different profile types with different parameters (e.g. hyper- and hypoellipses), guide curves and kinks:
new testfile:
used testdata:
Screenshots, that help to understand the changes:
Several ways to combine rectangular/superelliptic profile with guide curves or a profile with kinks:
Checklist: