41 #include <unordered_map> 64 static int m_num_windows;
72 virtual ~
Figure() =
default;
74 TRASE_DISPATCH_BACKENDS
79 std::shared_ptr<Axis>
axis();
84 std::shared_ptr<Axis>
axis(
int i,
int j);
94 template <
typename Backend>
void show(
Backend &backend);
105 template <
typename Backend>
void draw(
Backend &backend,
float time);
113 std::shared_ptr<Axis> update_layout(
const vint2_t &new_position);
115 template <
typename Backend>
void render_interactive_frame(
Backend &backend);
116 #ifdef __EMSCRIPTEN__ 117 template <
typename Backend>
static void emscripten_callback(
void *data);
127 return std::make_shared<Figure>(
pixels);
132 #include "frontend/Figure.tcc" a base class for all the backends that support drawing a single frame
Definition: Backend.hpp:50
Base class for drawable objects in a figure.
Definition: Drawable.hpp:99
An N-dimensional vector class.
Definition: Vector.hpp:59
a base class for all the backends that support animation over time
Definition: Backend.hpp:62
hash function for an STL map of 2d int vectors
Definition: Vector.hpp:642
Definition: Backend.cpp:39
equality function for an STL map of 2d int vectors
Definition: Vector.hpp:650
const bfloat2_t & pixels() const
returns this objects drawable area in raw pixels
Definition: Drawable.hpp:156