Files
Upsilon/python/port/mod/matplotlib/plot_store.cpp
2020-04-01 10:18:08 +02:00

67 lines
1.4 KiB
C++

#include "plot_store.h"
namespace Matplotlib {
PlotStore::PlotStore() : Shared::InteractiveCurveViewRange(),
m_grid(false)
{
flush();
}
void PlotStore::flush() {
m_dots = mp_obj_new_list(0, nullptr);
}
void PlotStore::addDots(mp_obj_t x, mp_obj_t y) {
mp_obj_t items[2] = {x, y};
mp_obj_t tuple = mp_obj_new_tuple(2, items);
mp_obj_list_append(m_dots, tuple);
}
PlotStore::Dot PlotStore::dotAtIndex(int i) {
size_t numberOfTuples;
mp_obj_t * tuples;
mp_obj_list_get(m_dots, &numberOfTuples, &tuples);
mp_obj_t firstTuple = tuples[0];
size_t numberOfObjects;
mp_obj_t * objects;
mp_obj_tuple_get(firstTuple, &numberOfObjects, &objects);
mp_obj_t x = objects[0];
mp_obj_t y = objects[1];
size_t numberOfX;
mp_obj_t * xValues;
mp_obj_list_get(x, &numberOfX, &xValues);
size_t numberOfY;
mp_obj_t * yValues;
mp_obj_list_get(y, &numberOfY, &yValues);
float goodX = mp_obj_get_float(xValues[i]);
float goodY = mp_obj_get_float(yValues[i]);
return PlotStore::Dot(goodX, goodY, KDColorRed);
}
int PlotStore::numberOfDots() {
size_t numberOfTuples;
mp_obj_t * tuples;
mp_obj_list_get(m_dots, &numberOfTuples, &tuples);
mp_obj_t firstTuple = tuples[0];
size_t numberOfObjects;
mp_obj_t * objects;
mp_obj_tuple_get(firstTuple, &numberOfObjects, &objects);
mp_obj_t x = objects[0];
size_t numberOfX;
mp_obj_t * xValues;
mp_obj_list_get(x, &numberOfX, &xValues);
return numberOfX;
}
}