#include <CGAL/Linear_cell_complex.h>
#include <CGAL/Linear_cell_complex_operations.h>
#include <iostream>
#include <algorithm>
struct Average_functor
{
template<class CellAttribute>
};
struct Myitem
{
template<class Refs>
struct Dart_wrapper
{
Average_functor >
Vertex_attribute;
};
};
typedef LCC_3::Dart_handle Dart_handle;
typedef LCC_3::Point Point;
typedef LCC_3::FT FT;
Dart_handle make_iso_cuboid(LCC_3& lcc, const Point& basepoint, FT lg)
{
Traits::Construct_translated_point()
(basepoint,Traits::Vector(lg,0,0)),
Traits::Construct_translated_point()
(basepoint,Traits::Vector(lg,lg,0)),
Traits::Construct_translated_point()
(basepoint,Traits::Vector(0,lg,0)),
Traits::Construct_translated_point()
(basepoint,Traits::Vector(0,lg,lg)),
Traits::Construct_translated_point()
(basepoint,Traits::Vector(0,0,lg)),
Traits::Construct_translated_point()
(basepoint,Traits::Vector(lg,0,lg)),
Traits::Construct_translated_point()
(basepoint,Traits::Vector(lg,lg,lg)));
}
int main()
{
LCC_3 lcc;
Dart_handle d1 = make_iso_cuboid(lcc, Point(-2, 0, 0), 1);
Dart_handle d2 = make_iso_cuboid(lcc, Point(0, 0, 0), 1);
for (LCC_3::One_dart_per_incident_cell_range<0, 3>::iterator
it=lcc.one_dart_per_incident_cell<0,3>(d1).begin(),
itend=lcc.one_dart_per_incident_cell<0,3>(d1).end(); it!=itend; ++it)
{ LCC_3::vertex_attribute(it)->info()=1; }
for (LCC_3::One_dart_per_incident_cell_range<0, 3>::iterator it=
lcc.one_dart_per_incident_cell<0,3>(d2).begin(),
itend=lcc.one_dart_per_incident_cell<0,3>(d2).end(); it!=itend; ++it)
{ LCC_3::vertex_attribute(it)->info()=19; }
lcc.sew<3>(d1->beta(1)->beta(1)->beta(2), d2->beta(2));
Dart_handle d3=lcc.insert_barycenter_in_cell<2>(d2->beta(2));
LCC_3::vertex_attribute(d3)->info()=5;
for (LCC_3::Vertex_attribute_range::iterator
it=lcc.vertex_attributes().begin(),
itend=lcc.vertex_attributes().end();
it!=itend; ++it)
{
std::cout<<"point: "<<it->point()<<", "<<"color: "<<it->info()
<<std::endl;
}
return EXIT_SUCCESS;
}