@@ -35,7 +35,8 @@ TEST(RayToPixelMaskTest, SingleCell) {
35
35
const Eigen::Array2i& begin = {1 , 1 };
36
36
const Eigen::Array2i& end = {1 , 1 };
37
37
const int subpixel_scale = 1 ;
38
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
38
+ std::vector<Eigen::Array2i> ray;
39
+ RayToPixelMask (begin, end, subpixel_scale, ray);
39
40
std::vector<Eigen::Array2i> ray_reference =
40
41
std::vector<Eigen::Array2i>{begin};
41
42
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (begin)));
@@ -45,11 +46,13 @@ TEST(RayToPixelMaskTest, AxisAlignedX) {
45
46
const Eigen::Array2i& begin = {1 , 1 };
46
47
const Eigen::Array2i& end = {3 , 1 };
47
48
const int subpixel_scale = 1 ;
48
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
49
+ std::vector<Eigen::Array2i> ray;
50
+ RayToPixelMask (begin, end, subpixel_scale, ray);
49
51
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
50
52
PixelMaskEqual (Eigen::Array2i ({2 , 1 })),
51
53
PixelMaskEqual (Eigen::Array2i ({3 , 1 }))));
52
- ray = RayToPixelMask (end, begin, subpixel_scale);
54
+ ray.resize (0 );
55
+ RayToPixelMask (begin, end, subpixel_scale, ray);
53
56
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
54
57
PixelMaskEqual (Eigen::Array2i ({2 , 1 })),
55
58
PixelMaskEqual (Eigen::Array2i ({3 , 1 }))));
@@ -61,11 +64,13 @@ TEST(RayToPixelMaskTest, AxisAlignedY) {
61
64
const int subpixel_scale = 1 ;
62
65
std::vector<Eigen::Array2i> ray_reference = std::vector<Eigen::Array2i>{
63
66
Eigen::Array2i ({1 , 1 }), Eigen::Array2i ({1 , 2 }), Eigen::Array2i ({1 , 3 })};
64
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
67
+ std::vector<Eigen::Array2i> ray;
68
+ RayToPixelMask (begin, end, subpixel_scale, ray);
65
69
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
66
70
PixelMaskEqual (Eigen::Array2i ({1 , 2 })),
67
71
PixelMaskEqual (Eigen::Array2i ({1 , 3 }))));
68
- ray = RayToPixelMask (end, begin, subpixel_scale);
72
+ ray.resize (0 );
73
+ RayToPixelMask (begin, end, subpixel_scale, ray);
69
74
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
70
75
PixelMaskEqual (Eigen::Array2i ({1 , 2 })),
71
76
PixelMaskEqual (Eigen::Array2i ({1 , 3 }))));
@@ -77,21 +82,25 @@ TEST(RayToPixelMaskTest, Diagonal) {
77
82
const int subpixel_scale = 1 ;
78
83
std::vector<Eigen::Array2i> ray_reference = std::vector<Eigen::Array2i>{
79
84
Eigen::Array2i ({1 , 1 }), Eigen::Array2i ({2 , 2 }), Eigen::Array2i ({3 , 3 })};
80
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
85
+ std::vector<Eigen::Array2i> ray;
86
+ RayToPixelMask (begin, end, subpixel_scale, ray);
81
87
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
82
88
PixelMaskEqual (Eigen::Array2i ({2 , 2 })),
83
89
PixelMaskEqual (Eigen::Array2i ({3 , 3 }))));
84
- ray = RayToPixelMask (end, begin, subpixel_scale);
90
+ ray.resize (0 );
91
+ RayToPixelMask (begin, end, subpixel_scale, ray);
85
92
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
86
93
PixelMaskEqual (Eigen::Array2i ({2 , 2 })),
87
94
PixelMaskEqual (Eigen::Array2i ({3 , 3 }))));
88
95
begin = Eigen::Array2i ({1 , 3 });
89
96
end = Eigen::Array2i ({3 , 1 });
90
- ray = RayToPixelMask (begin, end, subpixel_scale);
97
+ ray.resize (0 );
98
+ RayToPixelMask (begin, end, subpixel_scale, ray);
91
99
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 3 })),
92
100
PixelMaskEqual (Eigen::Array2i ({2 , 2 })),
93
101
PixelMaskEqual (Eigen::Array2i ({3 , 1 }))));
94
- ray = RayToPixelMask (end, begin, subpixel_scale);
102
+ ray.resize (0 );
103
+ RayToPixelMask (begin, end, subpixel_scale, ray);
95
104
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 3 })),
96
105
PixelMaskEqual (Eigen::Array2i ({2 , 2 })),
97
106
PixelMaskEqual (Eigen::Array2i ({3 , 1 }))));
@@ -104,7 +113,8 @@ TEST(RayToPixelMaskTest, SteepLine) {
104
113
std::vector<Eigen::Array2i> ray_reference = std::vector<Eigen::Array2i>{
105
114
Eigen::Array2i ({1 , 1 }), Eigen::Array2i ({1 , 2 }), Eigen::Array2i ({1 , 3 }),
106
115
Eigen::Array2i ({2 , 3 }), Eigen::Array2i ({2 , 4 }), Eigen::Array2i ({2 , 5 })};
107
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
116
+ std::vector<Eigen::Array2i> ray;
117
+ RayToPixelMask (begin, end, subpixel_scale, ray);
108
118
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
109
119
PixelMaskEqual (Eigen::Array2i ({1 , 2 })),
110
120
PixelMaskEqual (Eigen::Array2i ({1 , 3 })),
@@ -116,7 +126,8 @@ TEST(RayToPixelMaskTest, SteepLine) {
116
126
ray_reference = std::vector<Eigen::Array2i>{
117
127
Eigen::Array2i ({1 , 1 }), Eigen::Array2i ({1 , 2 }), Eigen::Array2i ({2 , 3 }),
118
128
Eigen::Array2i ({2 , 4 })};
119
- ray = RayToPixelMask (begin, end, subpixel_scale);
129
+ ray.resize (0 );
130
+ RayToPixelMask (begin, end, subpixel_scale, ray);
120
131
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
121
132
PixelMaskEqual (Eigen::Array2i ({1 , 2 })),
122
133
PixelMaskEqual (Eigen::Array2i ({2 , 3 })),
@@ -127,7 +138,8 @@ TEST(RayToPixelMaskTest, FlatLine) {
127
138
Eigen::Array2i begin = {1 , 1 };
128
139
Eigen::Array2i end = {5 , 2 };
129
140
const int subpixel_scale = 1 ;
130
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
141
+ std::vector<Eigen::Array2i> ray;
142
+ RayToPixelMask (begin, end, subpixel_scale, ray);
131
143
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
132
144
PixelMaskEqual (Eigen::Array2i ({2 , 1 })),
133
145
PixelMaskEqual (Eigen::Array2i ({3 , 1 })),
@@ -136,7 +148,8 @@ TEST(RayToPixelMaskTest, FlatLine) {
136
148
PixelMaskEqual (Eigen::Array2i ({5 , 2 }))));
137
149
begin = {1 , 1 };
138
150
end = {4 , 2 };
139
- ray = RayToPixelMask (begin, end, subpixel_scale);
151
+ ray.resize (0 );
152
+ RayToPixelMask (begin, end, subpixel_scale, ray);
140
153
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({1 , 1 })),
141
154
PixelMaskEqual (Eigen::Array2i ({2 , 1 })),
142
155
PixelMaskEqual (Eigen::Array2i ({3 , 2 })),
@@ -150,6 +163,7 @@ TEST(RayToPixelMaskTest, MultiScaleAxisAlignedX) {
150
163
double resolution = 0.1 ;
151
164
Eigen::Vector2d max = {1.0 , 1.0 };
152
165
std::vector<Eigen::Array2i> base_scale_ray;
166
+ std::vector<Eigen::Array2i> ray;
153
167
for (subpixel_scale = 1 ; subpixel_scale < 10000 ; subpixel_scale *= 2 ) {
154
168
double superscaled_resolution = resolution / subpixel_scale;
155
169
MapLimits superscaled_limits (
@@ -159,8 +173,8 @@ TEST(RayToPixelMaskTest, MultiScaleAxisAlignedX) {
159
173
superscaled_limits.GetCellIndex (Eigen::Vector2f ({0.05 , 0.05 }));
160
174
Eigen::Array2i end =
161
175
superscaled_limits.GetCellIndex (Eigen::Vector2f ({0.35 , 0.05 }));
162
- std::vector<Eigen::Array2i> ray =
163
- RayToPixelMask (begin, end, subpixel_scale);
176
+ ray. resize ( 0 );
177
+ RayToPixelMask (begin, end, subpixel_scale, ray );
164
178
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({9 , 6 })),
165
179
PixelMaskEqual (Eigen::Array2i ({9 , 7 })),
166
180
PixelMaskEqual (Eigen::Array2i ({9 , 8 })),
@@ -182,8 +196,8 @@ TEST(RayToPixelMaskTest, MultiScaleSkewedLine) {
182
196
superscaled_limits.GetCellIndex (Eigen::Vector2f ({0.01 , 0.09 }));
183
197
Eigen::Array2i end =
184
198
superscaled_limits.GetCellIndex (Eigen::Vector2f ({0.21 , 0.19 }));
185
-
186
- std::vector<Eigen::Array2i> ray = RayToPixelMask (begin, end, subpixel_scale);
199
+ std::vector<Eigen::Array2i> ray;
200
+ RayToPixelMask (begin, end, subpixel_scale, ray );
187
201
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({8 , 7 })),
188
202
PixelMaskEqual (Eigen::Array2i ({8 , 8 })),
189
203
PixelMaskEqual (Eigen::Array2i ({9 , 8 })),
@@ -195,7 +209,8 @@ TEST(RayToPixelMaskTest, MultiScaleSkewedLine) {
195
209
CellLimits (num_cells_x * subpixel_scale, num_cells_y * subpixel_scale));
196
210
begin = superscaled_limits.GetCellIndex (Eigen::Vector2f ({0.01 , 0.09 }));
197
211
end = superscaled_limits.GetCellIndex (Eigen::Vector2f ({0.21 , 0.19 }));
198
- ray = RayToPixelMask (begin, end, subpixel_scale);
212
+ ray.resize (0 );
213
+ RayToPixelMask (begin, end, subpixel_scale, ray);
199
214
EXPECT_THAT (ray, ElementsAre (PixelMaskEqual (Eigen::Array2i ({8 , 7 })),
200
215
PixelMaskEqual (Eigen::Array2i ({8 , 8 })),
201
216
PixelMaskEqual (Eigen::Array2i ({8 , 9 })),
0 commit comments