summaryrefslogtreecommitdiff
path: root/shared-bindings/vectorio
diff options
context:
space:
mode:
Diffstat (limited to 'shared-bindings/vectorio')
-rw-r--r--shared-bindings/vectorio/Polygon.c41
1 files changed, 2 insertions, 39 deletions
diff --git a/shared-bindings/vectorio/Polygon.c b/shared-bindings/vectorio/Polygon.c
index 5f4d85e21..01045d098 100644
--- a/shared-bindings/vectorio/Polygon.c
+++ b/shared-bindings/vectorio/Polygon.c
@@ -15,40 +15,6 @@
// #define VECTORIO_POLYGON_DEBUG(...) mp_printf(&mp_plat_print __VA_OPT__(,) __VA_ARGS__)
-// Converts a list of points tuples to a flat list of ints for speedier internal use.
-// Also validates the points.
-static mp_obj_t _to_points_list(mp_obj_t points_tuple_list) {
- size_t len = 0;
- mp_obj_t *items;
- mp_obj_list_get(points_tuple_list, &len, &items);
- VECTORIO_POLYGON_DEBUG("polygon_points_list len: %d\n", len);
-
- if ( len == 0 ) {
- mp_raise_TypeError_varg(translate("empty %q list"), MP_QSTR_point);
- }
-
- mp_obj_t points_list = mp_obj_new_list(0, NULL);
-
- for ( size_t i = 0; i < len; ++i) {
- size_t tuple_len = 0;
- mp_obj_t *tuple_items;
- mp_obj_tuple_get(items[i], &tuple_len, &tuple_items);
-
- if (tuple_len != 2) {
- mp_raise_ValueError_varg(translate("%q must be a tuple of length 2"), MP_QSTR_point);
- }
- int value;
- if (!mp_obj_get_int_maybe(tuple_items[0], &value)) {
- mp_raise_ValueError_varg(translate("unsupported %q type"), MP_QSTR_point);
- }
- mp_obj_list_append(points_list, MP_OBJ_NEW_SMALL_INT(value));
- if (!mp_obj_get_int_maybe(tuple_items[1], &value)) {
- mp_raise_ValueError_varg(translate("unsupported %q type"), MP_QSTR_point);
- }
- mp_obj_list_append(points_list, MP_OBJ_NEW_SMALL_INT(value));
- }
- return points_list;
-}
//| from typing import List, Tuple
//|
//| class Polygon:
@@ -68,12 +34,11 @@ static mp_obj_t vectorio_polygon_make_new(const mp_obj_type_t *type, size_t n_ar
if (!MP_OBJ_IS_TYPE(args[ARG_points_list].u_obj, &mp_type_list)) {
mp_raise_TypeError_varg(translate("%q list must be a list"), MP_QSTR_point);
}
- mp_obj_t points_list = _to_points_list(args[ARG_points_list].u_obj);
vectorio_polygon_t *self = m_new_obj(vectorio_polygon_t);
self->base.type = &vectorio_polygon_type;
- common_hal_vectorio_polygon_construct(self, points_list);
+ common_hal_vectorio_polygon_construct(self, args[ARG_points_list].u_obj);
return MP_OBJ_FROM_PTR(self);
}
@@ -104,9 +69,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(vectorio_polygon_get_points_obj, vectorio_polygon_obj_
STATIC mp_obj_t vectorio_polygon_obj_set_points(mp_obj_t self_in, mp_obj_t points) {
vectorio_polygon_t *self = MP_OBJ_TO_PTR(self_in);
- mp_obj_t points_list = _to_points_list(points);
-
- common_hal_vectorio_polygon_set_points(self, points_list);
+ common_hal_vectorio_polygon_set_points(self, points);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(vectorio_polygon_set_points_obj, vectorio_polygon_obj_set_points);