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

dynamic spline core #62

Merged
merged 228 commits into from
Nov 23, 2022
Merged

dynamic spline core #62

merged 228 commits into from
Nov 23, 2022

Conversation

j042
Copy link
Member

@j042 j042 commented Oct 6, 2022

Addressed issues

  • Too many types for backend splines in cpp

Description

Instead of making every single classes available, we define a template-free base spline type. Then, we inherit from both base and third party splines. Can dynamically create third party splines, but return, for example, a shared pointer of the base spline. Here, at base spline, we've defined scalar raw-ptr based operations. That way it is compatible with anything.

Frontend changes

til now from this PR alias to old version
Spline.elevate_degree Spline.elevate_degrees yes
Spline.reduce_degree Spline.reduce_degrees yes
Spline.basis_fuctions Spline.basis_and_support no
Spline.nearest_pcoords Spline.proximities no
Spline.permute_parametric_axes spline.permute_parametric_axes no (member function to module function)
splinepy._splinepy splinepy.splinepy_core no (new core module name)

Changes

  • tracked arrays for spline properties
  • c_spline based init
  • more bezier operations (need tests)
  • core spline info checks
  • proximities queries return more info
  • proximities for bezier splines
  • ND operations form bezier splines
  • multithread executions for queries
  • nicer logging
  • NAME_TO_TYPE
  • global vars
  • multi patch export using splinelib (need tests)
  • formatting

Up next

  • CD
  • unittests
  • gustaf updates
  • cmake tests
  • explicit template instantiation for SplineLib and BezMan (maybe)

Copy link
Collaborator

@jzwar jzwar left a comment

Choose a reason for hiding this comment

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

Although this is a very shallow review (I am sorry), this looks very impressive. Love the tracked array functionality and also how much effort you gave to unify the interfaces <3

Very nice work!!!
LGTM

cpp/splinepy/splines/rational_bezier.hpp Show resolved Hide resolved
cpp/splinepy/utils/print.hpp Show resolved Hide resolved
splinepy/utils/data.py Outdated Show resolved Hide resolved
splinepy/io/irit.py Show resolved Hide resolved
cpp/splinepy/py/splinepy_core.cpp Outdated Show resolved Hide resolved
j042 and others added 3 commits November 23, 2022 14:24
Co-authored-by: jzwar <63095162+jzwar@users.noreply.github.com>
Copy link
Member Author

@j042 j042 left a comment

Choose a reason for hiding this comment

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

v

Copy link
Collaborator

@jzwar jzwar left a comment

Choose a reason for hiding this comment

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

LGTM

@j042 j042 merged commit bf5bb5e into main Nov 23, 2022
@j042 j042 mentioned this pull request Nov 23, 2022
@j042 j042 deleted the lets-inherit branch November 23, 2022 15:06
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

2 participants