From 28d5993fe6b76c9d5908dd0cf55e6cb89663dad0 Mon Sep 17 00:00:00 2001 From: GenevensiS <66968533+G-e-n-e-v-e-n-s-i-S@users.noreply.github.com> Date: Sat, 17 Jan 2026 07:55:34 +0100 Subject: [PATCH] improve to_json(StyleP) --- src/data/field/choice.cpp | 28 +++ src/data/field/choice.hpp | 7 +- src/data/field/text.cpp | 2 +- src/data/field/text.hpp | 1 + src/gfx/combine_image.cpp | 382 +++++++++++++++++++++++----------- src/gfx/gfx.hpp | 2 + src/render/symbol/filter.hpp | 6 +- src/script/functions/json.cpp | 282 ++++++++++++++++++++++++- src/script/functions/json.hpp | 4 +- src/script/image.cpp | 14 +- src/script/image.hpp | 20 +- src/util/alignment.cpp | 35 +++- src/util/alignment.hpp | 4 + 13 files changed, 637 insertions(+), 150 deletions(-) diff --git a/src/data/field/choice.cpp b/src/data/field/choice.cpp index 41a1776e..87a03403 100644 --- a/src/data/field/choice.cpp +++ b/src/data/field/choice.cpp @@ -239,6 +239,34 @@ void ChoiceStyle::invalidate() { tellListeners(CHANGE_OTHER); } +String popup_style_to_string(const ChoicePopupStyle& choice) { + switch (choice) { + case POPUP_MENU: return "menu"; + case POPUP_DROPDOWN: return "drop down"; + case POPUP_DROPDOWN_IN_PLACE: return "drop down in place"; + default: return "menu"; + } +} + +String render_style_to_string(const ChoiceRenderStyle& choice) { + switch (choice) { + case RENDER_TEXT: return "text"; + case RENDER_IMAGE: return "image"; + case RENDER_HIDDEN: return "hidden"; + case RENDER_CHECKLIST: return "checklist"; + case RENDER_LIST: return "list"; + case RENDER_BOTH: return "both"; + case RENDER_HIDDEN_IMAGE: return "image hidden"; + case RENDER_TEXT_CHECKLIST: return "text checklist"; + case RENDER_IMAGE_CHECKLIST: return "image checklist"; + case RENDER_BOTH_CHECKLIST: return "both checklist"; + case RENDER_TEXT_LIST: return "text list"; + case RENDER_IMAGE_LIST: return "image list"; + case RENDER_BOTH_LIST: return "both list"; + default: return "text"; + } +} + IMPLEMENT_REFLECTION_ENUM(ChoicePopupStyle) { VALUE_N("dropdown", POPUP_DROPDOWN); VALUE_N("menu", POPUP_MENU); diff --git a/src/data/field/choice.hpp b/src/data/field/choice.hpp index 490e5f21..4b126be8 100644 --- a/src/data/field/choice.hpp +++ b/src/data/field/choice.hpp @@ -111,7 +111,10 @@ enum ChoicePopupStyle { POPUP_MENU , POPUP_DROPDOWN , POPUP_DROPDOWN_IN_PLACE -}; +}; + +String popup_style_to_string(const ChoicePopupStyle&); + // How should a choice value be rendered? enum ChoiceRenderStyle { RENDER_TEXT = 0x01 // render the name as text @@ -129,6 +132,8 @@ enum ChoiceRenderStyle , RENDER_BOTH_LIST = RENDER_LIST | RENDER_BOTH }; +String render_style_to_string(const ChoiceRenderStyle&); + enum ThumbnailStatus { THUMB_NOT_MADE // there is no image , THUMB_OK // image is ok diff --git a/src/data/field/text.cpp b/src/data/field/text.cpp index f3c27d87..4e33dc9a 100644 --- a/src/data/field/text.cpp +++ b/src/data/field/text.cpp @@ -127,7 +127,7 @@ void LineLayout::reflect(GetMember& handler) const { REFLECT(top); REFLECT(height); REFLECT_N("bottom", bottom()); - REFLECT_N("middle", top + height/2); + REFLECT_N("middle", middle()); if (type > Type::LINE) REFLECT(lines); if (type > Type::PARAGRAPH) REFLECT(paragraphs); if (type > Type::BLOCK) REFLECT(blocks); diff --git a/src/data/field/text.hpp b/src/data/field/text.hpp index 81b1c31d..0fbac382 100644 --- a/src/data/field/text.hpp +++ b/src/data/field/text.hpp @@ -55,6 +55,7 @@ public: LineLayout() {} LineLayout(double width, double top, double height, Type type) : width(width), top(top), height(height), type(type) {} + inline double middle() const { return top+height/2.; } inline double bottom() const { return top+height; } void reflect(GetMember& gm) const; }; diff --git a/src/gfx/combine_image.cpp b/src/gfx/combine_image.cpp index f044c0a8..e0b38a09 100644 --- a/src/gfx/combine_image.cpp +++ b/src/gfx/combine_image.cpp @@ -15,133 +15,265 @@ using namespace std; // ----------------------------------------------------------------------------- : Reflection for combining modes +String combine_to_string(const ImageCombine& combine) { + switch (combine) { + case COMBINE_NORMAL: return "normal"; + case COMBINE_ADD: return "add"; + case COMBINE_SUBTRACT: return "subtract"; + case COMBINE_STAMP: return "stamp"; + case COMBINE_DIFFERENCE: return "difference"; + case COMBINE_NEGATION: return "negation"; + case COMBINE_MULTIPLY: return "multiply"; + case COMBINE_DARKEN: return "darken"; + case COMBINE_LIGHTEN: return "lighten"; + case COMBINE_COLOR_DODGE: return "color dodge"; + case COMBINE_COLOR_BURN: return "color burn"; + case COMBINE_SCREEN: return "screen"; + case COMBINE_OVERLAY: return "overlay"; + case COMBINE_HARD_LIGHT: return "hard light"; + case COMBINE_SOFT_LIGHT: return "soft light"; + case COMBINE_REFLECT: return "reflect"; + case COMBINE_GLOW: return "glow"; + case COMBINE_FREEZE: return "freeze"; + case COMBINE_HEAT: return "heat"; + case COMBINE_AND: return "and"; + case COMBINE_OR: return "or"; + case COMBINE_XOR: return "xor"; + case COMBINE_SHADOW: return "shadow"; + case COMBINE_SYMMETRIC_OVERLAY: return "symmetric overlay"; + case COMBINE_BRIGHTNESS_TO_ALPHA: return "brightness to alpha"; + case COMBINE_DARKNESS_TO_ALPHA: return "darkness to alpha"; + case COMBINE_GREATER_THAN_5: return "greater than 5"; + case COMBINE_GREATER_THAN_10: return "greater than 10"; + case COMBINE_GREATER_THAN_15: return "greater than 15"; + case COMBINE_GREATER_THAN_20: return "greater than 20"; + case COMBINE_GREATER_THAN_25: return "greater than 25"; + case COMBINE_GREATER_THAN_30: return "greater than 30"; + case COMBINE_GREATER_THAN_35: return "greater than 35"; + case COMBINE_GREATER_THAN_40: return "greater than 40"; + case COMBINE_GREATER_THAN_45: return "greater than 45"; + case COMBINE_GREATER_THAN_50: return "greater than 50"; + case COMBINE_GREATER_THAN_55: return "greater than 55"; + case COMBINE_GREATER_THAN_60: return "greater than 60"; + case COMBINE_GREATER_THAN_65: return "greater than 65"; + case COMBINE_GREATER_THAN_70: return "greater than 70"; + case COMBINE_GREATER_THAN_75: return "greater than 75"; + case COMBINE_GREATER_THAN_80: return "greater than 80"; + case COMBINE_GREATER_THAN_85: return "greater than 85"; + case COMBINE_GREATER_THAN_90: return "greater than 90"; + case COMBINE_GREATER_THAN_95: return "greater than 95"; + case COMBINE_GREATER_THAN_100: return "greater than 100"; + case COMBINE_GREATER_THAN_105: return "greater than 105"; + case COMBINE_GREATER_THAN_110: return "greater than 110"; + case COMBINE_GREATER_THAN_115: return "greater than 115"; + case COMBINE_GREATER_THAN_120: return "greater than 120"; + case COMBINE_GREATER_THAN_125: return "greater than 125"; + case COMBINE_GREATER_THAN_130: return "greater than 130"; + case COMBINE_GREATER_THAN_135: return "greater than 135"; + case COMBINE_GREATER_THAN_140: return "greater than 140"; + case COMBINE_GREATER_THAN_145: return "greater than 145"; + case COMBINE_GREATER_THAN_150: return "greater than 150"; + case COMBINE_GREATER_THAN_155: return "greater than 155"; + case COMBINE_GREATER_THAN_160: return "greater than 160"; + case COMBINE_GREATER_THAN_165: return "greater than 165"; + case COMBINE_GREATER_THAN_170: return "greater than 170"; + case COMBINE_GREATER_THAN_175: return "greater than 175"; + case COMBINE_GREATER_THAN_180: return "greater than 180"; + case COMBINE_GREATER_THAN_185: return "greater than 185"; + case COMBINE_GREATER_THAN_190: return "greater than 190"; + case COMBINE_GREATER_THAN_195: return "greater than 195"; + case COMBINE_GREATER_THAN_200: return "greater than 200"; + case COMBINE_GREATER_THAN_205: return "greater than 205"; + case COMBINE_GREATER_THAN_210: return "greater than 210"; + case COMBINE_GREATER_THAN_215: return "greater than 215"; + case COMBINE_GREATER_THAN_220: return "greater than 220"; + case COMBINE_GREATER_THAN_225: return "greater than 225"; + case COMBINE_GREATER_THAN_230: return "greater than 230"; + case COMBINE_GREATER_THAN_235: return "greater than 235"; + case COMBINE_GREATER_THAN_240: return "greater than 240"; + case COMBINE_GREATER_THAN_245: return "greater than 245"; + case COMBINE_GREATER_THAN_250: return "greater than 250"; + case COMBINE_SMALLER_THAN_5: return "smaller than 5"; + case COMBINE_SMALLER_THAN_10: return "smaller than 10"; + case COMBINE_SMALLER_THAN_15: return "smaller than 15"; + case COMBINE_SMALLER_THAN_20: return "smaller than 20"; + case COMBINE_SMALLER_THAN_25: return "smaller than 25"; + case COMBINE_SMALLER_THAN_30: return "smaller than 30"; + case COMBINE_SMALLER_THAN_35: return "smaller than 35"; + case COMBINE_SMALLER_THAN_40: return "smaller than 40"; + case COMBINE_SMALLER_THAN_45: return "smaller than 45"; + case COMBINE_SMALLER_THAN_50: return "smaller than 50"; + case COMBINE_SMALLER_THAN_55: return "smaller than 55"; + case COMBINE_SMALLER_THAN_60: return "smaller than 60"; + case COMBINE_SMALLER_THAN_65: return "smaller than 65"; + case COMBINE_SMALLER_THAN_70: return "smaller than 70"; + case COMBINE_SMALLER_THAN_75: return "smaller than 75"; + case COMBINE_SMALLER_THAN_80: return "smaller than 80"; + case COMBINE_SMALLER_THAN_85: return "smaller than 85"; + case COMBINE_SMALLER_THAN_90: return "smaller than 90"; + case COMBINE_SMALLER_THAN_95: return "smaller than 95"; + case COMBINE_SMALLER_THAN_100: return "smaller than 100"; + case COMBINE_SMALLER_THAN_105: return "smaller than 105"; + case COMBINE_SMALLER_THAN_110: return "smaller than 110"; + case COMBINE_SMALLER_THAN_115: return "smaller than 115"; + case COMBINE_SMALLER_THAN_120: return "smaller than 120"; + case COMBINE_SMALLER_THAN_125: return "smaller than 125"; + case COMBINE_SMALLER_THAN_130: return "smaller than 130"; + case COMBINE_SMALLER_THAN_135: return "smaller than 135"; + case COMBINE_SMALLER_THAN_140: return "smaller than 140"; + case COMBINE_SMALLER_THAN_145: return "smaller than 145"; + case COMBINE_SMALLER_THAN_150: return "smaller than 150"; + case COMBINE_SMALLER_THAN_155: return "smaller than 155"; + case COMBINE_SMALLER_THAN_160: return "smaller than 160"; + case COMBINE_SMALLER_THAN_165: return "smaller than 165"; + case COMBINE_SMALLER_THAN_170: return "smaller than 170"; + case COMBINE_SMALLER_THAN_175: return "smaller than 175"; + case COMBINE_SMALLER_THAN_180: return "smaller than 180"; + case COMBINE_SMALLER_THAN_185: return "smaller than 185"; + case COMBINE_SMALLER_THAN_190: return "smaller than 190"; + case COMBINE_SMALLER_THAN_195: return "smaller than 195"; + case COMBINE_SMALLER_THAN_200: return "smaller than 200"; + case COMBINE_SMALLER_THAN_205: return "smaller than 205"; + case COMBINE_SMALLER_THAN_210: return "smaller than 210"; + case COMBINE_SMALLER_THAN_215: return "smaller than 215"; + case COMBINE_SMALLER_THAN_220: return "smaller than 220"; + case COMBINE_SMALLER_THAN_225: return "smaller than 225"; + case COMBINE_SMALLER_THAN_230: return "smaller than 230"; + case COMBINE_SMALLER_THAN_235: return "smaller than 235"; + case COMBINE_SMALLER_THAN_240: return "smaller than 240"; + case COMBINE_SMALLER_THAN_245: return "smaller than 245"; + case COMBINE_SMALLER_THAN_250: return "smaller than 250"; + default: return "normal"; + } +} + IMPLEMENT_REFLECTION_ENUM(ImageCombine) { - VALUE_N("normal", COMBINE_NORMAL); - VALUE_N("add", COMBINE_ADD); - VALUE_N("subtract", COMBINE_SUBTRACT); - VALUE_N("stamp", COMBINE_STAMP); - VALUE_N("difference", COMBINE_DIFFERENCE); - VALUE_N("negation", COMBINE_NEGATION); - VALUE_N("multiply", COMBINE_MULTIPLY); - VALUE_N("darken", COMBINE_DARKEN); - VALUE_N("lighten", COMBINE_LIGHTEN); - VALUE_N("color dodge", COMBINE_COLOR_DODGE); - VALUE_N("color burn", COMBINE_COLOR_BURN); - VALUE_N("screen", COMBINE_SCREEN); - VALUE_N("overlay", COMBINE_OVERLAY); - VALUE_N("hard light", COMBINE_HARD_LIGHT); - VALUE_N("soft light", COMBINE_SOFT_LIGHT); - VALUE_N("reflect", COMBINE_REFLECT); - VALUE_N("glow", COMBINE_GLOW); - VALUE_N("freeze", COMBINE_FREEZE); - VALUE_N("heat", COMBINE_HEAT); - VALUE_N("and", COMBINE_AND); - VALUE_N("or", COMBINE_OR); - VALUE_N("xor", COMBINE_XOR); - VALUE_N("shadow", COMBINE_SHADOW); - VALUE_N("symmetric overlay", COMBINE_SYMMETRIC_OVERLAY); + VALUE_N("normal", COMBINE_NORMAL); + VALUE_N("add", COMBINE_ADD); + VALUE_N("subtract", COMBINE_SUBTRACT); + VALUE_N("stamp", COMBINE_STAMP); + VALUE_N("difference", COMBINE_DIFFERENCE); + VALUE_N("negation", COMBINE_NEGATION); + VALUE_N("multiply", COMBINE_MULTIPLY); + VALUE_N("darken", COMBINE_DARKEN); + VALUE_N("lighten", COMBINE_LIGHTEN); + VALUE_N("color dodge", COMBINE_COLOR_DODGE); + VALUE_N("color burn", COMBINE_COLOR_BURN); + VALUE_N("screen", COMBINE_SCREEN); + VALUE_N("overlay", COMBINE_OVERLAY); + VALUE_N("hard light", COMBINE_HARD_LIGHT); + VALUE_N("soft light", COMBINE_SOFT_LIGHT); + VALUE_N("reflect", COMBINE_REFLECT); + VALUE_N("glow", COMBINE_GLOW); + VALUE_N("freeze", COMBINE_FREEZE); + VALUE_N("heat", COMBINE_HEAT); + VALUE_N("and", COMBINE_AND); + VALUE_N("or", COMBINE_OR); + VALUE_N("xor", COMBINE_XOR); + VALUE_N("shadow", COMBINE_SHADOW); + VALUE_N("symmetric overlay", COMBINE_SYMMETRIC_OVERLAY); VALUE_N("brightness to alpha", COMBINE_BRIGHTNESS_TO_ALPHA); - VALUE_N("darkness to alpha", COMBINE_DARKNESS_TO_ALPHA); - VALUE_N("greater than 5", COMBINE_GREATER_THAN_5); - VALUE_N("greater than 10", COMBINE_GREATER_THAN_10); - VALUE_N("greater than 15", COMBINE_GREATER_THAN_15); - VALUE_N("greater than 20", COMBINE_GREATER_THAN_20); - VALUE_N("greater than 25", COMBINE_GREATER_THAN_25); - VALUE_N("greater than 30", COMBINE_GREATER_THAN_30); - VALUE_N("greater than 35", COMBINE_GREATER_THAN_35); - VALUE_N("greater than 40", COMBINE_GREATER_THAN_40); - VALUE_N("greater than 45", COMBINE_GREATER_THAN_45); - VALUE_N("greater than 50", COMBINE_GREATER_THAN_50); - VALUE_N("greater than 55", COMBINE_GREATER_THAN_55); - VALUE_N("greater than 60", COMBINE_GREATER_THAN_60); - VALUE_N("greater than 65", COMBINE_GREATER_THAN_65); - VALUE_N("greater than 70", COMBINE_GREATER_THAN_70); - VALUE_N("greater than 75", COMBINE_GREATER_THAN_75); - VALUE_N("greater than 80", COMBINE_GREATER_THAN_80); - VALUE_N("greater than 85", COMBINE_GREATER_THAN_85); - VALUE_N("greater than 90", COMBINE_GREATER_THAN_90); - VALUE_N("greater than 95", COMBINE_GREATER_THAN_95); - VALUE_N("greater than 100", COMBINE_GREATER_THAN_100); - VALUE_N("greater than 105", COMBINE_GREATER_THAN_105); - VALUE_N("greater than 110", COMBINE_GREATER_THAN_110); - VALUE_N("greater than 115", COMBINE_GREATER_THAN_115); - VALUE_N("greater than 120", COMBINE_GREATER_THAN_120); - VALUE_N("greater than 125", COMBINE_GREATER_THAN_125); - VALUE_N("greater than 130", COMBINE_GREATER_THAN_130); - VALUE_N("greater than 135", COMBINE_GREATER_THAN_135); - VALUE_N("greater than 140", COMBINE_GREATER_THAN_140); - VALUE_N("greater than 145", COMBINE_GREATER_THAN_145); - VALUE_N("greater than 150", COMBINE_GREATER_THAN_150); - VALUE_N("greater than 155", COMBINE_GREATER_THAN_155); - VALUE_N("greater than 160", COMBINE_GREATER_THAN_160); - VALUE_N("greater than 165", COMBINE_GREATER_THAN_165); - VALUE_N("greater than 170", COMBINE_GREATER_THAN_170); - VALUE_N("greater than 175", COMBINE_GREATER_THAN_175); - VALUE_N("greater than 180", COMBINE_GREATER_THAN_180); - VALUE_N("greater than 185", COMBINE_GREATER_THAN_185); - VALUE_N("greater than 190", COMBINE_GREATER_THAN_190); - VALUE_N("greater than 195", COMBINE_GREATER_THAN_195); - VALUE_N("greater than 200", COMBINE_GREATER_THAN_200); - VALUE_N("greater than 205", COMBINE_GREATER_THAN_205); - VALUE_N("greater than 210", COMBINE_GREATER_THAN_210); - VALUE_N("greater than 215", COMBINE_GREATER_THAN_215); - VALUE_N("greater than 220", COMBINE_GREATER_THAN_220); - VALUE_N("greater than 225", COMBINE_GREATER_THAN_225); - VALUE_N("greater than 230", COMBINE_GREATER_THAN_230); - VALUE_N("greater than 235", COMBINE_GREATER_THAN_235); - VALUE_N("greater than 240", COMBINE_GREATER_THAN_240); - VALUE_N("greater than 245", COMBINE_GREATER_THAN_245); - VALUE_N("greater than 250", COMBINE_GREATER_THAN_250); - VALUE_N("smaller than 5", COMBINE_SMALLER_THAN_5); - VALUE_N("smaller than 10", COMBINE_SMALLER_THAN_10); - VALUE_N("smaller than 15", COMBINE_SMALLER_THAN_15); - VALUE_N("smaller than 20", COMBINE_SMALLER_THAN_20); - VALUE_N("smaller than 25", COMBINE_SMALLER_THAN_25); - VALUE_N("smaller than 30", COMBINE_SMALLER_THAN_30); - VALUE_N("smaller than 35", COMBINE_SMALLER_THAN_35); - VALUE_N("smaller than 40", COMBINE_SMALLER_THAN_40); - VALUE_N("smaller than 45", COMBINE_SMALLER_THAN_45); - VALUE_N("smaller than 50", COMBINE_SMALLER_THAN_50); - VALUE_N("smaller than 55", COMBINE_SMALLER_THAN_55); - VALUE_N("smaller than 60", COMBINE_SMALLER_THAN_60); - VALUE_N("smaller than 65", COMBINE_SMALLER_THAN_65); - VALUE_N("smaller than 70", COMBINE_SMALLER_THAN_70); - VALUE_N("smaller than 75", COMBINE_SMALLER_THAN_75); - VALUE_N("smaller than 80", COMBINE_SMALLER_THAN_80); - VALUE_N("smaller than 85", COMBINE_SMALLER_THAN_85); - VALUE_N("smaller than 90", COMBINE_SMALLER_THAN_90); - VALUE_N("smaller than 95", COMBINE_SMALLER_THAN_95); - VALUE_N("smaller than 100", COMBINE_SMALLER_THAN_100); - VALUE_N("smaller than 105", COMBINE_SMALLER_THAN_105); - VALUE_N("smaller than 110", COMBINE_SMALLER_THAN_110); - VALUE_N("smaller than 115", COMBINE_SMALLER_THAN_115); - VALUE_N("smaller than 120", COMBINE_SMALLER_THAN_120); - VALUE_N("smaller than 125", COMBINE_SMALLER_THAN_125); - VALUE_N("smaller than 130", COMBINE_SMALLER_THAN_130); - VALUE_N("smaller than 135", COMBINE_SMALLER_THAN_135); - VALUE_N("smaller than 140", COMBINE_SMALLER_THAN_140); - VALUE_N("smaller than 145", COMBINE_SMALLER_THAN_145); - VALUE_N("smaller than 150", COMBINE_SMALLER_THAN_150); - VALUE_N("smaller than 155", COMBINE_SMALLER_THAN_155); - VALUE_N("smaller than 160", COMBINE_SMALLER_THAN_160); - VALUE_N("smaller than 165", COMBINE_SMALLER_THAN_165); - VALUE_N("smaller than 170", COMBINE_SMALLER_THAN_170); - VALUE_N("smaller than 175", COMBINE_SMALLER_THAN_175); - VALUE_N("smaller than 180", COMBINE_SMALLER_THAN_180); - VALUE_N("smaller than 185", COMBINE_SMALLER_THAN_185); - VALUE_N("smaller than 190", COMBINE_SMALLER_THAN_190); - VALUE_N("smaller than 195", COMBINE_SMALLER_THAN_195); - VALUE_N("smaller than 200", COMBINE_SMALLER_THAN_200); - VALUE_N("smaller than 205", COMBINE_SMALLER_THAN_205); - VALUE_N("smaller than 210", COMBINE_SMALLER_THAN_210); - VALUE_N("smaller than 215", COMBINE_SMALLER_THAN_215); - VALUE_N("smaller than 220", COMBINE_SMALLER_THAN_220); - VALUE_N("smaller than 225", COMBINE_SMALLER_THAN_225); - VALUE_N("smaller than 230", COMBINE_SMALLER_THAN_230); - VALUE_N("smaller than 235", COMBINE_SMALLER_THAN_235); - VALUE_N("smaller than 240", COMBINE_SMALLER_THAN_240); - VALUE_N("smaller than 245", COMBINE_SMALLER_THAN_245); - VALUE_N("smaller than 250", COMBINE_SMALLER_THAN_250); + VALUE_N("darkness to alpha", COMBINE_DARKNESS_TO_ALPHA); + VALUE_N("greater than 5", COMBINE_GREATER_THAN_5); + VALUE_N("greater than 10", COMBINE_GREATER_THAN_10); + VALUE_N("greater than 15", COMBINE_GREATER_THAN_15); + VALUE_N("greater than 20", COMBINE_GREATER_THAN_20); + VALUE_N("greater than 25", COMBINE_GREATER_THAN_25); + VALUE_N("greater than 30", COMBINE_GREATER_THAN_30); + VALUE_N("greater than 35", COMBINE_GREATER_THAN_35); + VALUE_N("greater than 40", COMBINE_GREATER_THAN_40); + VALUE_N("greater than 45", COMBINE_GREATER_THAN_45); + VALUE_N("greater than 50", COMBINE_GREATER_THAN_50); + VALUE_N("greater than 55", COMBINE_GREATER_THAN_55); + VALUE_N("greater than 60", COMBINE_GREATER_THAN_60); + VALUE_N("greater than 65", COMBINE_GREATER_THAN_65); + VALUE_N("greater than 70", COMBINE_GREATER_THAN_70); + VALUE_N("greater than 75", COMBINE_GREATER_THAN_75); + VALUE_N("greater than 80", COMBINE_GREATER_THAN_80); + VALUE_N("greater than 85", COMBINE_GREATER_THAN_85); + VALUE_N("greater than 90", COMBINE_GREATER_THAN_90); + VALUE_N("greater than 95", COMBINE_GREATER_THAN_95); + VALUE_N("greater than 100", COMBINE_GREATER_THAN_100); + VALUE_N("greater than 105", COMBINE_GREATER_THAN_105); + VALUE_N("greater than 110", COMBINE_GREATER_THAN_110); + VALUE_N("greater than 115", COMBINE_GREATER_THAN_115); + VALUE_N("greater than 120", COMBINE_GREATER_THAN_120); + VALUE_N("greater than 125", COMBINE_GREATER_THAN_125); + VALUE_N("greater than 130", COMBINE_GREATER_THAN_130); + VALUE_N("greater than 135", COMBINE_GREATER_THAN_135); + VALUE_N("greater than 140", COMBINE_GREATER_THAN_140); + VALUE_N("greater than 145", COMBINE_GREATER_THAN_145); + VALUE_N("greater than 150", COMBINE_GREATER_THAN_150); + VALUE_N("greater than 155", COMBINE_GREATER_THAN_155); + VALUE_N("greater than 160", COMBINE_GREATER_THAN_160); + VALUE_N("greater than 165", COMBINE_GREATER_THAN_165); + VALUE_N("greater than 170", COMBINE_GREATER_THAN_170); + VALUE_N("greater than 175", COMBINE_GREATER_THAN_175); + VALUE_N("greater than 180", COMBINE_GREATER_THAN_180); + VALUE_N("greater than 185", COMBINE_GREATER_THAN_185); + VALUE_N("greater than 190", COMBINE_GREATER_THAN_190); + VALUE_N("greater than 195", COMBINE_GREATER_THAN_195); + VALUE_N("greater than 200", COMBINE_GREATER_THAN_200); + VALUE_N("greater than 205", COMBINE_GREATER_THAN_205); + VALUE_N("greater than 210", COMBINE_GREATER_THAN_210); + VALUE_N("greater than 215", COMBINE_GREATER_THAN_215); + VALUE_N("greater than 220", COMBINE_GREATER_THAN_220); + VALUE_N("greater than 225", COMBINE_GREATER_THAN_225); + VALUE_N("greater than 230", COMBINE_GREATER_THAN_230); + VALUE_N("greater than 235", COMBINE_GREATER_THAN_235); + VALUE_N("greater than 240", COMBINE_GREATER_THAN_240); + VALUE_N("greater than 245", COMBINE_GREATER_THAN_245); + VALUE_N("greater than 250", COMBINE_GREATER_THAN_250); + VALUE_N("smaller than 5", COMBINE_SMALLER_THAN_5); + VALUE_N("smaller than 10", COMBINE_SMALLER_THAN_10); + VALUE_N("smaller than 15", COMBINE_SMALLER_THAN_15); + VALUE_N("smaller than 20", COMBINE_SMALLER_THAN_20); + VALUE_N("smaller than 25", COMBINE_SMALLER_THAN_25); + VALUE_N("smaller than 30", COMBINE_SMALLER_THAN_30); + VALUE_N("smaller than 35", COMBINE_SMALLER_THAN_35); + VALUE_N("smaller than 40", COMBINE_SMALLER_THAN_40); + VALUE_N("smaller than 45", COMBINE_SMALLER_THAN_45); + VALUE_N("smaller than 50", COMBINE_SMALLER_THAN_50); + VALUE_N("smaller than 55", COMBINE_SMALLER_THAN_55); + VALUE_N("smaller than 60", COMBINE_SMALLER_THAN_60); + VALUE_N("smaller than 65", COMBINE_SMALLER_THAN_65); + VALUE_N("smaller than 70", COMBINE_SMALLER_THAN_70); + VALUE_N("smaller than 75", COMBINE_SMALLER_THAN_75); + VALUE_N("smaller than 80", COMBINE_SMALLER_THAN_80); + VALUE_N("smaller than 85", COMBINE_SMALLER_THAN_85); + VALUE_N("smaller than 90", COMBINE_SMALLER_THAN_90); + VALUE_N("smaller than 95", COMBINE_SMALLER_THAN_95); + VALUE_N("smaller than 100", COMBINE_SMALLER_THAN_100); + VALUE_N("smaller than 105", COMBINE_SMALLER_THAN_105); + VALUE_N("smaller than 110", COMBINE_SMALLER_THAN_110); + VALUE_N("smaller than 115", COMBINE_SMALLER_THAN_115); + VALUE_N("smaller than 120", COMBINE_SMALLER_THAN_120); + VALUE_N("smaller than 125", COMBINE_SMALLER_THAN_125); + VALUE_N("smaller than 130", COMBINE_SMALLER_THAN_130); + VALUE_N("smaller than 135", COMBINE_SMALLER_THAN_135); + VALUE_N("smaller than 140", COMBINE_SMALLER_THAN_140); + VALUE_N("smaller than 145", COMBINE_SMALLER_THAN_145); + VALUE_N("smaller than 150", COMBINE_SMALLER_THAN_150); + VALUE_N("smaller than 155", COMBINE_SMALLER_THAN_155); + VALUE_N("smaller than 160", COMBINE_SMALLER_THAN_160); + VALUE_N("smaller than 165", COMBINE_SMALLER_THAN_165); + VALUE_N("smaller than 170", COMBINE_SMALLER_THAN_170); + VALUE_N("smaller than 175", COMBINE_SMALLER_THAN_175); + VALUE_N("smaller than 180", COMBINE_SMALLER_THAN_180); + VALUE_N("smaller than 185", COMBINE_SMALLER_THAN_185); + VALUE_N("smaller than 190", COMBINE_SMALLER_THAN_190); + VALUE_N("smaller than 195", COMBINE_SMALLER_THAN_195); + VALUE_N("smaller than 200", COMBINE_SMALLER_THAN_200); + VALUE_N("smaller than 205", COMBINE_SMALLER_THAN_205); + VALUE_N("smaller than 210", COMBINE_SMALLER_THAN_210); + VALUE_N("smaller than 215", COMBINE_SMALLER_THAN_215); + VALUE_N("smaller than 220", COMBINE_SMALLER_THAN_220); + VALUE_N("smaller than 225", COMBINE_SMALLER_THAN_225); + VALUE_N("smaller than 230", COMBINE_SMALLER_THAN_230); + VALUE_N("smaller than 235", COMBINE_SMALLER_THAN_235); + VALUE_N("smaller than 240", COMBINE_SMALLER_THAN_240); + VALUE_N("smaller than 245", COMBINE_SMALLER_THAN_245); + VALUE_N("smaller than 250", COMBINE_SMALLER_THAN_250); } // ----------------------------------------------------------------------------- : Combining functions diff --git a/src/gfx/gfx.hpp b/src/gfx/gfx.hpp index 91333093..82b12dcb 100644 --- a/src/gfx/gfx.hpp +++ b/src/gfx/gfx.hpp @@ -245,6 +245,8 @@ enum ImageCombine , COMBINE_SMALLER_THAN_250 }; +String combine_to_string(const ImageCombine&); + /// Combine image b onto image a using some combining function. /// The results are stored in the image A. /// This image gets the alpha channel from B, it should then be diff --git a/src/render/symbol/filter.hpp b/src/render/symbol/filter.hpp index 8d2ca997..3b6c9ae5 100644 --- a/src/render/symbol/filter.hpp +++ b/src/render/symbol/filter.hpp @@ -65,8 +65,8 @@ public: Color color(double x, double y, SymbolSet point) const override; String fillType() const override; bool operator == (const SymbolFilter& that) const override; -private: Color fill_color, border_color; +private: DECLARE_REFLECTION_OVERRIDE(); }; @@ -78,9 +78,9 @@ public: : fill_color_1(fill_color_1), border_color_1(border_color_1) , fill_color_2(fill_color_2), border_color_2(border_color_2) {} -protected: Color fill_color_1, border_color_1; Color fill_color_2, border_color_2; +protected: template Color color(double x, double y, SymbolSet point, const T* t) const; bool equal(const GradientSymbolFilter& that) const; @@ -102,9 +102,9 @@ public: /// return time on the gradient, used by GradientSymbolFilter::color inline double t(double x, double y) const; -private: double center_x, center_y; double end_x, end_y; +private: mutable double len; DECLARE_REFLECTION_OVERRIDE(); }; diff --git a/src/script/functions/json.cpp b/src/script/functions/json.cpp index 843ac9d0..975e47db 100644 --- a/src/script/functions/json.cpp +++ b/src/script/functions/json.cpp @@ -12,7 +12,11 @@ #include #include #include +#include +#include +#include #include +#include #include