summaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2023-01-03 23:31:48 -0600
committersanine <sanine.not@pm.me>2023-01-03 23:31:48 -0600
commit13a7c902c051fa8da1e476687c17bb5431d258e1 (patch)
treeec75993aba0b8264f0dffd03eee2191020b206be /src/geometry
parente68e6d4e433fe42a0c6df18b2f2d7990b91b7cd6 (diff)
add kai_expand_array
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/CMakeLists.txt7
-rw-r--r--src/geometry/geometry.c71
-rw-r--r--src/geometry/geometry.h20
-rw-r--r--src/geometry/geometry.test.c49
4 files changed, 0 insertions, 147 deletions
diff --git a/src/geometry/CMakeLists.txt b/src/geometry/CMakeLists.txt
deleted file mode 100644
index e1a0995..0000000
--- a/src/geometry/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-project(kalmia)
-
-target_sources(kalmia PUBLIC geometry.c)
-
-if (KALMIA_BUILD_TESTS)
- target_sources(kalmia-tests PUBLIC geometry.test.c)
-endif()
diff --git a/src/geometry/geometry.c b/src/geometry/geometry.c
deleted file mode 100644
index be9ce25..0000000
--- a/src/geometry/geometry.c
+++ /dev/null
@@ -1,71 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-
-#include <kalmia.h>
-#include <ezxml.h>
-#include "geometry.h"
-
-
-static int copy_str(char **dest, const char *src)
-{
- if (src == NULL) {
- *dest = NULL;
- return 0;
- }
-
- size_t len = strlen(src)+1;
- *dest = malloc(len * sizeof(char));
- if (*dest == NULL)
- return -1;
- strncpy(*dest, src, len);
- return 0;
-}
-
-
-ka_float_array_t * kai_parse_float_array(ezxml_t tag)
-{
- if (strcmp(ezxml_name(tag), "float_array") != 0) {
- /* wrong tag type */
- return NULL;
- }
-
- /* allocate struct */
- ka_float_array_t *a = malloc(sizeof(ka_float_array_t));
- if (a == NULL) return NULL;
-
- /* inspect attributes */
- const char *count_str = ezxml_attr(tag, "count");
- a->count = strtol(count_str, NULL, 10);
-
- const char *id_str = ezxml_attr(tag, "id");
- if (copy_str(&(a->id), id_str) < 0) {
- free(a);
- return NULL;
- }
-
- /* parse data */
- a->array = malloc(a->count * sizeof(ka_real_t));
- if (a->array == NULL) {
- free(a->id);
- free(a);
- return NULL;
- }
-
- char *data = ezxml_txt(tag);
- char *end;
- int i;
- for (i=0; i<a->count; i++) {
- a->array[i] = KA_STR_TO_REAL(data, &end);
- data = end;
- }
-
- return a;
-}
-
-
-void kai_free_float_array(ka_float_array_t *a)
-{
- free(a->array);
- free(a->id);
- free(a);
-}
diff --git a/src/geometry/geometry.h b/src/geometry/geometry.h
deleted file mode 100644
index 971bd1b..0000000
--- a/src/geometry/geometry.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef KALMIA_GEOMETRY_H
-#define KALMIA_GEOMETRY_H
-
-#include <kalmia.h>
-#include <ezxml.h>
-
-typedef struct {
- char *id;
- size_t count;
- ka_real_t *array;
-} ka_float_array_t;
-
-
-/* allocate a new float array and parse an xml tag into it */
-ka_float_array_t * kai_parse_float_array(ezxml_t tag);
-
-/* free a loaded float array */
-void kai_free_float_array(ka_float_array_t *array);
-
-#endif
diff --git a/src/geometry/geometry.test.c b/src/geometry/geometry.test.c
deleted file mode 100644
index f400540..0000000
--- a/src/geometry/geometry.test.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include <string.h>
-#include <math.h>
-#include <kalmia.h>
-#include "test/test.h"
-#include "geometry.h"
-
-
-void parse_float_array();
-
-
-void suite_geometry()
-{
- lily_run_test(parse_float_array);
-}
-
-
-void parse_float_array()
-{
- char str[1024];
- strncpy(
- str,
- "<float_array id=\"box-Pos-array\" count=\"24\">\n"
- " -0.5 0.5 0.5\n"
- " 0.5 0.5 0.5\n"
- " -0.5 -0.5 0.5\n"
- " 0.5 -0.5 0.5\n"
- " -0.5 0.5 -0.5\n"
- " 0.5 0.5 -0.5\n"
- " -0.5 -0.5 -0.5\n"
- " 0.5 -0.5 -0.5\n"
- "</float_array>\n",
- 1024
- );
- ezxml_t tag = ezxml_parse_str(str, strlen(str));
-
- ka_float_array_t *a = kai_parse_float_array(tag);
- ezxml_free(tag);
-
- lily_assert_not_null(a);
- lily_assert_string_equal(a->id, "box-Pos-array");
- lily_assert_int_equal(a->count, 24);
-
- int i;
- for (i=0; i<24; i++) {
- lily_assert_float_equal(fabs(a->array[i]), 0.5, 1e-3);
- }
-
- kai_free_float_array(a);
-}