4#ifndef _SCENEPIC_FRAME2D_H_
5#define _SCENEPIC_FRAME2D_H_
30 const CoordinateBuffer& coordinates,
32 float line_width = 1.0f,
34 bool close_path =
false,
35 const std::string& layer_id =
"");
53 float line_width = 1.0f,
55 const std::string& layer_id =
"");
71 float line_width = 1.0f,
73 const std::string& layer_id =
"");
86 const std::string& image_id,
87 const std::string& position_type =
"fit",
91 bool smoothed =
false,
92 const std::string& layer_id =
"");
108 const std::string& position_type =
"fit",
112 bool smoothed =
false,
113 const std::string& layer_id =
"");
125 const std::string& text,
129 float size_in_pixels = 12.0f,
130 const std::string& font_family =
"sans-serif",
131 const std::string& layer_id =
"");
150 Frame2D(
const std::string& frame_id);
153 lookup_layer_ids(
const std::vector<std::string>& layer_ids)
const;
154 std::map<std::string, std::uint8_t> m_layer_lookup;
156 std::string m_frame_id;
157 CoordinateBuffer m_coord_buffer;
159 PolyLineBuffer m_line_buffer;
160 StyleBuffer m_line_style_buffer;
161 std::vector<std::string> m_line_layer_ids;
162 std::vector<float> m_line_width;
164 CircleBuffer m_circle_buffer;
165 std::vector<std::string> m_circle_layer_ids;
166 StyleBuffer m_circle_style_buffer;
168 std::vector<JsonValue> m_frame_commands;
174 const std::string& text,
177 float size_in_pixels,
178 const std::string& font_family,
179 const std::string& layer_id);
185 std::uint32_t m_index;
186 std::string m_fill_style;
187 float m_size_in_pixels;
188 std::string m_font_family;
189 std::string m_layer_id;
196 const std::string& image_id,
197 const std::string& position_type,
201 const std::string& layer_id);
206 std::string m_image_id;
207 std::string m_position_type;
208 std::uint32_t m_index;
211 std::string m_layer_id;
218 const std::string& position_type,
222 const std::string& layer_id);
227 std::string m_position_type;
228 std::uint32_t m_index;
231 std::string m_layer_id;
A 2D canvas that can contain a number of Frame2Ds.
Definition: canvas2d.h:21
Class for representing color values.
Definition: color.h:19
static const Color None()
Constant value indicating "no color".
Represents a frame of a 2D animation.
Definition: frame2d.h:19
std::string to_string() const
Return a JSON string representing the object.
void add_rectangle(float x, float y, float w, float h, const Color &line_color=Colors::Black, float line_width=1.0f, const Color &fill_color=Color::None(), const std::string &layer_id="")
Add a rectangle to the frame.
void add_video(const std::string &position_type="fit", float x=0.0f, float y=0.0f, float scale=1.0f, bool smoothed=false, const std::string &layer_id="")
Add a video to the frame.
std::uint16_t num_coordinates() const
The number of coordinates in the buffer.
JsonValue to_json() const
Convert this object into ScenePic json.
void add_line(const CoordinateBuffer &coordinates, const Color &line_color=Colors::Black, float line_width=1.0f, const Color &fill_color=Color::None(), bool close_path=false, const std::string &layer_id="")
Add a line to the frame.
void add_image(const std::string &image_id, const std::string &position_type="fit", float x=0.0f, float y=0.0f, float scale=1.0f, bool smoothed=false, const std::string &layer_id="")
Add an image to the frame.
void add_circle(float x, float y, float radius, const Color &line_color=Colors::Black, float line_width=1.0f, const Color &fill_color=Color::None(), const std::string &layer_id="")
Add a circle to the frame.
void add_text(const std::string &text, float left, float bottom, const Color &color=Colors::White, float size_in_pixels=12.0f, const std::string &font_family="sans-serif", const std::string &layer_id="")
Add some text to the frame.
A ScenePic Image type.
Definition: image.h:17
Representation of a JSON value according to the specification at https://www.json....
Definition: json_value.h:30
const Color White
Definition: color.h:96
const Color Black
Definition: color.h:95
Definition: audio_track.h:14