int main()
{
  std::vector< std::pair<Wpoint,unsigned> > points;
  points.push_back( std::make_pair(Wpoint(Point(0,0),2),0) );
  points.push_back( std::make_pair(Wpoint(Point(1,0),2),1) );
  points.push_back( std::make_pair(Wpoint(Point(0,1),2),2) );
  points.push_back( std::make_pair(Wpoint(Point(-4,54),2),3) );
  points.push_back( std::make_pair(Wpoint(Point(2,2),2),4) );
  points.push_back( std::make_pair(Wpoint(Point(-1,0),2),5) );

  Regular rt;
  rt.insert( points.begin(),points.end() );

  CGAL_assertion( rt.number_of_vertices() == 6 );

  // check that the info was correctly set.
  Regular::Finite_vertices_iterator vit;
  for (vit = rt.finite_vertices_begin(); vit != rt.finite_vertices_end(); ++vit)
    if( points[ vit->info() ].first != vit->point() ){
      std::cerr << "Error different info" << std::endl;
      exit(EXIT_FAILURE);
    }
  std::cout << "OK" << std::endl;

  return 0;
}
Beispiel #2
0
int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	Regular w;
	w.show();
	return a.exec();
}
Beispiel #3
0
int main()
{
    Directory* directory = new(Directory);
    directory->setName(&directory->ifile, "directory");

    Regular* regular = new(Regular);
    regular->setName(&regular->ifile, "file1");
    regular->setContent(&regular->ifile, "this is file1.");
    directory->add(&directory->ifile, &regular->ifile);

    regular = new(Regular);
    regular->setName(&regular->ifile, "file2");
    regular->setContent(&regular->ifile, "this is file2.");
    directory->add(&directory->ifile, &regular->ifile);

    printf("directory name: %s\n", directory->getName(&directory->ifile));

    IFile* file = directory->getChild(&directory->ifile, "file1");
    regular = container_of(file, Regular, ifile);
    printf("file name: %s, file content: %s\n",
           regular->getName(&regular->ifile),
           regular->getContent(&regular->ifile));

    file = directory->getChild(&directory->ifile, "file2");
    regular = container_of(file, Regular, ifile);
    printf("file name: %s, file content: %s\n",
           regular->getName(&regular->ifile),
           regular->getContent(&regular->ifile));

    delete(Directory, directory);
    return 0;
}
void UnionOfBallsView::draw(QPainter &painter, const Regular &regular)
{
    QPen pen;
    pen.setColor(QColor(255, 0, 0));
    pen.setWidth(5);
    painter.setPen(pen);

    Regular::Finite_vertices_iterator vit;
    for (vit = regular.finite_vertices_begin(); vit != regular.finite_vertices_end(); ++vit) {
        draw(painter, regular, vit);
    }

}
Beispiel #5
0
void testRegularClass() {
    Regular regEmpty;
    Regular regOriginal("RegOrig1", "regOrig1", 50000.00);
    Regular regDuplicate(regOriginal);

    regDuplicate.setFirst("RegDup1");
    regDuplicate.setLast("regDup1");
    regDuplicate.meritRaise(1000.00);

    cout << "regEmpty: " << regEmpty.toString()
            << endl
            << "regOriginal: " << regOriginal.toString()
            << endl
            << "regDuplicate: " << regDuplicate.toString()
            << ", Merit raise=" << "1000.00"
            << endl
            << endl;
}
void UnionOfBallsView::draw(QPainter &painter, const Regular &regular, Regular::Finite_vertices_iterator &vit)
{
    std::list<Segment> segments;
    generate_circle(vit->point(), segments);

    if (regular.dimension() > 0) {
        Weighted_point wp = vit->point();
        const Regular::Geom_traits &gt = regular.geom_traits();
        Regular::Vertex_circulator adj_vit = regular.incident_vertices(vit);
        Regular::Vertex_circulator adj_vit_start = adj_vit;
        do {
            if (!regular.is_infinite(adj_vit)) {
                Line l = gt.construct_radical_axis_2_object()(wp, adj_vit->point());
                clip(segments, l);
            }
        } while (++adj_vit != adj_vit_start);
    }

    painter << segments;
}
Beispiel #7
0
void diagrammeIpelet::protected_run(int fn)
{
  SDG2 svd;     //Voronoi for segments
  Delaunay dt;     //Voronoi of points
  Regular rt;     //power diagram
  Apollonius apo;     //apollonius
  
  bool b=false;
 
  if (fn==4) {
    show_help();
    return;
  } 
  
  std::list<Point_2> pt_list;
  std::list<Segment_2> sg_list;
  std::list<Circle_2> cir_list;
  
  Iso_rectangle_2 bbox=
  read_active_objects(
    CGAL::dispatch_or_drop_output<Point_2,Polygon_2,Circle_2,Segment_2>(
      std::back_inserter(pt_list),
      segment_grabber(std::back_inserter(sg_list)),
      std::back_inserter(cir_list),
      std::back_inserter(sg_list)
    )
  );
  
  switch(fn){
  case 1:
  case 0:
    //VORONOI
    if (pt_list.empty() && sg_list.empty()){
      print_error_message(("No mark, no segment and no polygon selected"));
      return;
    }
    
    b=!( sg_list.empty() );
    for (std::list<Segment_2>::iterator it=sg_list.begin();it!=sg_list.end();++it)
      svd.insert(it->point(0),it->point(1));

    if (b)
      svd.insert(pt_list.begin(),pt_list.end());
    else
      dt.insert(pt_list.begin(),pt_list.end());
    break;
    
    
  case 2:
    //POWER DIAGRAM
    if (pt_list.empty() && cir_list.empty()){
      print_error_message(("No mark nor circle selected"));
      return;
    }
    
    for (std::list<Circle_2>::iterator it=cir_list.begin();it!=cir_list.end();it++)
      rt.insert(Weighted_point_2(it->center(),it->squared_radius()));
    for (std::list<Point_2>::iterator it=pt_list.begin();it!=pt_list.end();it++)
      rt.insert(Weighted_point_2(*it,0));
  break;
     
     
  case 3:     
    //APOLLONIUS
    if (cir_list.empty()){
      print_error_message(("No circle selected"));
      return;
    }  
    for (std::list<Circle_2>::iterator it=cir_list.begin();it!=cir_list.end();it++)
      apo.insert(ASite(it->center(),sqrt(CGAL::to_double(it->squared_radius()))));
    for (std::list<Point_2>::iterator it=pt_list.begin();it!=pt_list.end();it++)
      apo.insert(ASite(*it,0));
  break;
  }     //end of switch

  Kernel::FT incr_len=(fn<2)?50:75;
  //slightly increase the size of the Bbox
  bbox=Iso_rectangle_2(bbox.min()+Kernel::Vector_2(-incr_len,-incr_len),
                       bbox.max()+Kernel::Vector_2(incr_len,incr_len));
  
  
  
  if(fn<2){     //recover dual objects
    if(b){
      if (fn==0) draw_dual_in_ipe(svd,bbox);
      else draw_skeleton_in_ipe(svd,bbox);
    }
    else draw_dual_in_ipe(dt,bbox);
  }
  if(fn==2) draw_dual_in_ipe(rt,bbox);
  if(fn==3) draw_dual_in_ipe(apo,bbox);
}