| 171 | } |
| 172 | |
| 173 | void test_limit() |
| 174 | { |
| 175 | auto grid = geode::RegularGrid3D::create(); |
| 176 | auto builder = geode::RegularGridBuilder3D::create( *grid ); |
| 177 | builder->initialize_grid( |
| 178 | geode::Point3D{ { -1, -1, -1 } }, { 3, 3, 3 }, 1 ); |
| 179 | const geode::Point3D pt000{ { 0, 0, 0 } }; |
| 180 | const geode::Point3D pt001{ { 0, 0, 1 } }; |
| 181 | const geode::Point3D pt010{ { 0, 1, 0 } }; |
| 182 | const geode::Point3D pt011{ { 0, 1, 1 } }; |
| 183 | const geode::Point3D pt100{ { 1, 0, 0 } }; |
| 184 | const geode::Point3D pt101{ { 1, 0, 1 } }; |
| 185 | const geode::Point3D pt110{ { 1, 1, 0 } }; |
| 186 | const geode::Point3D pt111{ { 1, 1, 1 } }; |
| 187 | const geode::Triangle3D triangle1{ pt000, pt010, pt101 }; |
| 188 | const geode::Triangle3D triangle1b{ pt000, pt101, pt100 }; |
| 189 | const geode::Triangle3D triangle2{ pt010, pt011, pt111 }; |
| 190 | const geode::Triangle3D triangle2b{ pt010, pt111, pt101 }; |
| 191 | const geode::Triangle3D triangle3{ pt000, pt100, pt110 }; |
| 192 | const geode::Triangle3D triangle3b{ pt000, pt110, pt001 }; |
| 193 | const geode::Triangle3D triangle4{ pt001, pt110, pt111 }; |
| 194 | const geode::Triangle3D triangle4b{ pt001, pt111, pt011 }; |
| 195 | const geode::Triangle3D triangle5{ pt000, pt001, pt011 }; |
| 196 | const geode::Triangle3D triangle5b{ pt000, pt011, pt010 }; |
| 197 | const geode::Triangle3D triangle6{ pt100, pt101, pt111 }; |
| 198 | const geode::Triangle3D triangle6b{ pt100, pt111, pt110 }; |
| 199 | |
| 200 | absl::flat_hash_set< geode::Grid3D::CellIndices > all_cells; |
| 201 | add_cells( all_cells, *grid, triangle1 ); |
| 202 | add_cells( all_cells, *grid, triangle1b ); |
| 203 | add_cells( all_cells, *grid, triangle2 ); |
| 204 | add_cells( all_cells, *grid, triangle2b ); |
| 205 | add_cells( all_cells, *grid, triangle3 ); |
| 206 | add_cells( all_cells, *grid, triangle3b ); |
| 207 | add_cells( all_cells, *grid, triangle4 ); |
| 208 | add_cells( all_cells, *grid, triangle4b ); |
| 209 | add_cells( all_cells, *grid, triangle5 ); |
| 210 | add_cells( all_cells, *grid, triangle5b ); |
| 211 | add_cells( all_cells, *grid, triangle6 ); |
| 212 | add_cells( all_cells, *grid, triangle6b ); |
| 213 | |
| 214 | geode::OpenGeodeMeshException::test( all_cells.size() == 27, |
| 215 | "Wrong number of result cells (rasterize_cube): ", all_cells.size(), |
| 216 | " instead of 27" ); |
| 217 | } |
| 218 | |
| 219 | void test() |
| 220 | { |
no test coverage detected