MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ make_spatial_index_nd()

MAYAFLUX_API std::unique_ptr< SpatialIndexND > MayaFlux::Kinesis::make_spatial_index_nd ( float  cell_size,
uint32_t  dimensions 
)

Create an N-dimensional spatial index with Euclidean squared distance.

Parameters
cell_sizeGrid cell edge length (used only when dimensions <= 6).
dimensionsNumber of dimensions in the coordinate space.

Definition at line 539 of file SpatialIndex.cpp.

540{
541 auto idx = std::make_unique<SpatialIndexND>(
542 cell_size,
543 [](const Eigen::VectorXd& a, const Eigen::VectorXd& b) -> float {
544 return static_cast<float>((a - b).squaredNorm());
545 });
546
547 if (dimensions > detail::MAX_GRID_DIMENSIONS) {
548 MF_INFO(Journal::Component::Kinesis, Journal::Context::Runtime,
549 "SpatialIndexND: {} dimensions exceeds grid threshold ({}), using brute-force",
550 dimensions, detail::MAX_GRID_DIMENSIONS);
551 }
552
553 return idx;
554}
#define MF_INFO(comp, ctx,...)
size_t a
size_t b

References a, b, MayaFlux::Journal::Kinesis, MayaFlux::Kinesis::detail::MAX_GRID_DIMENSIONS, MF_INFO, and MayaFlux::Journal::Runtime.