|
FDL Core Library
ASC Framing Decision List — C/C++ Reference Implementation
|
Internal geometry operations on the 4-layer FDL dimension hierarchy. More...
#include "fdl/fdl_core.h"Go to the source code of this file.
Functions | |
| fdl_geometry_t | fdl::detail::geometry_fill_hierarchy_gaps (fdl_geometry_t geo, fdl_point_f64_t anchor_offset) |
| Fill gaps in the geometry hierarchy by propagating populated dimensions upward. | |
| fdl_geometry_t | fdl::detail::geometry_normalize_and_scale (fdl_geometry_t geo, double source_squeeze, double scale_factor, double target_squeeze) |
| Normalize and scale all 7 fields (4 dimensions + 3 anchors) of the geometry. | |
| fdl_geometry_t | fdl::detail::geometry_round (fdl_geometry_t geo, fdl_round_strategy_t strategy) |
| Round all 7 fields of the geometry using the given strategy. | |
| fdl_geometry_t | fdl::detail::geometry_apply_offset (fdl_geometry_t geo, fdl_point_f64_t offset, fdl_point_f64_t *theo_eff, fdl_point_f64_t *theo_prot, fdl_point_f64_t *theo_fram) |
| Apply offset to all anchors, clamping to canvas bounds. | |
| fdl_geometry_t | fdl::detail::geometry_crop (fdl_geometry_t geo, fdl_point_f64_t theo_eff, fdl_point_f64_t theo_prot, fdl_point_f64_t theo_fram) |
| Crop all dimensions to visible portion within canvas. | |
| int | fdl::detail::geometry_get_dims_anchor_from_path (const fdl_geometry_t *geo, fdl_geometry_path_t path, fdl_dimensions_f64_t *out_dims, fdl_point_f64_t *out_anchor) |
| Extract dimensions and anchor from geometry by path. | |
Internal geometry operations on the 4-layer FDL dimension hierarchy.
Provides gap-filling, normalize+scale, rounding, offset, and cropping operations used by the template application pipeline.
| fdl_geometry_t fdl::detail::geometry_fill_hierarchy_gaps | ( | fdl_geometry_t | geo, |
| fdl_point_f64_t | anchor_offset | ||
| ) |
Fill gaps in the geometry hierarchy by propagating populated dimensions upward.
Protection is NEVER filled from framing (special case). Anchors are adjusted by subtracting anchor_offset, then clamped >= 0.
| geo | Input geometry with possibly-zero layers. |
| anchor_offset | Offset to subtract from all anchors. |
| fdl_geometry_t fdl::detail::geometry_normalize_and_scale | ( | fdl_geometry_t | geo, |
| double | source_squeeze, | ||
| double | scale_factor, | ||
| double | target_squeeze | ||
| ) |
Normalize and scale all 7 fields (4 dimensions + 3 anchors) of the geometry.
| geo | Input geometry. |
| source_squeeze | Source anamorphic squeeze. |
| scale_factor | Uniform scale factor to apply. |
| target_squeeze | Target anamorphic squeeze. |
| fdl_geometry_t fdl::detail::geometry_round | ( | fdl_geometry_t | geo, |
| fdl_round_strategy_t | strategy | ||
| ) |
Round all 7 fields of the geometry using the given strategy.
| geo | Input geometry. |
| strategy | Rounding strategy (even + mode). |
| fdl_geometry_t fdl::detail::geometry_apply_offset | ( | fdl_geometry_t | geo, |
| fdl_point_f64_t | offset, | ||
| fdl_point_f64_t * | theo_eff, | ||
| fdl_point_f64_t * | theo_prot, | ||
| fdl_point_f64_t * | theo_fram | ||
| ) |
Apply offset to all anchors, clamping to canvas bounds.
Returns clamped geometry; theoretical (unclamped) anchors written to output pointers. If any output pointer is null, returns the geometry unmodified.
| geo | Input geometry. |
| offset | Offset to add to all anchors. |
| theo_eff | [out] Theoretical effective anchor (may be negative). Must not be null. |
| theo_prot | [out] Theoretical protection anchor. Must not be null. |
| theo_fram | [out] Theoretical framing anchor. Must not be null. |
geo if any output pointer is null. | fdl_geometry_t fdl::detail::geometry_crop | ( | fdl_geometry_t | geo, |
| fdl_point_f64_t | theo_eff, | ||
| fdl_point_f64_t | theo_prot, | ||
| fdl_point_f64_t | theo_fram | ||
| ) |
Crop all dimensions to visible portion within canvas.
Enforces hierarchy: canvas >= effective >= protection >= framing.
| geo | Input geometry (anchors must already be clamped). |
| theo_eff | Theoretical effective anchor (unclamped). |
| theo_prot | Theoretical protection anchor (unclamped). |
| theo_fram | Theoretical framing anchor (unclamped). |
| int fdl::detail::geometry_get_dims_anchor_from_path | ( | const fdl_geometry_t * | geo, |
| fdl_geometry_path_t | path, | ||
| fdl_dimensions_f64_t * | out_dims, | ||
| fdl_point_f64_t * | out_anchor | ||
| ) |
Extract dimensions and anchor from geometry by path.
| geo | Geometry to query. |
| path | Which layer to extract. |
| out_dims | [out] Extracted dimensions. |
| out_anchor | [out] Extracted anchor point. |