diff --git a/Linear_cell_complex/test/Linear_cell_complex/LCC_3_incremental_builder_test.cpp b/Linear_cell_complex/test/Linear_cell_complex/LCC_3_incremental_builder_test.cpp new file mode 100644 index 00000000000..2569b0f929b --- /dev/null +++ b/Linear_cell_complex/test/Linear_cell_complex/LCC_3_incremental_builder_test.cpp @@ -0,0 +1,179 @@ +#include +#include +#include +#include + +#include "Linear_cell_complex_3_test.h" + +/////////////////////////////////////////////////////////////////////////////// +/* 3 + * /|\ + * 0-|-2 + * \|/ + * 1 + */ +template +void make_tetrahedron_with_builder(IncrementalBuilder& ib, + std::size_t i0, + std::size_t i1, + std::size_t i2, + std::size_t i3) +{ + ib.begin_surface(); + ib.add_facet({i0,i1,i2}); + ib.add_facet({i1,i0,i3}); + ib.add_facet({i2,i1,i3}); + ib.add_facet({i0,i2,i3}); + ib.end_surface(); +} +/////////////////////////////////////////////////////////////////////////////// +/* 4 + * /|\ + * 0-|-3 + * | | | + * 1---2 + */ +template +void make_pyramid_with_builder(IncrementalBuilder& ib, + std::size_t i0, + std::size_t i1, + std::size_t i2, + std::size_t i3, + std::size_t i4) +{ + ib.begin_surface(); + ib.add_facet({i0,i1,i2,i3}); + ib.add_facet({i1,i0,i4}); + ib.add_facet({i2,i1,i4}); + ib.add_facet({i3,i2,i4}); + ib.add_facet({i0,i3,i4}); + ib.end_surface(); +} +/////////////////////////////////////////////////////////////////////////////// +/* 3 + * /|\ + * 4---5 + * | | | + * | 0 | + * |/ \| + * 1---2 + */ +template +void make_prism_with_builder(IncrementalBuilder& ib, + std::size_t i0, + std::size_t i1, + std::size_t i2, + std::size_t i3, + std::size_t i4, + std::size_t i5) +{ + ib.begin_surface(); + ib.add_facet({i0,i1,i2}); + ib.add_facet({i1,i0,i3,i4}); + ib.add_facet({i2,i1,i4,i5}); + ib.add_facet({i0,i2,i5,i3}); + ib.add_facet({i5,i4,i3}); + ib.end_surface(); +} +/////////////////////////////////////////////////////////////////////////////// +/* 7----6 + * /| /| + * 4----5 | + * | 3--|-2 + * |/ |/ + * 0----1 + */ +template +void make_hexahedron_with_builder(IncrementalBuilder& ib, + std::size_t i0, + std::size_t i1, + std::size_t i2, + std::size_t i3, + std::size_t i4, + std::size_t i5, + std::size_t i6, + std::size_t i7) +{ + ib.begin_surface(); + ib.add_facet({i0,i1,i2,i3}); + ib.add_facet({i1,i0,i4,i5}); + ib.add_facet({i2,i1,i5,i6}); + ib.add_facet({i3,i2,i6,i7}); + ib.add_facet({i0,i3,i7,i4}); + ib.add_facet({i7,i6,i5,i4}); + ib.end_surface(); +} +/////////////////////////////////////////////////////////////////////////////// +template +bool test_ib(const char* filename) +{ + typedef typename LCC::Point Point; + LCC lcc; + CGAL::Linear_cell_complex_incremental_builder_3 ib(lcc); + + ib.add_vertex(Point(0,0,0)); // 0 + ib.add_vertex(Point(1,0,0)); // 1 + ib.add_vertex(Point(1,2,0)); // 2 + ib.add_vertex(Point(0,2,0)); // 3 + + ib.add_vertex(Point(0,0,1.5)); // 4 + ib.add_vertex(Point(1,0,1.5)); // 5 + ib.add_vertex(Point(1,2,1.5)); // 6 + ib.add_vertex(Point(0,2,1.5)); // 7 + + ib.add_vertex(Point(0.5,1,2.5)); // 8 + + ib.add_vertex(Point(2,0,0)); // 9 + ib.add_vertex(Point(2,0,1)); // 10 + + trace_test_begin(); + make_hexahedron_with_builder(ib, 0,1,2,3,4,5,6,7); + make_pyramid_with_builder(ib, 4,5,6,7,8); + make_prism_with_builder(ib, 2,1,9,6,5,10); + make_tetrahedron_with_builder(ib, 6,5,10,8); + + if ( !check_number_of_cells_3(lcc, 11, 22, 16, 4, 1) ) + { return false; } + + LCC lcc2; + std::ifstream input(std::string("data/")+filename); + if (!input) + { + std::cout<<"Problem to load LCC data/"<>lcc2; + input.close(); + + if (!lcc.is_isomorphic_to(lcc2)) + { return false; } + trace_test_end(); + + return true; +} + +int main() +{ + std::cout<<"LCC_3_incremental_builder_test (v1)."<"); + typedef CGAL::Linear_cell_complex_for_combinatorial_map<3> LCC3; + if ( !test_ib("lcc3_ib_test.cmap") ) + { + std::cout<<" Error during Test_LCC_3."<"); + typedef CGAL::Linear_cell_complex_for_generalized_map<3> GLCC3; + if ( !test_ib("lcc3_ib_test.gmap") ) + { + std::cout<<" Error during Test_LCC_3."< +25394131176172082351010244118471222469144514315121621131818419162024176221527231126247252119282629232732222835212538243025314029333326623431643236633627373435393928403738304244434841524541946551247571144491049425047515648535343545155585245575060584659565461606257616556596858635932647034626633666067646569696170676863voidN4CGAL7Point_3INS_5EpickEEE17

000

49

100

52

120

18

020

38

001.5

66

101.5

68

121.5

39

021.5

70

0.512.5

53

200

69

201

\ No newline at end of file diff --git a/Linear_cell_complex/test/Linear_cell_complex/data/lcc3_ib_test.gmap b/Linear_cell_complex/test/Linear_cell_complex/data/lcc3_ib_test.gmap new file mode 100644 index 00000000000..6eca4776f71 --- /dev/null +++ b/Linear_cell_complex/test/Linear_cell_complex/data/lcc3_ib_test.gmap @@ -0,0 +1,2 @@ + +2810139421835176426572586347133101629111121040111339141246131545161420159191824488171938720181694192115932220449221234391242228902317278926326252752826242729233028422931413230363125353440833357363432353731383648373947403812393311424830544143295344422252434521514644145045471349484638564741375550565846495157455250644451536343545270425355694156547648554975475862505759496058805961796260666157656468521246365511236664621286567611276866721266763711257074546971537270687173677472787369777680567577557876747779738078607975598286888183878482968385958684104858110388948218878981179088110248991109239290114229193113219492982093879719961028495978398969497999310098112991011111021001061019510510411086103105851061041021051071011081061161071091151101089010910389112116100120111113991191141129211811311591117116114108122115111107121118122124114117119123113120118130112119121129111122120136116121117135115124128118641231251176312612414068125127139671281261326612712313165130134120129131119132130128131133127134132138133129137136140122135137121138136134137139133140138126139135125voidN4CGAL7Point_3INS_5EpickEEE40

000

97

100

110

120

35

020

80

001.5

131

101.5

140

121.5

77

021.5

139

0.512.5

105

200

137

201

\ No newline at end of file