mirror of https://github.com/CGAL/cgal
Add one test for LCC incremental builder
This commit is contained in:
parent
c0392e1bba
commit
1e7a47c0ee
|
|
@ -0,0 +1,179 @@
|
|||
#include <CGAL/Linear_cell_complex_for_combinatorial_map.h>
|
||||
#include <CGAL/Linear_cell_complex_for_generalized_map.h>
|
||||
#include <CGAL/Linear_cell_complex_incremental_builder.h>
|
||||
#include <CGAL/Combinatorial_map_save_load.h>
|
||||
|
||||
#include "Linear_cell_complex_3_test.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/* 3
|
||||
* /|\
|
||||
* 0-|-2
|
||||
* \|/
|
||||
* 1
|
||||
*/
|
||||
template<typename IncrementalBuilder>
|
||||
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<typename IncrementalBuilder>
|
||||
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<typename IncrementalBuilder>
|
||||
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<typename IncrementalBuilder>
|
||||
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<typename LCC>
|
||||
bool test_ib(const char* filename)
|
||||
{
|
||||
typedef typename LCC::Point Point;
|
||||
LCC lcc;
|
||||
CGAL::Linear_cell_complex_incremental_builder_3<LCC> 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/"<<filename<<std::endl;
|
||||
return false;
|
||||
}
|
||||
input>>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)."<<std::flush;
|
||||
|
||||
// ****************** TEST FOR CMAP ******************
|
||||
trace_display_msg("test_LCC_3<LCC3>");
|
||||
typedef CGAL::Linear_cell_complex_for_combinatorial_map<3> LCC3;
|
||||
if ( !test_ib<LCC3>("lcc3_ib_test.cmap") )
|
||||
{
|
||||
std::cout<<" Error during Test_LCC_3<LCC3>."<<std::endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
// ****************** TEST FOR GMAP ******************
|
||||
trace_display_msg("test_LCC_3<GLCC3>");
|
||||
typedef CGAL::Linear_cell_complex_for_generalized_map<3> GLCC3;
|
||||
if ( !test_ib<GLCC3>("lcc3_ib_test.gmap") )
|
||||
{
|
||||
std::cout<<" Error during Test_LCC_3<GLCC3>."<<std::endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
std::cout<<" Success."<<std::endl;
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<data><darts><d><b i="1">2</b><b i="2">5</b></d><d><b i="1">3</b><b i="2">9</b></d><d><b i="1">4</b><b i="2">13</b></d><d><b i="1">1</b><b i="2">17</b></d><d><b i="1">6</b><b i="2">1</b></d><d><b i="1">7</b><b i="2">20</b></d><d><b i="1">8</b><b i="2">23</b></d><d><b i="1">5</b><b i="2">10</b></d><d><b i="1">10</b><b i="2">2</b><b i="3">44</b></d><d><b i="1">11</b><b i="2">8</b><b i="3">47</b></d><d><b i="1">12</b><b i="2">22</b><b i="3">46</b></d><d><b i="1">9</b><b i="2">14</b><b i="3">45</b></d><d><b i="1">14</b><b i="2">3</b></d><d><b i="1">15</b><b i="2">12</b></d><d><b i="1">16</b><b i="2">21</b></d><d><b i="1">13</b><b i="2">18</b></d><d><b i="1">18</b><b i="2">4</b></d><d><b i="1">19</b><b i="2">16</b></d><d><b i="1">20</b><b i="2">24</b></d><d><b i="1">17</b><b i="2">6</b></d><d><b i="1">22</b><b i="2">15</b><b i="3">27</b></d><d><b i="1">23</b><b i="2">11</b><b i="3">26</b></d><d><b i="1">24</b><b i="2">7</b><b i="3">25</b></d><d><b i="1">21</b><b i="2">19</b><b i="3">28</b></d><d><b i="1">26</b><b i="2">29</b><b i="3">23</b></d><d><b i="1">27</b><b i="2">32</b><b i="3">22</b></d><d><b i="1">28</b><b i="2">35</b><b i="3">21</b></d><d><b i="1">25</b><b i="2">38</b><b i="3">24</b></d><d><b i="1">30</b><b i="2">25</b></d><d><b i="1">31</b><b i="2">40</b></d><d><b i="1">29</b><b i="2">33</b></d><d><b i="1">33</b><b i="2">26</b><b i="3">62</b></d><d><b i="1">34</b><b i="2">31</b><b i="3">64</b></d><d><b i="1">32</b><b i="2">36</b><b i="3">63</b></d><d><b i="1">36</b><b i="2">27</b></d><d><b i="1">37</b><b i="2">34</b></d><d><b i="1">35</b><b i="2">39</b></d><d><b i="1">39</b><b i="2">28</b></d><d><b i="1">40</b><b i="2">37</b></d><d><b i="1">38</b><b i="2">30</b></d><d><b i="1">42</b><b i="2">44</b></d><d><b i="1">43</b><b i="2">48</b></d><d><b i="1">41</b><b i="2">52</b></d><d><b i="1">45</b><b i="2">41</b><b i="3">9</b></d><d><b i="1">46</b><b i="2">55</b><b i="3">12</b></d><d><b i="1">47</b><b i="2">57</b><b i="3">11</b></d><d><b i="1">44</b><b i="2">49</b><b i="3">10</b></d><d><b i="1">49</b><b i="2">42</b></d><d><b i="1">50</b><b i="2">47</b></d><d><b i="1">51</b><b i="2">56</b></d><d><b i="1">48</b><b i="2">53</b></d><d><b i="1">53</b><b i="2">43</b></d><d><b i="1">54</b><b i="2">51</b></d><d><b i="1">55</b><b i="2">58</b></d><d><b i="1">52</b><b i="2">45</b></d><d><b i="1">57</b><b i="2">50</b><b i="3">60</b></d><d><b i="1">58</b><b i="2">46</b><b i="3">59</b></d><d><b i="1">56</b><b i="2">54</b><b i="3">61</b></d><d><b i="1">60</b><b i="2">62</b><b i="3">57</b></d><d><b i="1">61</b><b i="2">65</b><b i="3">56</b></d><d><b i="1">59</b><b i="2">68</b><b i="3">58</b></d><d><b i="1">63</b><b i="2">59</b><b i="3">32</b></d><d><b i="1">64</b><b i="2">70</b><b i="3">34</b></d><d><b i="1">62</b><b i="2">66</b><b i="3">33</b></d><d><b i="1">66</b><b i="2">60</b></d><d><b i="1">67</b><b i="2">64</b></d><d><b i="1">65</b><b i="2">69</b></d><d><b i="1">69</b><b i="2">61</b></d><d><b i="1">70</b><b i="2">67</b></d><d><b i="1">68</b><b i="2">63</b></d></darts><attributes><dimension index="0"><type>void</type><type_point>N4CGAL7Point_3INS_5EpickEEE</type_point><a><d>17</d><p><x>0</x><y>0</y><z>0</z></p></a><a><d>49</d><p><x>1</x><y>0</y><z>0</z></p></a><a><d>52</d><p><x>1</x><y>2</y><z>0</z></p></a><a><d>18</d><p><x>0</x><y>2</y><z>0</z></p></a><a><d>38</d><p><x>0</x><y>0</y><z>1.5</z></p></a><a><d>66</d><p><x>1</x><y>0</y><z>1.5</z></p></a><a><d>68</d><p><x>1</x><y>2</y><z>1.5</z></p></a><a><d>39</d><p><x>0</x><y>2</y><z>1.5</z></p></a><a><d>70</d><p><x>0.5</x><y>1</y><z>2.5</z></p></a><a><d>53</d><p><x>2</x><y>0</y><z>0</z></p></a><a><d>69</d><p><x>2</x><y>0</y><z>1</z></p></a></dimension></attributes></data>
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue