2424#include < geode/tests/common.hpp>
2525
2626#include < geode/basic/assert.hpp>
27+ #include < geode/basic/attribute_manager.hpp>
2728#include < geode/basic/logger.hpp>
2829
2930#include < geode/geometry/point.hpp>
3031#include < geode/geometry/vector.hpp>
3132
33+ #include < geode/mesh/builder/regular_grid_surface_builder.hpp>
3234#include < geode/mesh/builder/surface_mesh_builder.hpp>
3335#include < geode/mesh/core/light_regular_grid.hpp>
3436#include < geode/mesh/core/polygonal_surface.hpp>
37+ #include < geode/mesh/core/regular_grid_surface.hpp>
3538#include < geode/mesh/core/triangulated_surface.hpp>
3639#include < geode/mesh/io/polygonal_surface_output.hpp>
40+ #include < geode/mesh/io/regular_grid_input.hpp>
3741#include < geode/mesh/io/triangulated_surface_input.hpp>
3842
3943#include < geode/mesh/helpers/convert_surface_mesh.hpp>
@@ -78,9 +82,9 @@ void convert_grid_to_surface()
7882{
7983 geode::LightRegularGrid2D grid{ geode::Point2D{ { 1 , 2 } }, { 5 , 6 },
8084 { 1 , 1 } };
81- const std::array< geode::index_t , 4 > cells_to_densify{ 5 , 11 , 12 , 13 };
8285 const auto converted_grid2d =
8386 geode::convert_grid_into_triangulated_surface ( grid );
87+ const std::array< geode::index_t , 4 > cells_to_densify{ 5 , 11 , 12 , 13 };
8488 const auto converted_grid2d_densified =
8589 geode::convert_grid_into_densified_triangulated_surface (
8690 grid, cells_to_densify );
@@ -92,6 +96,37 @@ void convert_grid_to_surface()
9296 == grid.nb_cells () * 2 + 2 * cells_to_densify.size (),
9397 " [Test] Number of polygons in TriangulatedSurface2D from grid is not "
9498 " correct." );
99+
100+ geode::Logger::debug ( " Triangulated surface from created RegularGrid" );
101+ auto mesh_grid = geode::RegularGrid2D::create ();
102+ auto builder = geode::RegularGridBuilder2D::create ( *mesh_grid );
103+ builder->initialize_grid ( geode::Point2D{ { 1 , 1.5 } }, { 5 , 5 }, 5 );
104+ const auto tri_surf_from_mesh_grid_1 =
105+ geode::convert_surface_mesh_into_triangulated_surface ( *mesh_grid );
106+ const auto tri_surf_from_mesh_grid_2 =
107+ geode::convert_grid_into_triangulated_surface ( *mesh_grid );
108+
109+ geode::Logger::debug ( " Triangulated surface from old RegularGrid" );
110+ const auto old_regular_grid = geode::load_regular_grid< 2 >(
111+ absl::StrCat ( geode::DATA_PATH, " old_regular_grid.og_rgd2d" ) );
112+ const auto old_regular_grid_surface =
113+ geode::convert_grid_into_triangulated_surface ( *old_regular_grid );
114+ auto test_attribute =
115+ old_regular_grid_surface->vertex_attribute_manager ()
116+ .find_or_create_attribute < geode::VariableAttribute,
117+ geode::Point2D >( " test" , geode::Point2D{ { 0 ., 0 . } } );
118+ auto pt_attribute = old_regular_grid_surface->vertex_attribute_manager ()
119+ .find_attribute < geode::Point2D >( " points" );
120+ const auto old_regular_grid_surface2 =
121+ geode::convert_surface_mesh_into_triangulated_surface (
122+ *old_regular_grid )
123+ .value ();
124+ auto test_attribute2 =
125+ old_regular_grid_surface2->vertex_attribute_manager ()
126+ .find_or_create_attribute < geode::VariableAttribute,
127+ geode::Point2D >( " test" , geode::Point2D{ { 0 ., 0 . } } );
128+ auto pt_attribute2 = old_regular_grid_surface2->vertex_attribute_manager ()
129+ .find_attribute < geode::Point2D >( " points" );
95130}
96131
97132void triangulate_surface ()
@@ -118,6 +153,7 @@ void triangulate_surface()
118153void test ()
119154{
120155 geode::OpenGeodeMeshLibrary::initialize ();
156+ geode::Logger::set_level ( geode::Logger::LEVEL::debug );
121157 convert_surface_dimension ();
122158 convert_grid_to_surface ();
123159 triangulate_surface ();
0 commit comments