virtual void after_split_edge (Halfedge_handle h1, Halfedge_handle h2)
 {
     std::string str = h1->data();
     if (str.compare("") == 0)
         str = h2->data();
     if (str.compare("") == 0)
         str = h1->twin()->data();
     if (str.compare("") == 0)
         str = h2->twin()->data();
     h1->set_data(str);
     h2->set_data(str);
     h1->twin()->set_data(str);
     h2->twin()->set_data(str);
 }
 /*! Create an edge e that matches the edge e2, contained in the face f1. */
 virtual void create_edge(Face_const_handle f1, Halfedge_const_handle e2,
                          Halfedge_handle e) const
 {
   e->set_data(f1->data() + e2->data());
   e->twin()->set_data(f1->data() + e2->data());
 }
 /*! Create an edge e that matches the edge e1, contained in the face f2. */
 virtual void create_edge(Halfedge_const_handle e1, Face_const_handle f2,
                          Halfedge_handle e) const
 {
   e->set_data(e1->data() + f2->data());
   e->twin()->set_data(e1->data() + f2->data());
 }