| 238 | } |
| 239 | |
| 240 | void test() |
| 241 | { |
| 242 | geode::OpenGeodeModelLibrary::initialize(); |
| 243 | geode::VertexIdentifier vertex_identifier; |
| 244 | geode::OpenGeodeModelException::test( |
| 245 | vertex_identifier.nb_unique_vertices() == 0, |
| 246 | "Initialization of VertexIdentifier is not correct" ); |
| 247 | |
| 248 | CornerProvider provider; |
| 249 | CornerProviderBuilder builder( provider ); |
| 250 | |
| 251 | const auto& corner0_id = builder.add_corner(); |
| 252 | const auto& corner1_id = builder.add_corner(); |
| 253 | const auto& corner2_id = builder.add_corner(); |
| 254 | const auto& corner3_id = builder.add_corner(); |
| 255 | builder.corner_mesh_builder( corner0_id ) |
| 256 | ->create_point( geode::Point2D{ { 0.1, 2.3 } } ); |
| 257 | builder.corner_mesh_builder( corner1_id ) |
| 258 | ->create_point( geode::Point2D{ { 1.1, 4.3 } } ); |
| 259 | builder.corner_mesh_builder( corner2_id ) |
| 260 | ->create_point( geode::Point2D{ { 0.9, -3.7 } } ); |
| 261 | builder.corner_mesh_builder( corner3_id ) |
| 262 | ->create_point( geode::Point2D{ { 0.1, 2.3 } } ); |
| 263 | |
| 264 | geode::VertexIdentifierBuilder vertex_id_builder{ vertex_identifier }; |
| 265 | vertex_id_builder.register_mesh_component( provider.corner( corner0_id ) ); |
| 266 | vertex_id_builder.register_mesh_component( provider.corner( corner1_id ) ); |
| 267 | vertex_id_builder.register_mesh_component( provider.corner( corner2_id ) ); |
| 268 | vertex_id_builder.register_mesh_component( provider.corner( corner3_id ) ); |
| 269 | |
| 270 | test_create_unique_vertices( vertex_identifier ); |
| 271 | test_set_unique_vertices( vertex_identifier, provider ); |
| 272 | test_modify_unique_vertices( vertex_identifier ); |
| 273 | test_save_and_load_unique_vertices( vertex_identifier ); |
| 274 | |
| 275 | test_update_unique_vertices(); |
| 276 | |
| 277 | builder.unregister_mesh_component( provider.corner( corner2_id ) ); |
| 278 | builder.register_mesh_component( provider.corner( corner2_id ) ); |
| 279 | |
| 280 | const auto cmv = vertex_identifier.component_mesh_vertices( 4 ).front(); |
| 281 | vertex_id_builder.delete_isolated_vertices(); |
| 282 | geode::OpenGeodeModelException::test( |
| 283 | vertex_identifier.unique_vertex( cmv ) == 3, |
| 284 | "Wrong UID after delete_isolated_vertices" ); |
| 285 | } |
| 286 | |
| 287 | OPENGEODE_TEST( "vertex-identifier" ) |
no test coverage detected