#ifndef POINT_LAYER_H_
#define POINT_LAYER_H_
+#include "math/vec.h"
+#include "color.h"
+#include "layer.h"
+
#define ID_MAX_SIZE 36
typedef struct PointLayer PointLayer;
typedef struct LineStream LineStream;
-typedef struct Camera Camera;
-PointLayer *create_point_layer_from_line_stream(LineStream *line_stream);
-void destroy_point_rect_layer(PointLayer *point_rect_layer);
+LayerPtr point_layer_as_layer(PointLayer *point_layer);
+// NOTE: create_point_layer and create_point_layer_from_line_stream do
+// not own id_name_prefix
+PointLayer *create_point_layer(const char *id_name_prefix);
+PointLayer *create_point_layer_from_line_stream(LineStream *line_stream,
+ const char *id_name_prefix);
+void destroy_point_layer(PointLayer *point_layer);
+
+int point_layer_render(const PointLayer *point_layer,
+ const Camera *camera,
+ int active);
+int point_layer_event(PointLayer *point_layer,
+ const SDL_Event *event,
+ const Camera *camera,
+ UndoHistory *undo_history);
-int point_layer_render(const PointLayer *point_rect_layer,
- Camera *camera);
-int point_layer_mouse_button(PointLayer *point_rect_layer,
- const SDL_MouseButtonEvent *event);
+int point_layer_dump_stream(const PointLayer *point_layer,
+ FILE *filedump);
-size_t point_layer_count(const PointLayer *point_rect_layer);
-const Point *point_layer_points(const PointLayer *point_rect_layer);
-const Color *point_layer_colors(const PointLayer *point_rect_layer);
-const char *point_layer_ids(const PointLayer *point_rect_layer);
+size_t point_layer_count(const PointLayer *point_layer);
+const Vec2f *point_layer_positions(const PointLayer *point_layer);
+const Color *point_layer_colors(const PointLayer *point_layer);
+const char *point_layer_ids(const PointLayer *point_layer);
#endif // POINT_LAYER_H_