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

◆ regions_intersect()

bool MayaFlux::Kakshya::regions_intersect ( const Region r1,
const Region r2 
)
noexcept

Test whether two N-dimensional regions overlap on every shared axis.

Regions are treated as closed intervals. Only axes present in both regions are tested; regions with fewer than 2 coordinates on either side are never considered intersecting.

Parameters
r1First region.
r2Second region.
Returns
true if all shared axes of r1 and r2 overlap.

Definition at line 421 of file RegionUtils.cpp.

422{
423 const size_t ndim = std::min({ r1.start_coordinates.size(),
424 r1.end_coordinates.size(),
425 r2.start_coordinates.size(),
426 r2.end_coordinates.size() });
427 if (ndim < 2)
428 return false;
429
430 for (size_t i = 0; i < ndim; ++i) {
431 if (r1.end_coordinates[i] < r2.start_coordinates[i]
432 || r2.end_coordinates[i] < r1.start_coordinates[i])
433 return false;
434 }
435 return true;
436}
std::vector< uint64_t > end_coordinates
Ending frame index (inclusive)
Definition Region.hpp:72
std::vector< uint64_t > start_coordinates
Starting frame index (inclusive)
Definition Region.hpp:69

Referenced by MayaFlux::Kakshya::WindowContainer::get_region_data().

+ Here is the caller graph for this function: