Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
043e8a8
Squashed commit of the following:
jcs15c Sep 11, 2025
1886a51
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 11, 2025
b3c97e2
Fix style
jcs15c Sep 11, 2025
ac8b630
Merge branch 'feature/spainhour/winding_number_memoization' of https:…
jcs15c Sep 11, 2025
c205acc
Better comments and validation
jcs15c Sep 12, 2025
6603c32
Initial test of 2D memoization
jcs15c Sep 12, 2025
fe4d1ff
Add forgotten about fix for disks
jcs15c Sep 12, 2025
0e96f6a
Consider memoized approxigon version
jcs15c Sep 12, 2025
de5eb82
Add 2D memoization interface
jcs15c Sep 13, 2025
fcf2ea7
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 15, 2025
d8493b9
Remove early return
jcs15c Sep 15, 2025
fc061cc
Fix weird old merge issues
jcs15c Sep 15, 2025
1be2bf1
Change class permissions
jcs15c Sep 15, 2025
47d7cc4
Fix clang errors
jcs15c Sep 15, 2025
2f3a67b
Fix a bug with cast direction selection for disks
jcs15c Sep 15, 2025
3e5c726
Fix copy paste error, refactor clipDisk
jcs15c Sep 16, 2025
1b65c25
Revert some stuff to make fewer maps in memory
jcs15c Sep 16, 2025
8344a67
Add more forward declarations
jcs15c Sep 16, 2025
4c5dab5
Merge branch 'feature/spainhour/winding_number_memoization' of https:…
jcs15c Sep 16, 2025
b10a54c
Fix comments, re-add old method for validation
jcs15c Sep 16, 2025
7391f32
Revert change, add control polygon check, comments
jcs15c Sep 16, 2025
6b3bce2
Move memoization content to a different detail file
jcs15c Sep 19, 2025
d326460
Fix some interfaces
jcs15c Sep 19, 2025
a510bd8
Fix a lingering bug
jcs15c Sep 19, 2025
056d69f
Fix cmakelists
jcs15c Sep 19, 2025
5e25f57
Fix some more bugs
jcs15c Sep 19, 2025
752324a
Merge branch 'feature/spainhour/winding_number_memoization' of https:…
jcs15c Sep 19, 2025
37a6312
Fix guard on MFEM dependent winding number methods
jcs15c Sep 19, 2025
fbc3051
Address some reviewer comments
jcs15c Sep 22, 2025
dd916e0
Fix some erroneous template parameters
jcs15c Sep 22, 2025
9a9f712
Put trimmed Bezier extraction in dedicated function
jcs15c Sep 22, 2025
fc7ed32
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 22, 2025
2db7eaf
Update quest example
jcs15c Sep 22, 2025
9bf6abc
Update many comments for clarity
jcs15c Sep 22, 2025
19ab6cd
Fix some erroneous variables
jcs15c Sep 22, 2025
941346d
Fix another unused variable
jcs15c Sep 22, 2025
07e375a
Fix broken loops
jcs15c Sep 23, 2025
1c2a903
Revert some changes
jcs15c Sep 23, 2025
69fd65d
Fix a diskSplit parameter bug
jcs15c Sep 23, 2025
f55d0ce
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 23, 2025
b2b38ed
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 24, 2025
0b96623
Restore the embarrassingly missing file
jcs15c Sep 25, 2025
a3338b1
Update release notes
jcs15c Sep 25, 2025
1a16b5b
Merge branch 'feature/spainhour/winding_number_memoization' of https:…
jcs15c Sep 25, 2025
90e8257
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 25, 2025
e2742a1
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 28, 2025
66862cb
Merge branch 'develop' into feature/spainhour/winding_number_memoization
jcs15c Sep 30, 2025
921eadd
Fix many doxygen comments
jcs15c Sep 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/axom/primal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ set( primal_headers
operators/detail/intersect_impl.hpp
operators/detail/intersect_ray_impl.hpp
operators/detail/winding_number_2d_impl.hpp
operators/detail/winding_number_2d_memoization.hpp
operators/detail/winding_number_3d_impl.hpp
operators/detail/winding_number_3d_memoization.hpp

## utils
utils/ZipIndexable.hpp
Expand Down
16 changes: 16 additions & 0 deletions src/axom/primal/geometry/NURBSCurve.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "axom/primal/geometry/OrientedBoundingBox.hpp"

#include "axom/primal/operators/squared_distance.hpp"
#include "axom/primal/operators/is_convex.hpp"

#include <vector>
#include <ostream>
Expand Down Expand Up @@ -676,6 +677,8 @@ class NURBSCurve
/// \brief Returns the number of knots in the NURBS Curve
axom::IndexType getNumKnots() const { return m_knotvec.getNumKnots(); }

auto getNumKnotSpans() const { return m_knotvec.getNumKnotSpans(); }

/// \brief Normalize the knot vector to the span of [0, 1]
void normalize() { m_knotvec.normalize(); }

Expand Down Expand Up @@ -1237,6 +1240,19 @@ class NURBSCurve
return true;
}

/*!
* \brief Splits a NURBS curve into two curves at the middle parameter value
*
* \param [out] n1 First output NURBS curve
* \param [out] n2 Second output NURBS curve
* \param [in] normalizeParameters Whether to normalize the output curves
*/
void bisect(NURBSCurve<T, NDIMS>& n1, NURBSCurve<T, NDIMS>& n2, bool normalizeParameters = false) const
{
auto mid_t = 0.5 * (getMinKnot() + getMaxKnot());
split(mid_t, n1, n2, normalizeParameters);
}

/*!
* \brief Splits a NURBS curve (at each internal knot) into several Bezier curves
*
Expand Down
Loading
Loading