#pragma once #include #include #include #include "model/ColorScale.hpp" // core::Rgba namespace geopro::app { // .lvl 文件一行(复刻 colorUtils.js parseLvlFile / generateLvlContent)。 struct LvlRow { double level = 0.0; geopro::core::Rgba color{0, 0, 0, 255}; // FFGColor(填充色) bool dashed = false; // LStyle: solid / .1 in. Dash geopro::core::Rgba lineColor{0, 0, 0, 255}; // LColor(线色) }; // 解析 .lvl 文本 → 行列表(头部校验失败/空 → 空)。 std::vector parseLvl(const std::string& content); // 生成 .lvl 文本(LVL3 头 + 每行 14 列),与原系统互通。 std::string generateLvl(const std::vector& rows); // .clr 连续色阶(复刻 colorEditor.vue import/export)。pos ∈ [0,1] 升序,opacity ∈ [0,1]。 struct ClrData { std::vector> stops; double opacity = 1.0; }; // 解析 .clr 文本(头 `ColorMap n 0 6 2` + `pos*100 r g b a` 行 + 末两行透明度)。失败 → stops 空。 ClrData parseClr(const std::string& content); // 生成 .clr 文本。 std::string generateClr(const ClrData& data); } // namespace geopro::app