32#ifndef RACK_SVG_INTERACTIVE
33#define RACK_SVG_INTERACTIVE
37#include <drain/prog/Command.h>
38#include <drain/util/Base64.h>
43#include "graphics-overlay.h"
56 CmdRect() :
CmdPolarBase(__FUNCTION__,
"Draw rectangle or circle", Graphic::GRAPHIC::RECTANGLE) {
59 getParameters().link(
"bbox", bbox,
"xLL,yLL,xUR,yUR[px|m|deg] or xLL,yLL,r").setSeparator(
',');
61 getParameters().link(
"resolution", resolution.tuple(),
"pixel").setFill(
true).setSeparator(
',');
62 getParameters().link(
"MASK", MASK,
"Render outer region with style class '.MASK'");
69 getParameters().
copyStruct(cmd.getParameters(), cmd, *
this);
72 void exec()
const override ;
74 std::string bbox =
"";
84 getParameters().link(
"resolution", resolution.tuple(),
"pixel").setFill(
true);
85 getParameters().link(
"MASK", MASK,
"Fill outside using CSS class '.MASK'");
91 getParameters().
copyStruct(cmd.getParameters(), cmd, *
this);
94 void exec()
const override ;
106 getParameters().link(
"filename", filename,
"PNG data file path");
110 getParameters().
copyStruct(cmd.getParameters(), cmd, *
this);
113 void exec()
const override;
117 std::string filename;
132 void exec()
const override ;
136 template <
typename T>
137 void test(drain::image::TreeSVG & img,
const std::vector<T> & v,
drain::Logger & mout)
const {
140 mout.experimental<LOG_NOTICE>(
"Testing: vector of ", typeName);
143 bytes.convertFrom(v);
145 drain::Base64::base64_encode(bytes, code);
146 mout.experimental<LOG_INFO>(
"Code: ", code);
148 drain::image::TreeSVG & imgData = img[typeName](svg::METADATA);
149 imgData->set(
"data-base64", code);
150 imgData->set(
"data-basetype", typeName);
169 getParameters().link(
"lonlat", coords.tuple(25.0, 60.0),
"Coordinate (lon,lat) in degrees(decimal) or metres.");
170 getParameters().link(
"radius", radiusMetres.range.tuple(0,25000),
"metres or relative").setFill(
true);
171 getParameters().link(
"id",
id,
"XML element id");
172 getParameters().link(
"style", style,
"XML element CSS style");
177 getParameters().
copyStruct(cmd.getParameters(), cmd, *
this);
180 void exec()
const override;
LogSourc e is the means for a function or any program segment to "connect" to a Log.
Definition Log.h:313
void copyStruct(const ReferenceMap &m, const T &src, T &dst, extLinkPolicy policy=RESERVE)
Experimental. Copies references and values of a structure to another.
Definition ReferenceMap.h:415
char separator
Default character used for splitting input and output. See setValues.
Definition SmartMap.h:85
Definition graphics-interactive.h:79
void exec() const override
Run the command with current parameter values.
Definition graphics-interactive.cpp:365
Definition graphics-interactive.h:101
void exec() const override
Run the command with current parameter values.
Definition graphics-interactive.cpp:457
Definition graphics-interactive.h:158
void exec() const override
Definition graphics-interactive.cpp:78
Definition graphics-overlay.h:52
Definition graphics-interactive.h:52
void exec() const override
Run the command with current parameter values.
Definition graphics-interactive.cpp:201
Definition graphics-interactive.h:122
void exec() const override
Run the command with current parameter values.
Definition graphics-interactive.cpp:567
Definition DataSelector.cpp:44
Default implementation.
Definition TypeName.h:57