threads argument of c_weighted_jaccard_sparse() and
c_weighted_jaccard_dense() now defaults to NULL, applying a package-wide
thread policy (respecting getOption("Ncpus") and OMP_THREAD_LIMIT, else a
conservative 2) rather than a hard-coded 4. Pass threads = 0 for all cores,
or an integer to override. No new package dependency.c_pointsinside(), a robust point-in-mesh test based on the generalised
(solid-angle) winding number. Unlike a closest-point signed-distance test it
does not depend on surface normals, so it avoids the spurious "outside point
classified as inside" results that normal-based tests can give near thin
protrusions or sharp features. threads = NULL applies the package thread
policy.c_pointsinside(method=) selects the winding-number back end: "bruteforce"
is a self-contained O(P*F) test parallelised over points with RcppThread;
"bvh" uses libigl's "Fast Winding Numbers for Soups and Clouds" (Barill et
al. 2018), building a bounding-volume hierarchy once and evaluating each query
point in O(log F) so it scales to millions of points on large meshes. The
default "auto" picks "bvh" for large meshes and "bruteforce" otherwise;
the two agree to within the winding-number tolerance. libigl (MPL-2.0) is
vendored under src/vendor/igl and requires RcppEigen; its bundled Houdini
HDK amalgamation is marked a system header (one-line #pragma) so its
third-party compiler warnings do not surface as install-time R CMD check
warnings.Full Changelog: https://github.com/natverse/natcpp/compare/v0.3.1...v0.3.2
libatomic when the C++ atomic compare/exchange runtime helper is
required.src/Makevars.win, since configure is not run on Windows, and a
cleanup script to remove the src/Makevars generated by configure. The
generated src/Makevars is no longer shipped in the package sources.Full Changelog: https://github.com/natverse/natcpp/compare/v0.3.0...v0.3.1
c_weighted_jaccard_sparse() returns a sparse similarity (or distance) matrixc_weighted_jaccard_dense() returns a dense matrix or a dist-layout vectortriangle= switches between symmetric upper-triangle output and a full matrixdistance= returns 1 - similaritysrc/Makevars using $(SHLIB_OPENMP_CXXFLAGS) in place of a GNU make
$(shell ...) callout to RcppThread::LdFlags()Full Changelog: https://github.com/natverse/natcpp/compare/v0.2...v0.3.0
c_coords21dindex()c_ijkpos()c_sub2ind()
to make nat::coord2ind() and friends much more memory efficientFull Changelog: https://github.com/natverse/natcpp/compare/v0.1.1...v0.2
c_ListofMatrixRows()