mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
[pyton/matplotlib] Support plot
This commit is contained in:
committed by
Émilie Feral
parent
a6773ad73b
commit
a3b1b51f75
@@ -1,5 +1,4 @@
|
||||
#include "plot_store.h"
|
||||
#include <escher/palette.h>
|
||||
|
||||
namespace Matplotlib {
|
||||
|
||||
@@ -11,7 +10,8 @@ PlotStore::PlotStore() : Shared::InteractiveCurveViewRange(),
|
||||
|
||||
void PlotStore::flush() {
|
||||
m_dots = mp_obj_new_list(0, nullptr);
|
||||
m_texts = mp_obj_new_list(0, nullptr);
|
||||
m_segments = mp_obj_new_list(0, nullptr);
|
||||
m_labels = mp_obj_new_list(0, nullptr);
|
||||
}
|
||||
|
||||
// Iterators
|
||||
@@ -51,7 +51,7 @@ T PlotStore::ListIterator<T>::operator*() {
|
||||
return T(m_tuples[m_tupleIndex]);
|
||||
};
|
||||
|
||||
// Dots
|
||||
// Dot
|
||||
|
||||
template class PlotStore::ListIterator<PlotStore::Dot>;
|
||||
|
||||
@@ -70,9 +70,32 @@ void PlotStore::addDot(mp_obj_t x, mp_obj_t y, KDColor c) {
|
||||
mp_obj_list_append(m_dots, tuple);
|
||||
}
|
||||
|
||||
// Text
|
||||
// Segment
|
||||
|
||||
PlotStore::Text::Text(mp_obj_t tuple) {
|
||||
template class PlotStore::ListIterator<PlotStore::Segment>;
|
||||
|
||||
PlotStore::Segment::Segment(mp_obj_t tuple) {
|
||||
mp_obj_t * elements;
|
||||
mp_obj_get_array_fixed_n(tuple, 5, &elements);
|
||||
m_xStart = mp_obj_get_float(elements[0]);
|
||||
m_yStart = mp_obj_get_float(elements[1]);
|
||||
m_xEnd = mp_obj_get_float(elements[2]);
|
||||
m_yEnd = mp_obj_get_float(elements[3]);
|
||||
m_color = KDColor::RGB16(mp_obj_get_int(elements[4]));
|
||||
}
|
||||
|
||||
void PlotStore::addSegment(mp_obj_t xStart, mp_obj_t yStart, mp_obj_t xEnd, mp_obj_t yEnd, KDColor c) {
|
||||
mp_obj_t color = mp_obj_new_int(c);
|
||||
mp_obj_t items[5] = {xStart, yStart, xEnd, yEnd, color};
|
||||
mp_obj_t tuple = mp_obj_new_tuple(5, items);
|
||||
mp_obj_list_append(m_segments, tuple);
|
||||
}
|
||||
|
||||
// Label
|
||||
|
||||
template class PlotStore::ListIterator<PlotStore::Label>;
|
||||
|
||||
PlotStore::Label::Label(mp_obj_t tuple) {
|
||||
mp_obj_t * elements;
|
||||
mp_obj_get_array_fixed_n(tuple, 3, &elements);
|
||||
m_x = mp_obj_get_float(elements[0]);
|
||||
@@ -80,10 +103,10 @@ PlotStore::Text::Text(mp_obj_t tuple) {
|
||||
m_string = mp_obj_str_get_str(elements[2]);
|
||||
}
|
||||
|
||||
void PlotStore::addText(mp_obj_t x, mp_obj_t y, mp_obj_t string) {
|
||||
void PlotStore::addLabel(mp_obj_t x, mp_obj_t y, mp_obj_t string) {
|
||||
mp_obj_t items[3] = {x, y, string};
|
||||
mp_obj_t tuple = mp_obj_new_tuple(3, items);
|
||||
mp_obj_list_append(m_texts, tuple);
|
||||
mp_obj_list_append(m_labels, tuple);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user