mirror of
https://github.com/mapnik/mapnik.git
synced 2025-08-02 23:35:30 +00:00
225 lines
12 KiB
C++
225 lines
12 KiB
C++
/*****************************************************************************
|
|
*
|
|
* This file is part of Mapnik (c++ mapping toolkit)
|
|
*
|
|
* Copyright (C) 2025 Artem Pavlenko
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#include <mapnik/symbolizer_enumerations.hpp>
|
|
|
|
namespace mapnik {
|
|
|
|
// stroke
|
|
using line_cap_e_str = detail::EnumStringT<line_cap_enum>;
|
|
constexpr detail::EnumMapT<line_cap_enum, 4> line_cap_e_map{{
|
|
line_cap_e_str{line_cap_enum::BUTT_CAP, "butt"},
|
|
line_cap_e_str{line_cap_enum::SQUARE_CAP, "square"},
|
|
line_cap_e_str{line_cap_enum::ROUND_CAP, "round"},
|
|
line_cap_e_str{line_cap_enum::line_cap_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(line_cap_e, line_cap_enum)
|
|
|
|
using line_join_e_str = detail::EnumStringT<line_join_enum>;
|
|
constexpr detail::EnumMapT<line_join_enum, 5> line_join_e_map{{
|
|
line_join_e_str{line_join_enum::MITER_JOIN, "miter"},
|
|
line_join_e_str{line_join_enum::MITER_REVERT_JOIN, "miter-revert"},
|
|
line_join_e_str{line_join_enum::ROUND_JOIN, "round"},
|
|
line_join_e_str{line_join_enum::BEVEL_JOIN, "bevel"},
|
|
line_join_e_str{line_join_enum::line_join_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(line_join_e, line_join_enum)
|
|
|
|
// point symbolizer
|
|
using point_placement_e_str = detail::EnumStringT<point_placement_enum>;
|
|
constexpr detail::EnumMapT<point_placement_enum, 3> point_placement_e_map{{
|
|
point_placement_e_str{point_placement_enum::CENTROID_POINT_PLACEMENT, "centroid"},
|
|
point_placement_e_str{point_placement_enum::INTERIOR_POINT_PLACEMENT, "interior"},
|
|
point_placement_e_str{point_placement_enum::point_placement_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(point_placement_e, point_placement_enum)
|
|
|
|
// line symbolizer
|
|
using line_rasterizer_e_str = detail::EnumStringT<line_rasterizer_enum>;
|
|
constexpr detail::EnumMapT<line_rasterizer_enum, 3> line_rasterizer_e_map{{
|
|
line_rasterizer_e_str{line_rasterizer_enum::RASTERIZER_FULL, "full"},
|
|
line_rasterizer_e_str{line_rasterizer_enum::RASTERIZER_FAST, "fast"},
|
|
line_rasterizer_e_str{line_rasterizer_enum::line_rasterizer_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(line_rasterizer_e, line_rasterizer_enum)
|
|
|
|
// markers symbolizer
|
|
using marker_placement_e_str = detail::EnumStringT<marker_placement_enum>;
|
|
constexpr detail::EnumMapT<marker_placement_enum, 8> marker_placement_e_map{{
|
|
marker_placement_e_str{marker_placement_enum::MARKER_POINT_PLACEMENT, "point"},
|
|
marker_placement_e_str{marker_placement_enum::MARKER_INTERIOR_PLACEMENT, "interior"},
|
|
marker_placement_e_str{marker_placement_enum::MARKER_LINE_PLACEMENT, "line"},
|
|
marker_placement_e_str{marker_placement_enum::MARKER_VERTEX_FIRST_PLACEMENT, "vertex-first"},
|
|
marker_placement_e_str{marker_placement_enum::MARKER_VERTEX_LAST_PLACEMENT, "vertex-last"},
|
|
marker_placement_e_str{marker_placement_enum::MARKER_ANGLED_POINT_PLACEMENT, "angled-point"},
|
|
marker_placement_e_str{marker_placement_enum::MARKER_POLYLABEL_PLACEMENT, "polylabel"},
|
|
marker_placement_e_str{marker_placement_enum::marker_placement_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(marker_placement_e, marker_placement_enum)
|
|
|
|
using marker_multi_policy_e_str = detail::EnumStringT<marker_multi_policy_enum>;
|
|
constexpr detail::EnumMapT<marker_multi_policy_enum, 4> marker_multi_policy_e_map{{
|
|
marker_multi_policy_e_str{marker_multi_policy_enum::MARKER_EACH_MULTI, "each"},
|
|
marker_multi_policy_e_str{marker_multi_policy_enum::MARKER_WHOLE_MULTI, "whole"},
|
|
marker_multi_policy_e_str{marker_multi_policy_enum::MARKER_LARGEST_MULTI, "largest"},
|
|
marker_multi_policy_e_str{marker_multi_policy_enum::marker_multi_policy_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(marker_multi_policy_e, marker_multi_policy_enum)
|
|
|
|
// debug symbolizer
|
|
using debug_symbolizer_mode_e_str = detail::EnumStringT<debug_symbolizer_mode_enum>;
|
|
constexpr detail::EnumMapT<debug_symbolizer_mode_enum, 4> debug_symbolizer_mode_e_map{{
|
|
debug_symbolizer_mode_e_str{debug_symbolizer_mode_enum::DEBUG_SYM_MODE_COLLISION, "collision"},
|
|
debug_symbolizer_mode_e_str{debug_symbolizer_mode_enum::DEBUG_SYM_MODE_VERTEX, "vertex"},
|
|
debug_symbolizer_mode_e_str{debug_symbolizer_mode_enum::DEBUG_SYM_MODE_RINGS, "rings"},
|
|
debug_symbolizer_mode_e_str{debug_symbolizer_mode_enum::debug_symbolizer_mode_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(debug_symbolizer_mode_e, debug_symbolizer_mode_enum)
|
|
|
|
// polygon pattern symbolizer
|
|
using pattern_alignment_e_str = detail::EnumStringT<pattern_alignment_enum>;
|
|
constexpr detail::EnumMapT<pattern_alignment_enum, 3> pattern_alignment_e_map{{
|
|
pattern_alignment_e_str{pattern_alignment_enum::LOCAL_ALIGNMENT, "local"}, // feature
|
|
pattern_alignment_e_str{pattern_alignment_enum::GLOBAL_ALIGNMENT, "global"}, // map
|
|
pattern_alignment_e_str{pattern_alignment_enum::pattern_alignment_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(pattern_alignment_e, pattern_alignment_enum)
|
|
|
|
// text
|
|
using halo_rasterizer_e_str = detail::EnumStringT<halo_rasterizer_enum>;
|
|
constexpr detail::EnumMapT<halo_rasterizer_enum, 3> halo_rasterizer_e_map{{
|
|
halo_rasterizer_e_str{halo_rasterizer_enum::HALO_RASTERIZER_FULL, "full"},
|
|
halo_rasterizer_e_str{halo_rasterizer_enum::HALO_RASTERIZER_FAST, "fast"},
|
|
halo_rasterizer_e_str{halo_rasterizer_enum::halo_rasterizer_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(halo_rasterizer_e, halo_rasterizer_enum)
|
|
|
|
using label_placement_e_str = detail::EnumStringT<label_placement_enum>;
|
|
constexpr detail::EnumMapT<label_placement_enum, 8> label_placement_e_map{{
|
|
label_placement_e_str{label_placement_enum::POINT_PLACEMENT, "point"},
|
|
label_placement_e_str{label_placement_enum::LINE_PLACEMENT, "line"},
|
|
label_placement_e_str{label_placement_enum::VERTEX_PLACEMENT, "vertex"},
|
|
label_placement_e_str{label_placement_enum::INTERIOR_PLACEMENT, "interior"},
|
|
label_placement_e_str{label_placement_enum::POLYLABEL_PLACEMENT, "polylabel"},
|
|
label_placement_e_str{label_placement_enum::GRID_PLACEMENT, "grid"},
|
|
label_placement_e_str{label_placement_enum::ALTERNATING_GRID_PLACEMENT, "alternating-grid"},
|
|
label_placement_e_str{label_placement_enum::label_placement_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(label_placement_e, label_placement_enum)
|
|
|
|
using vertical_alignment_e_str = detail::EnumStringT<vertical_alignment_enum>;
|
|
constexpr detail::EnumMapT<vertical_alignment_enum, 5> vertical_alignment_e_map{{
|
|
vertical_alignment_e_str{vertical_alignment_enum::V_TOP, "top"},
|
|
vertical_alignment_e_str{vertical_alignment_enum::V_MIDDLE, "middle"},
|
|
vertical_alignment_e_str{vertical_alignment_enum::V_BOTTOM, "bottom"},
|
|
vertical_alignment_e_str{vertical_alignment_enum::V_AUTO, "auto"},
|
|
vertical_alignment_e_str{vertical_alignment_enum::vertical_alignment_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(vertical_alignment_e, vertical_alignment_enum)
|
|
|
|
using horizontal_alignment_e_str = detail::EnumStringT<horizontal_alignment_enum>;
|
|
constexpr detail::EnumMapT<horizontal_alignment_enum, 6> horizontal_alignment_e_map{{
|
|
horizontal_alignment_e_str{horizontal_alignment_enum::H_LEFT, "left"},
|
|
horizontal_alignment_e_str{horizontal_alignment_enum::H_MIDDLE, "middle"},
|
|
horizontal_alignment_e_str{horizontal_alignment_enum::H_RIGHT, "right"},
|
|
horizontal_alignment_e_str{horizontal_alignment_enum::H_AUTO, "auto"},
|
|
horizontal_alignment_e_str{horizontal_alignment_enum::H_ADJUST, "adjust"},
|
|
horizontal_alignment_e_str{horizontal_alignment_enum::horizontal_alignment_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(horizontal_alignment_e, horizontal_alignment_enum)
|
|
|
|
using justify_alignment_e_str = detail::EnumStringT<justify_alignment_enum>;
|
|
constexpr detail::EnumMapT<justify_alignment_enum, 5> justify_alignment_e_map{{
|
|
justify_alignment_e_str{justify_alignment_enum::J_LEFT, "left"},
|
|
justify_alignment_e_str{justify_alignment_enum::J_MIDDLE, "center"}, // not 'middle' in order to match CSS
|
|
justify_alignment_e_str{justify_alignment_enum::J_RIGHT, "right"},
|
|
justify_alignment_e_str{justify_alignment_enum::J_AUTO, "auto"},
|
|
justify_alignment_e_str{justify_alignment_enum::justify_alignment_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(justify_alignment_e, justify_alignment_enum)
|
|
|
|
using text_transform_e_str = detail::EnumStringT<text_transform_enum>;
|
|
constexpr detail::EnumMapT<text_transform_enum, 6> text_transform_e_map{{
|
|
text_transform_e_str{text_transform_enum::NONE, "none"},
|
|
text_transform_e_str{text_transform_enum::UPPERCASE, "uppercase"},
|
|
text_transform_e_str{text_transform_enum::LOWERCASE, "lowercase"},
|
|
text_transform_e_str{text_transform_enum::CAPITALIZE, "capitalize"},
|
|
text_transform_e_str{text_transform_enum::REVERSE, "reverse"},
|
|
text_transform_e_str{text_transform_enum::text_transform_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(text_transform_e, text_transform_enum)
|
|
|
|
using text_upright_e_str = detail::EnumStringT<text_upright_enum>;
|
|
constexpr detail::EnumMapT<text_upright_enum, 7> text_upright_e_map{{
|
|
text_upright_e_str{text_upright_enum::UPRIGHT_AUTO, "auto"},
|
|
text_upright_e_str{text_upright_enum::UPRIGHT_AUTO_DOWN, "auto-down"},
|
|
text_upright_e_str{text_upright_enum::UPRIGHT_LEFT, "left"},
|
|
text_upright_e_str{text_upright_enum::UPRIGHT_RIGHT, "right"},
|
|
text_upright_e_str{text_upright_enum::UPRIGHT_LEFT_ONLY, "left-only"},
|
|
text_upright_e_str{text_upright_enum::UPRIGHT_RIGHT_ONLY, "right-only"},
|
|
text_upright_e_str{text_upright_enum::text_upright_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(text_upright_e, text_upright_enum)
|
|
|
|
using direction_e_str = detail::EnumStringT<direction_enum>;
|
|
constexpr detail::EnumMapT<direction_enum, 9> direction_e_map{{
|
|
direction_e_str{direction_enum::DIRECTION_LEFT, "left"},
|
|
direction_e_str{direction_enum::DIRECTION_RIGHT, "right"},
|
|
direction_e_str{direction_enum::DIRECTION_LEFT_ONLY, "left-only"},
|
|
direction_e_str{direction_enum::DIRECTION_RIGHT_ONLY, "right-only"},
|
|
direction_e_str{direction_enum::DIRECTION_AUTO, "auto"},
|
|
direction_e_str{direction_enum::DIRECTION_AUTO_DOWN, "auto-down"},
|
|
direction_e_str{direction_enum::DIRECTION_UP, "up"},
|
|
direction_e_str{direction_enum::DIRECTION_DOWN, "down"},
|
|
direction_e_str{direction_enum::direction_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(direction_e, direction_enum)
|
|
|
|
using gamma_method_e_str = detail::EnumStringT<gamma_method_enum>;
|
|
constexpr detail::EnumMapT<gamma_method_enum, 6> gamma_method_e_map{{
|
|
gamma_method_e_str{gamma_method_enum::GAMMA_POWER, "power"}, // agg::gamma_power
|
|
gamma_method_e_str{gamma_method_enum::GAMMA_LINEAR, "linear"}, // agg::gamma_linear
|
|
gamma_method_e_str{gamma_method_enum::GAMMA_NONE, "none"}, // agg::gamma_none
|
|
gamma_method_e_str{gamma_method_enum::GAMMA_THRESHOLD, "threshold"}, // agg::gamma_threshold
|
|
gamma_method_e_str{gamma_method_enum::GAMMA_MULTIPLY, "multiply"}, // agg::gamma_multiply"
|
|
gamma_method_e_str{gamma_method_enum::gamma_method_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(gamma_method_e, gamma_method_enum)
|
|
|
|
using line_pattern_e_str = detail::EnumStringT<line_pattern_enum>;
|
|
constexpr detail::EnumMapT<line_pattern_enum, 3> line_pattern_e_map{{
|
|
line_pattern_e_str{line_pattern_enum::LINE_PATTERN_WARP, "warp"},
|
|
line_pattern_e_str{line_pattern_enum::LINE_PATTERN_REPEAT, "repeat"},
|
|
line_pattern_e_str{line_pattern_enum::line_pattern_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(line_pattern_e, line_pattern_enum)
|
|
|
|
using smooth_algorithm_e_str = detail::EnumStringT<smooth_algorithm_enum>;
|
|
constexpr detail::EnumMapT<smooth_algorithm_enum, 3> smooth_algorithm_e_map{{
|
|
smooth_algorithm_e_str{smooth_algorithm_enum::SMOOTH_ALGORITHM_BASIC, "basic"},
|
|
smooth_algorithm_e_str{smooth_algorithm_enum::SMOOTH_ALGORITHM_ADAPTIVE, "adaptive"},
|
|
smooth_algorithm_e_str{smooth_algorithm_enum::smooth_algorithm_enum_MAX, ""},
|
|
}};
|
|
IMPLEMENT_ENUM(smooth_algorithm_e, smooth_algorithm_enum)
|
|
|
|
} // namespace mapnik
|