-#include <SDL2/SDL.h>
+#include <stdio.h>
+
+#include <SDL.h>
#include "dynarray.h"
#include "game/camera.h"
}
int point_layer_render(const PointLayer *point_layer,
- Camera *camera)
+ Camera *camera,
+ float fa)
{
trace_assert(point_layer);
trace_assert(camera);
trans_mat(points[i].x, points[i].y),
scale_mat(POINT_LAYER_ELEMENT_RADIUS)));
+ const Color color = color_scale(
+ colors[i],
+ rgba(1.0f, 1.0f, 1.0f, fa));
+
if (i == point_layer->selected) {
const Triangle t0 = triangle_mat3x3_product(
equilateral_triangle(),
trans_mat(points[i].x, points[i].y),
scale_mat(15.0f)));
- if (camera_fill_triangle(camera, t0, color_invert(colors[i])) < 0) {
+ if (camera_fill_triangle(camera, t0, color_invert(color)) < 0) {
return -1;
}
}
- if (camera_fill_triangle(camera, t, colors[i]) < 0) {
+ if (camera_fill_triangle(camera, t, color) < 0) {
return -1;
}
trace_assert(point_layer);
return dynarray_data(point_layer->ids);
}
+
+int point_layer_dump_stream(const PointLayer *point_layer,
+ FILE *filedump)
+{
+ trace_assert(point_layer);
+ trace_assert(filedump);
+
+ size_t n = dynarray_count(point_layer->ids);
+ char *ids = dynarray_data(point_layer->ids);
+ Point *points = dynarray_data(point_layer->points);
+ Color *colors = dynarray_data(point_layer->colors);
+
+ fprintf(filedump, "%ld\n", n);
+ for (size_t i = 0; i < n; ++i) {
+ fprintf(filedump, "%s %f %f ",
+ ids + ID_MAX_SIZE * i,
+ points[i].x, points[i].y);
+ color_hex_to_stream(colors[i], filedump);
+ fprintf(filedump, "\n");
+ }
+
+ return 0;
+}