10#ifndef FDL_BUILDER_INTERNAL_H
11#define FDL_BUILDER_INTERNAL_H
17#include <jsoncons/json.hpp>
20namespace fdl::detail {
81 const char* fdl_creator,
82 const char* default_framing_intent);
117 const char*
id,
const char* label,
const char* source_canvas_id, int64_t
dim_w, int64_t
dim_h,
double squeeze);
133 const char* framing_intent_id,
158 double target_squeeze,
ojson make_dimensions_float(double width, double height)
Build a floating-point dimensions object (width, height).
Definition fdl_builder.cpp:29
ojson make_canvas(const char *id, const char *label, const char *source_canvas_id, int64_t dim_w, int64_t dim_h, double squeeze)
Build a canvas object with dimensions and squeeze.
Definition fdl_builder.cpp:101
ojson make_dimensions_int(int64_t width, int64_t height)
Build an integer dimensions object (width, height).
Definition fdl_builder.cpp:21
ojson make_framing_intent(const char *id, const char *label, int64_t aspect_w, int64_t aspect_h, double protection)
Build a framing intent object with aspect ratio and protection.
Definition fdl_builder.cpp:74
ojson make_round_strategy(const char *even, const char *mode)
Build a rounding strategy object (even, mode).
Definition fdl_builder.cpp:45
ojson make_context(const char *label, const char *context_creator)
Build a context object with label and creator.
Definition fdl_builder.cpp:87
ojson make_point_float(double x, double y)
Build a floating-point point object (x, y).
Definition fdl_builder.cpp:37
ojson make_framing_decision(const char *id, const char *label, const char *framing_intent_id, double dim_w, double dim_h, double anchor_x, double anchor_y)
Build a framing decision object with dimensions and anchor point.
Definition fdl_builder.cpp:120
ojson make_version(int major, int minor)
Build a version object with major and minor fields.
Definition fdl_builder.cpp:13
ojson make_root(const char *uuid, int version_major, int version_minor, const char *fdl_creator, const char *default_framing_intent)
Build a minimal FDL root document object with canonical key order.
Definition fdl_builder.cpp:52
ojson make_canvas_template(const char *id, const char *label, int64_t target_w, int64_t target_h, double target_squeeze, fdl_geometry_path_t fit_source, fdl_fit_method_t fit_method, fdl_halign_t halign, fdl_valign_t valign, fdl_round_strategy_t rounding)
Build a canvas template object with all transform parameters.
Definition fdl_builder.cpp:142
jsoncons::ojson ojson
Use ojson (ordered JSON) to preserve key insertion order for canonical serialization.
Definition fdl_builder.h:22
Public C ABI for the FDL (Framing Decision List) core library.
uint32_t fdl_fit_method_t
Fit method — how source content is scaled into the target canvas.
Definition fdl_core.h:151
uint32_t fdl_geometry_path_t
Geometry path — selects a dimension layer within the FDL hierarchy.
Definition fdl_core.h:144
uint32_t fdl_valign_t
Vertical alignment — how content is positioned vertically.
Definition fdl_core.h:164
uint32_t fdl_halign_t
Horizontal alignment — how content is positioned horizontally.
Definition fdl_core.h:158
Internal Document class and opaque fdl_doc handle definition.
Internal handle types and handle cache for opaque FDL sub-objects.
double anchor_y
Anchor Y offset.
Definition fdl_validate.cpp:339
double anchor_x
Anchor X offset.
Definition fdl_validate.cpp:338
double dim_h
Height in pixels.
Definition fdl_validate.cpp:337
double dim_w
Width in pixels.
Definition fdl_validate.cpp:336
Rounding strategy combining even-snap and direction mode.
Definition fdl_core.h:186