FDL Core Library
ASC Framing Decision List — C/C++ Reference Implementation
Loading...
Searching...
No Matches
Functions
fdl_pipeline.h File Reference

Internal pipeline helper functions for template application. More...

#include "fdl/fdl_core.h"

Go to the source code of this file.

Functions

double fdl::detail::calculate_scale_factor (fdl_dimensions_f64_t fit_norm, fdl_dimensions_f64_t target_norm, fdl_fit_method_t fit_method)
 Calculate scale factor based on fit method.
 
double fdl::detail::output_size_for_axis (double canvas_size, double max_size, bool has_max, bool pad_to_max)
 Determine output canvas size for a single axis.
 
double fdl::detail::alignment_shift (double fit_size, double fit_anchor, double output_size, double canvas_size, double target_size, bool is_center, double align_factor, bool pad_to_max)
 Calculate content translation shift for a single axis.
 
fdl_dimensions_f64_t fdl::detail::dimensions_clamp_to_dims (fdl_dimensions_f64_t dims, fdl_dimensions_f64_t clamp_dims, fdl_point_f64_t *out_delta)
 Clamp dimensions to maximum bounds.
 

Detailed Description

Internal pipeline helper functions for template application.

Scale factor calculation, output sizing, alignment shift, and dimension clamping — the building blocks of the canvas template application pipeline.

Function Documentation

◆ calculate_scale_factor()

double fdl::detail::calculate_scale_factor ( fdl_dimensions_f64_t  fit_norm,
fdl_dimensions_f64_t  target_norm,
fdl_fit_method_t  fit_method 
)

Calculate scale factor based on fit method.

Parameters
fit_normNormalized fit-source dimensions.
target_normNormalized target dimensions.
fit_methodFit method (width, height, fill, fit_all).
Returns
Scale factor (always > 0).

◆ output_size_for_axis()

double fdl::detail::output_size_for_axis ( double  canvas_size,
double  max_size,
bool  has_max,
bool  pad_to_max 
)

Determine output canvas size for a single axis.

Parameters
canvas_sizeScaled canvas size along this axis.
max_sizeMaximum allowed size (from target dimensions).
has_maxWhether a maximum constraint exists.
pad_to_maxWhether to pad to maximum size.
Returns
Output size for this axis.

◆ alignment_shift()

double fdl::detail::alignment_shift ( double  fit_size,
double  fit_anchor,
double  output_size,
double  canvas_size,
double  target_size,
bool  is_center,
double  align_factor,
bool  pad_to_max 
)

Calculate content translation shift for a single axis.

Parameters
fit_sizeFit-source size along this axis.
fit_anchorFit-source anchor along this axis.
output_sizeOutput canvas size along this axis.
canvas_sizeScaled canvas size along this axis.
target_sizeTarget size along this axis.
is_centerWhether alignment is centered.
align_factorAlignment factor (0.0 = start, 0.5 = center, 1.0 = end).
pad_to_maxWhether padding is applied.
Returns
Shift amount in pixels.

◆ dimensions_clamp_to_dims()

fdl_dimensions_f64_t fdl::detail::dimensions_clamp_to_dims ( fdl_dimensions_f64_t  dims,
fdl_dimensions_f64_t  clamp_dims,
fdl_point_f64_t out_delta 
)

Clamp dimensions to maximum bounds.

Parameters
dimsInput dimensions.
clamp_dimsMaximum allowed dimensions.
out_delta[out] Reduction applied to each axis (dims - result).
Returns
Clamped dimensions.