Coding - Geom package Copy optimisation#645
Merged
dpasukhi merged 7 commits intoOpen-Cascade-SAS:IRfrom Jul 26, 2025
Merged
Conversation
Implement copy constructors for Geom_BSplineCurve, Geom_BSplineSurface, Geom_BezierCurve, Geom_OffsetCurve, and Geom_OffsetSurface for optimized copying without validation.
…eom_BezierSurface
…d Geom2d_OffsetCurve; update Copy methods for optimized copying
…e, Geom_BSplineCurve, and Geom_BSplineSurface by eliminating unnecessary null checks for flatknots, weights, ufknots, and vfknots.
…ce, Geom_BezierCurve, and Geom_BezierSurface by removing unnecessary null checks for weights.
There was a problem hiding this comment.
Pull Request Overview
This PR introduces optimized copy constructors for geometry classes in the Geom package to improve copying performance without validation overhead. The optimization eliminates redundant validation when copying already-validated geometric objects by implementing dedicated copy constructors that perform deep copying of internal data structures.
- Adds copy constructors for 9 geometry classes (Bezier/BSpline curves and surfaces, offset curves and surfaces in both 2D and 3D)
- Updates Copy() methods to use the new copy constructors instead of recreating objects through standard constructors
- Includes comprehensive test coverage for all new copy constructors
Reviewed Changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| Geom_OffsetSurface.hxx/cxx | Adds copy constructor for 3D offset surfaces |
| Geom_OffsetCurve.hxx/cxx | Adds copy constructor for 3D offset curves |
| Geom_BezierSurface.hxx/cxx | Adds copy constructor for Bezier surfaces |
| Geom_BezierCurve.hxx/cxx | Adds copy constructor for Bezier curves |
| Geom_BSplineSurface.hxx/cxx | Adds copy constructor for B-spline surfaces |
| Geom_BSplineCurve.hxx/cxx | Adds copy constructor for B-spline curves |
| Geom2d_OffsetCurve.hxx/cxx | Adds copy constructor for 2D offset curves |
| Geom2d_BezierCurve.hxx/cxx | Adds copy constructor for 2D Bezier curves |
| Geom2d_BSplineCurve.hxx/cxx | Adds copy constructor for 2D B-spline curves |
| Test files | Comprehensive unit tests for all new copy constructors |
…SplineCurve, Geom2d_BezierCurve, Geom_BSplineCurve, Geom_BSplineSurface, and Geom_BezierSurface
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Uh oh!
There was an error while loading. Please reload this page.