File tree Expand file tree Collapse file tree 3 files changed +338
-192
lines changed Expand file tree Collapse file tree 3 files changed +338
-192
lines changed Original file line number Diff line number Diff line change 1
1
#include " grid.hpp"
2
+ #include < algorithm>
3
+ #include < cstddef>
4
+ #include < iterator>
2
5
#include < stdio.h>
3
6
#include < stdlib.h>
4
7
#include < stdbool.h>
@@ -10,6 +13,21 @@ void delete_zgrid(struct zgrid *grid) {
10
13
delete[] grid->blocks ;
11
14
}
12
15
16
+ int grid_copy (struct zgrid *grid, struct zgrid *new_grid) {
17
+ *new_grid = *grid;
18
+ new_grid->blocks = new zblock[new_grid->nzblocks ];
19
+
20
+ if (!new_grid->blocks ) {
21
+ return 1 ;
22
+ }
23
+
24
+ for (size_t i = 0 ; i < grid->nzblocks ; i++) {
25
+ std::copy (std::begin (grid->blocks [i].nodes ), std::end (grid->blocks [i].nodes ), std::begin (new_grid->blocks [i].nodes ));
26
+ }
27
+
28
+ return 0 ;
29
+ }
30
+
13
31
void create_zgrid (struct zgrid *grid) {
14
32
size_t nzblocks = align_div (grid->width , ZWIDTH) * align_div (grid->height , ZHEIGHT);
15
33
Original file line number Diff line number Diff line change @@ -39,15 +39,6 @@ struct vec2 {
39
39
};
40
40
}
41
41
};
42
- struct lead {
43
- struct vec2 orig;
44
- int width;
45
- int height;
46
- };
47
-
48
- struct component {
49
- struct lead leads[2 ];
50
- };
51
42
52
43
struct node {
53
44
struct point p;
@@ -87,4 +78,6 @@ struct point vector_to_point(Vector2 vec);
87
78
88
79
vec2 scale_vec (vec2 vec);
89
80
81
+ int grid_copy (struct zgrid *grid, struct zgrid *new_grid);
82
+
90
83
#endif
You can’t perform that action at this time.
0 commit comments