MapLibre Native C API
Public C ABI for the MapLibre Native wrapper.
Loading...
Searching...
No Matches
style_expression.h
Go to the documentation of this file.
1
10
11#ifndef MAPLIBRE_NATIVE_C_STYLE_EXPRESSION_H
12#define MAPLIBRE_NATIVE_C_STYLE_EXPRESSION_H
13
14#ifndef __cplusplus
15#include <stdbool.h>
16#endif
17
18#include <stddef.h>
19#include <stdint.h>
20
21#include "base.h"
22#include "style.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
29typedef enum mln_style_expression_type_kind : uint32_t {
32 MLN_STYLE_EXPRESSION_TYPE_NUMBER = 1,
33 MLN_STYLE_EXPRESSION_TYPE_STRING = 2,
34 MLN_STYLE_EXPRESSION_TYPE_BOOLEAN = 3,
35 MLN_STYLE_EXPRESSION_TYPE_COLOR = 4,
36 MLN_STYLE_EXPRESSION_TYPE_OBJECT = 5,
37 MLN_STYLE_EXPRESSION_TYPE_FORMATTED = 6,
40 MLN_STYLE_EXPRESSION_TYPE_PADDING = 8,
41 MLN_STYLE_EXPRESSION_TYPE_VARIABLE_ANCHOR_OFFSET_COLLECTION = 9,
45
49 uint32_t kind MLN_BINDING("enum=mln_style_expression_type_kind");
51 uint32_t item_kind MLN_BINDING("enum=mln_style_expression_type_kind");
53 uint32_t item_count;
55
63
66 uint32_t size;
68 uint32_t fields MLN_BINDING("enum=mln_style_expression_option_field");
75 MLN_BINDING("mask=fields;bit=MLN_STYLE_EXPRESSION_OPTION_EXPECTED_TYPE");
77
79typedef enum MLN_BINDING(
80 "kind=bitmask"
82 MLN_STYLE_EXPRESSION_INPUT_ZOOM = 1U << 0U,
83 MLN_STYLE_EXPRESSION_INPUT_COLOR_RAMP_PARAMETER = 1U << 1U,
84 MLN_STYLE_EXPRESSION_INPUT_ELEVATION = 1U << 2U,
85 MLN_STYLE_EXPRESSION_INPUT_FEATURE = 1U << 3U,
86 MLN_STYLE_EXPRESSION_INPUT_FEATURE_STATE = 1U << 4U,
87 MLN_STYLE_EXPRESSION_INPUT_GLOBAL_STATE = 1U << 5U,
88 MLN_STYLE_EXPRESSION_INPUT_CANONICAL_TILE_ID = 1U << 6U,
90
99 uint32_t size;
101 uint32_t fields MLN_BINDING("enum=mln_style_expression_input_field");
103 double zoom MLN_BINDING("mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_ZOOM");
109 "mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_COLOR_RAMP_PARAMETER"
110 );
113 MLN_BINDING("mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_ELEVATION");
116 "encoding=json;mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_FEATURE"
117 );
120 "encoding=json;mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_FEATURE_STATE"
121 );
124 "encoding=json;mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_GLOBAL_STATE"
125 );
131 MLN_BINDING("mask=fields;bit=MLN_STYLE_EXPRESSION_INPUT_CANONICAL_TILE_ID");
137 MLN_BINDING("length=available_image_count");
138 size_t available_image_count;
140
149
153
157
181 mln_buffer_view expression MLN_BINDING("encoding=json"),
182 const mln_style_expression_options* options MLN_BINDING("nullable=true"),
183 mln_style_expression* out_expression MLN_BINDING("direction=out"),
184 mln_diagnostic* out_diagnostic
185) MLN_NOEXCEPT;
186
194 mln_style_expression expression
195) MLN_NOEXCEPT;
196
208 mln_style_expression expression,
209 mln_style_expression_info* out_info MLN_BINDING("direction=out"),
210 mln_diagnostic* out_diagnostic
211) MLN_NOEXCEPT;
212
242 mln_style_expression expression,
243 const mln_style_expression_inputs* inputs MLN_BINDING("nullable=true"),
244 char* out_json MLN_BINDING(
245 "direction=out;encoding=json;length=json_capacity;"
246 "result_length=out_json_length"
247 ),
248 size_t json_capacity, size_t* out_json_length MLN_BINDING("direction=out"),
249 mln_diagnostic* out_diagnostic
250) MLN_NOEXCEPT;
251
252#ifdef __cplusplus
253}
254#endif
255
256#endif // MAPLIBRE_NATIVE_C_STYLE_EXPRESSION_H
uint64_t mln_style_expression
Definition base.h:141
mln_status
Definition base.h:61
#define MLN_BINDING(contract)
Definition binding.h:17
Definition base.h:192
Definition style.h:384
Definition base.h:100
Definition style_expression.h:142
bool is_zoom_constant
Definition style_expression.h:147
bool is_feature_constant
Definition style_expression.h:145
Definition style_expression.h:98
mln_canonical_tile_id canonical_tile_id
Definition style_expression.h:131
double color_ramp_parameter
Definition style_expression.h:110
double elevation
Definition style_expression.h:113
double zoom
Definition style_expression.h:103
mln_buffer_view feature_state
Definition style_expression.h:121
uint32_t fields
Definition style_expression.h:101
mln_buffer_view global_state
Definition style_expression.h:125
const mln_buffer_view * available_images
Definition style_expression.h:137
mln_buffer_view feature
Definition style_expression.h:117
Definition style_expression.h:65
uint32_t fields
Definition style_expression.h:68
mln_style_expression_type expected_type
Definition style_expression.h:75
Definition style_expression.h:47
uint32_t item_kind
Definition style_expression.h:51
uint32_t kind
Definition style_expression.h:49
uint32_t item_count
Definition style_expression.h:53
mln_style_expression_input_field
Definition style_expression.h:81
void mln_style_expression_release(mln_style_expression expression)
mln_style_expression_type_kind
Definition style_expression.h:29
@ MLN_STYLE_EXPRESSION_TYPE_ARRAY
Definition style_expression.h:43
@ MLN_STYLE_EXPRESSION_TYPE_VALUE
Definition style_expression.h:31
@ MLN_STYLE_EXPRESSION_TYPE_IMAGE
Definition style_expression.h:39
mln_status mln_style_expression_get_info(mln_style_expression expression, mln_style_expression_info *out_info, mln_diagnostic *out_diagnostic)
mln_status mln_style_expression_evaluate(mln_style_expression expression, const mln_style_expression_inputs *inputs, char *out_json, size_t json_capacity, size_t *out_json_length, mln_diagnostic *out_diagnostic)
mln_style_expression_option_field
Definition style_expression.h:59
@ MLN_STYLE_EXPRESSION_OPTION_EXPECTED_TYPE
Definition style_expression.h:61
mln_status mln_style_expression_create(mln_buffer_view expression, const mln_style_expression_options *options, mln_style_expression *out_expression, mln_diagnostic *out_diagnostic)
mln_style_expression_options mln_style_expression_options_default(void)
mln_style_expression_inputs mln_style_expression_inputs_default(void)