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

Open
wants to merge 50 commits into
base: master
Choose a base branch
from

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
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 a lot @merakulix! The images look very impressive! 😃 I have a few comments, see below.

src/common/tiglcommonfunctions.cpp Outdated Show resolved Hide resolved
src/common/tiglcommonfunctions.cpp Outdated Show resolved Hide resolved
src/common/tiglcommonfunctions.cpp Outdated Show resolved Hide resolved
src/common/tiglcommonfunctions.h Outdated Show resolved Hide resolved
src/common/tiglcommonfunctions.h Outdated Show resolved Hide resolved
src/geometry/CTiglPointsToBSplineInterpolation.cpp Outdated Show resolved Hide resolved
src/fuselage/CCPACSFuselageProfiles.cpp Outdated Show resolved Hide resolved
tests/unittests/testFuselageStandardProfileRectangle.cpp Outdated Show resolved Hide resolved
tests/unittests/testFuselageStandardProfileRectangle.cpp Outdated Show resolved Hide resolved
Co-authored-by: Jan Kleinert <jan.kleinert@dlr.de>
Copy link

codecov bot commented Jun 3, 2024

Codecov Report

Attention: Patch coverage is 95.65217% with 7 lines in your changes missing coverage. Please review.

Project coverage is 70.05%. Comparing base (1908230) to head (0fe2758).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1005      +/-   ##
==========================================
+ Coverage   69.91%   70.05%   +0.14%     
==========================================
  Files         299      299              
  Lines       24244    24352     +108     
==========================================
+ Hits        16949    17059     +110     
+ Misses       7295     7293       -2     
Flag Coverage Δ
unittests 70.05% <95.65%> (+0.14%) ⬆️

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

Files Coverage Δ
src/common/tiglcommonfunctions.h 100.00% <ø> (ø)
src/geometry/CTiglPointsToBSplineInterpolation.cpp 90.76% <100.00%> (+0.60%) ⬆️
src/common/tiglcommonfunctions.cpp 76.52% <98.70%> (+1.81%) ⬆️
src/fuselage/CCPACSFuselageProfile.cpp 81.87% <92.10%> (+1.72%) ⬆️

... and 2 files with indirect coverage changes

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.

None yet

3 participants