Skip to content
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: Rectangle (Issue #909) #1005

Merged
merged 58 commits into from
Sep 2, 2024
Merged

Conversation

merakulix
Copy link
Contributor

Description

Implementing the rectangle profile type as an element of the CPACS standard profile type covers one part of issue #909 on parametric profile types.
This approach is based on point lists (std::vector<gp_Pnt>) for approximation of curves, since the lofting algorithms don't support rational B-Splines yet.

Changes in tiglcommonfunctions.* :

Added new global functions:
- BuildWireRectangle(... , ): Builds the wire which is needed to build profiles. Uses these newly implemented functions:
- ApproximateArcOfCircleToRationalBSpline(... , ): Approximation to a rational B-Spline via point list was needed, since the lofting algorithm doesn't support rational B-Splines yet
- Linspace(... , ): Useful function when building point lists

Changes in CCPACSFuselageProfile.* :

Added new member function

  • BuildWiresRectangle(...,): - uses buildWireRactangle(..,) from tiglcommonfunctions.*

Changed member function:

  • BuildWires(...): Added conditional statement to choose right method for building the wire, depending on profile type

How Has This Been Tested?

Added Unit Tests:

  • testFuselageStandardProfileRectangle.cpp:
    • added testfiles that define a fuselage with mixed profiles:
      • simpletest_standard_profile_rectangle_circle_guides.cpacs.xml
      • simpletest_standard_profile_rectangle_circle_guides.cpacs.xml

a circle profile with kinks and a rectangle profile with and without corner radius, as shown in the image below

grafik
grafik

circle profile, rectangle profile with and without corner radius given, and guide curves, as shown in the images below

grafik
grafik

Checklist:

  • [x ] A test for the new functionality was added.
  • [x ] All tests run without failure.
  • [x ] The new code complies with the TiGL style guide.
  • New classes have been added to the Python interface.
  • API changes were documented properly in tigl.h.

Copy link

codecov bot commented Jun 3, 2024

Codecov Report

Attention: Patch coverage is 97.54601% with 4 lines in your changes missing coverage. Please review.

Project coverage is 70.19%. Comparing base (a334bd3) to head (571a2ef).
Report is 73 commits behind head on master.

Files with missing lines Patch % Lines
src/fuselage/CCPACSFuselageProfile.cpp 94.73% 4 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1005      +/-   ##
==========================================
+ Coverage   70.03%   70.19%   +0.16%     
==========================================
  Files         301      301              
  Lines       24312    24429     +117     
==========================================
+ Hits        17026    17148     +122     
+ Misses       7286     7281       -5     
Flag Coverage Δ
unittests 70.19% <97.54%> (+0.16%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/common/tiglcommonfunctions.cpp 76.84% <100.00%> (+1.92%) ⬆️
src/common/tiglcommonfunctions.h 100.00% <ø> (ø)
src/geometry/CTiglPointsToBSplineInterpolation.cpp 90.76% <100.00%> (+0.60%) ⬆️
src/fuselage/CCPACSFuselageProfile.cpp 83.22% <94.73%> (+3.06%) ⬆️

... and 5 files with indirect coverage changes

@merakulix
Copy link
Contributor Author

I updated the code to generate the profiles using the CFunctionToBSpline function. On my local machine unit-and integration tests ran successful.

Copy link
Contributor

@joergbrech joergbrech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @merakulix! This looks really good! Just one minor cosmetic change and this is good to merge

src/common/tiglcommonfunctions.cpp Outdated Show resolved Hide resolved
@joergbrech joergbrech merged commit f6f1e4c into master Sep 2, 2024
17 checks passed
@joergbrech joergbrech deleted the rectangle branch September 2, 2024 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants