From 38a71a0e8eb25418f6a0be23960a30de566dfb7c Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 8 Jan 2023 22:35:38 -0600 Subject: add kai_parse_float_array --- src/geometry/geometry.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/geometry/geometry.c (limited to 'src/geometry/geometry.c') diff --git a/src/geometry/geometry.c b/src/geometry/geometry.c new file mode 100644 index 0000000..1d26a70 --- /dev/null +++ b/src/geometry/geometry.c @@ -0,0 +1,29 @@ +#include + +#include +#include +#include "util/util.h" +#include "geometry.h" + + +void kai_parse_float_array(struct ka_float_array_t *dest, ezxml_t src) +{ + /* get id, if present */ + const char *id = ezxml_attr(src, "id"); + if (id != NULL) { + size_t id_len = strlen(id) + 1; + dest->id = malloc(sizeof(char) * id_len); + strncpy(dest->id, id, id_len); + } + else { + dest->id = NULL; + } + + /* get count */ + const char *count = ezxml_attr(src, "count"); + dest->count = strtol(count, NULL, 10); + + /* parse floats */ + dest->data = malloc(sizeof(ka_real_t) * dest->count); + kai_text_to_reals(dest->data, ezxml_txt(src), dest->count); +} -- cgit v1.2.1