MayaFlux 0.1.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 80 of file RegionUtils.cpp.

81{
82 Region result = region;
83 for (size_t i = 0; i < std::min(factors.size(), region.start_coordinates.size()); ++i) {
84 uint64_t center = (region.start_coordinates[i] + region.end_coordinates[i]) / 2;
85 uint64_t half_span = (region.end_coordinates[i] - region.start_coordinates[i]) / 2;
86 auto new_half_span = static_cast<uint64_t>(factors[i] * static_cast<double>(half_span));
87 result.start_coordinates[i] = center - new_half_span;
88 result.end_coordinates[i] = center + new_half_span;
89 }
90 return result;
91}
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, scale_region(), and MayaFlux::Kakshya::Region::start_coordinates.

Referenced by scale_region().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: