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

◆ scale_region()

Region MayaFlux::Kakshya::scale_region ( const Region region,
const std::vector< double > &  factors 
)

Scale a Region about its center by the given factors.

Parameters
regionRegion to scale.
factorsScaling factors for each dimension.
Returns
New scaled Region.

Definition at line 86 of file RegionUtils.cpp.

87{
88 Region result = region;
89 for (size_t i = 0; i < std::min(factors.size(), region.start_coordinates.size()); ++i) {
90 uint64_t center = (region.start_coordinates[i] + region.end_coordinates[i]) / 2;
91 uint64_t half_span = (region.end_coordinates[i] - region.start_coordinates[i]) / 2;
92 auto new_half_span = static_cast<uint64_t>(factors[i] * static_cast<double>(half_span));
93 result.start_coordinates[i] = center - new_half_span;
94 result.end_coordinates[i] = center + new_half_span;
95 }
96 return result;
97}
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
Represents a point or span in N-dimensional space.
Definition Region.hpp:67

References MayaFlux::Kakshya::Region::end_coordinates, and MayaFlux::Kakshya::Region::start_coordinates.