diff --git a/.gitattributes b/.gitattributes index f089102fddf..8c365e0961f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1412,6 +1412,7 @@ Packages/Polyhedron/examples/Polyhedron/corner_with_sharp_edge.off -text Packages/Polyhedron/examples/Polyhedron/cross.off -text Packages/Qt_widget/demo/Qt_widget/Alpha_shapes_2/demo.dsp -text Packages/Qt_widget/demo/Qt_widget/Convex_Hull_2/demo.dsp -text +Packages/Qt_widget/demo/Qt_widget/Max_k-gon/demo.dsp -text Packages/Qt_widget/demo/Qt_widget/Min_ellipse_2/demo.dsp -text Packages/Qt_widget/demo/Qt_widget/Min_quadrilateral_2/demo.dsp -text Packages/Qt_widget/demo/Qt_widget/Partition_2/demo.dsp -text diff --git a/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/Qt_widget_toolbar.C b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/Qt_widget_toolbar.C new file mode 100644 index 00000000000..6f9e9ed3f42 --- /dev/null +++ b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/Qt_widget_toolbar.C @@ -0,0 +1,113 @@ +// ============================================================================ +// +// Copyright (c) 1997-2000 The CGAL Consortium +// +// This software and related documentation is part of an INTERNAL release +// of the Computational Geometry Algorithms Library (CGAL). It is not +// intended for general use. +// +// ---------------------------------------------------------------------------- +// +// file : src/Qt_Window_toolbar.C +// package : QT_window +// author(s) : Radu Ursu +// release : +// release_date : +// +// coordinator : Laurent Rineau +// +// ============================================================================ + +#ifdef CGAL_USE_QT + +#include +#include "Qt_widget_toolbar.h" + +// icons +#include +#include +#include + + +namespace CGAL { + Tools_toolbar::Tools_toolbar(Qt_widget *w, QMainWindow *mw, std::list &l1) + { + //when it is created, the toolbar has 0 buttons + nr_of_buttons = 0; + //set the widget + widget = w; + is_active = FALSE; + +#if QT_VERSION < 300 + // for Qt 2.3 and before + maintoolbar = new QToolBar("tools", mw, QMainWindow::Top, TRUE, "Tools"); +#else + // from Qt 3.0 + maintoolbar = new QToolBar(mw, "Tools"); + mw->addDockWindow (maintoolbar, "tools", DockTop, TRUE ); +#endif + + + but[0] = new QToolButton(QPixmap( (const char**)arrow_xpm ), + "Detach current tool", + 0, + this, + SLOT(notool()), + maintoolbar, + "Detach current tool"); + + but[1] = new QToolButton(QPixmap( (const char**)point_xpm ), + "Point Tool", + 0, + this, + SLOT(pointtool()), + maintoolbar, + "Point Tool"); + + + but[1]->setToggleButton(TRUE); + + nr_of_buttons = 2; + + connect(w, SIGNAL(detached_tool()), this, SLOT(toggle_button())); +}; + + + //the definition of the slots + void Tools_toolbar::toggle_button () + { + if(is_active) { + but[activebutton]->toggle(); + is_active = false; + } + } + + void Tools_toolbar::pointtool() + { + if (but[1]->isOn()) + { + widget->attach(pointbut); + activebutton = 1; + is_active = true; + } + else + { + is_active = false; + widget->detach_current_tool(); + } + } + + void Tools_toolbar::notool() + { + if(is_active) { + widget->detach_current_tool(); + is_active = false; + } + } + + +}//end namespace + +#include "Qt_widget_toolbar.moc" + +#endif diff --git a/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/Qt_widget_toolbar.h b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/Qt_widget_toolbar.h new file mode 100644 index 00000000000..ed7d92149ee --- /dev/null +++ b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/Qt_widget_toolbar.h @@ -0,0 +1,81 @@ +// ============================================================================ +// +// Copyright (c) 1997-2000 The CGAL Consortium +// +// This software and related documentation is part of an INTERNAL release +// of the Computational Geometry Algorithms Library (CGAL). It is not +// intended for general use. +// +// ---------------------------------------------------------------------------- +// +// file : include/CGAL/IO/Qt_Window_toolbar.h +// package : QT_window +// author(s) : Ursu Radu +// release : +// release_date : +// +// coordinator : Laurent Rineau +// +// ============================================================================ + + +#ifndef CGAL_QT_WINDOW_TOOLBAR_H +#define CGAL_QT_WINDOW_TOOLBAR_H + +#include +#include + + +// TODO: check if some of those includes shouldn't be in the .C file +#include +#include + +#include +#include +#include +#include + +typedef CGAL::Cartesian Rp; +typedef Rp::Point_2 Point; + +namespace CGAL { + +class Tools_toolbar : public QObject +{ + Q_OBJECT +public: + Tools_toolbar(Qt_widget *w, QMainWindow *mw, std::list &l1); + ~Tools_toolbar() + { + delete maintoolbar; + }; + QToolBar* toolbar(){return maintoolbar;} + +signals: + void new_object(CGAL::Object); + + +private slots: + void get_new_object(CGAL::Object obj) { emit(new_object(obj)); } + + void pointtool(); + void notool(); + + void toggle_button(); + +private: + QToolBar *maintoolbar; + QToolButton *but[10]; + Qt_widget *widget; + int activebutton; + bool is_active; + void setActiveButton(int i); + int nr_of_buttons; + + + CGAL::Qt_widget_get_point pointbut; +};//end class + +};//end namespace + +#endif diff --git a/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/demo.dsp b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/demo.dsp new file mode 100644 index 00000000000..c9d75103e31 --- /dev/null +++ b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/demo.dsp @@ -0,0 +1,218 @@ +# Microsoft Developer Studio Project File - Name="demo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=demo - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "demo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "demo.mak" CFG="demo - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "demo - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "demo - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "demo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x40c /d "NDEBUG" +# ADD RSC /l 0x40c /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 + +!ELSEIF "$(CFG)" == "demo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "$(QTDIR)\include" /I "$(CGALROOT)\stlport" /I "$(CGALROOT)\include\cgal\config\msvc" /I "$(CGALROOT)\auxiliary\wingmp\gmp-2.0.2" /I "$(CGALROOT)\include" /I "..\..\..\\Include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "CGAL_USE_QT" /D "QT_DLL" /D "UNICODE" /D "QT_THREAD_SUPPORT" /FR /YX /FD /GZ /c /Tp +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x40c /d "_DEBUG" +# ADD RSC /l 0x40c /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib imm32.lib wsock32.lib winmm.lib $(QTDIR)\lib\qt-mt230nc.lib $(QTDIR)\lib\qtmain.lib $(CGALROOT)\lib\msvc\CGAL.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"libcmtd" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "demo - Win32 Release" +# Name "demo - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=".\max_k-gon.C" +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\CGALQt\Qt_widget.C +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\CGALQt\Qt_widget_standard_toolbar.C +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\CGALQt\Qt_widget_tool.C +# End Source File +# Begin Source File + +SOURCE=.\Qt_widget_toolbar.C +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\CGALQt\Qt_widget_view.C +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget.h + +!IF "$(CFG)" == "demo - Win32 Release" + +!ELSEIF "$(CFG)" == "demo - Win32 Debug" + +# Begin Custom Build +InputPath=..\..\..\include\CGAL\IO\Qt_Widget.h + +"../../../src/CGALQt/Qt_Widget.moc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(QTDIR)\bin\moc.exe -o "../../../src/CGALQt/Qt_Widget.moc" "../../../Include/CGAL/IO/Qt_Widget.h" + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget_Get_point.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget_Handtool.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget_standard_toolbar.h + +!IF "$(CFG)" == "demo - Win32 Release" + +!ELSEIF "$(CFG)" == "demo - Win32 Debug" + +# Begin Custom Build +InputPath=..\..\..\include\CGAL\IO\Qt_Widget_standard_toolbar.h + +"../../../src/CGALQt/Qt_Widget_standard_toolbar.moc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(QTDIR)\bin\moc.exe -o "../../../src/CGALQt/Qt_Widget_standard_toolbar.moc" "../../../Include/CGAL/IO/Qt_Widget_standard_toolbar.h" + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget_tool.h + +!IF "$(CFG)" == "demo - Win32 Release" + +!ELSEIF "$(CFG)" == "demo - Win32 Debug" + +# Begin Custom Build +InputPath=..\..\..\include\CGAL\IO\Qt_Widget_tool.h + +"../../../src/CGALQt/Qt_Widget_tool.moc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(QTDIR)\bin\moc.exe -o "../../../src/CGALQt/Qt_Widget_tool.moc" "../../../Include/CGAL/IO/Qt_Widget_tool.h" + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\Qt_widget_toolbar.h + +!IF "$(CFG)" == "demo - Win32 Release" + +!ELSEIF "$(CFG)" == "demo - Win32 Debug" + +# Begin Custom Build +InputPath=.\Qt_widget_toolbar.h + +"Qt_widget_toolbar.moc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(QTDIR)\bin\moc.exe -o "Qt_widget_toolbar.moc" "Qt_widget_toolbar.h" + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget_Zoom.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\CGAL\IO\Qt_Widget_Zoomrect.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/makefile b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/makefile new file mode 100644 index 00000000000..06e8207e23d --- /dev/null +++ b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/makefile @@ -0,0 +1,64 @@ +# Created by the script create_makefile +# This is the makefile for compiling a CGAL application. + +#---------------------------------------------------------------------# +# include platform specific settings +#---------------------------------------------------------------------# +# Choose the right include file from the /make directory. + +# CGAL_MAKEFILE = ENTER_YOUR_INCLUDE_MAKEFILE_HERE +include $(CGAL_MAKEFILE) + +#---------------------------------------------------------------------# +# compiler flags +#---------------------------------------------------------------------# + +CXXFLAGS = -I../../../include/ \ + $(CGAL_CXXFLAGS) \ + $(LONG_NAME_PROBLEM_CXXFLAGS) \ + $(DEBUG_OPT) + +#---------------------------------------------------------------------# +# linker flags +#---------------------------------------------------------------------# + +LIBPATH = \ + $(CGAL_LIBPATH) + +LDFLAGS = \ + $(LONG_NAME_PROBLEM_LDFLAGS) \ + $(CGAL_QT_LDFLAGS) \ + -lCGALQt + + +#---------------------------------------------------------------------# +# target entries +#---------------------------------------------------------------------# + +all: convex_hull_2 + +Qt_widget_toolbar$(OBJ_EXT): Qt_widget_toolbar.C Qt_widget_toolbar.moc + $(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) Qt_widget_toolbar.C + +Qt_widget_toolbar.moc: Qt_widget_toolbar.h + $(QT_MOC) -o Qt_widget_toolbar.moc $< + +convex_hull_2.moc: convex_hull_2.C Qt_widget_toolbar$(OBJ_EXT) + ${QT_MOC} -o convex_hull_2.moc convex_hull_2.C + +convex_hull_2$(OBJ_EXT): convex_hull_2.C convex_hull_2.moc + $(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) convex_hull_2.C + +convex_hull_2$(EXE_EXT): convex_hull_2$(OBJ_EXT) + $(CGAL_CXX) $(EXE_OPT)convex_hull_2 convex_hull_2$(OBJ_EXT) \ + Qt_widget_toolbar$(OBJ_EXT) $(LDFLAGS) + +clean: convex_hull_2.clean \ + Qt_widget_toolbar.clean + +#---------------------------------------------------------------------# +# suffix rules +#---------------------------------------------------------------------# + +.C$(OBJ_EXT): + $(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) $< diff --git a/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/max_k-gon.C b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/max_k-gon.C new file mode 100644 index 00000000000..7f17e2e1a47 --- /dev/null +++ b/Packages/Qt_widget/demo/Qt_widget/Max_k-gon/max_k-gon.C @@ -0,0 +1,307 @@ +// if QT is not installed, a message will be issued in runtime. +#ifndef CGAL_USE_QT +#include + + +int main(int, char*) +{ + + std::cout << "Sorry, this demo needs QT..."; + std::cout << std::endl; + + return 0; +} + +#else + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + +#include +#include "Qt_widget_toolbar.h" +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef double Coord_type; +typedef CGAL::Cartesian Rep; + +typedef CGAL::Polygon_traits_2 Traits; +typedef Traits::Point_2 Point; +typedef Traits::Segment_2 Segment; +typedef std::vector Container; +typedef CGAL::Polygon_2 Polygonvec; + +const QString my_title_string("Maximum Inscribed K-gon Demo with" + " CGAL Qt_widget"); + +//global flags and variables +int current_state; +std::list list_of_points; + + +class Qt_view_show_ch : public CGAL::Qt_widget_view +{ +public: + + Qt_view_show_ch(){}; + + + void draw(CGAL::Qt_widget &win) + { + win.lock(); + + //MAXIMUM INSCRIBED 3-GON + Polygonvec outpol; + CGAL::convex_hull_points_2(list_of_points.begin(), list_of_points.end(), std::back_inserter(outpol)); + Polygonvec kg; + if (outpol.size()>2) + CGAL::maximum_area_inscribed_k_gon(outpol.vertices_begin(),outpol.vertices_end(),3, std::back_inserter(kg)); + + RasterOp old = win.rasterOp(); //save the initial raster mode + win.setRasterOp(XorROP); + win << CGAL::FillColor(CGAL::BLUE); + win << kg; + win.setRasterOp(old); + + //MAXIMUM INSCRIBED 5-GON + Polygonvec kg1; + if (outpol.size()>2) + CGAL::maximum_area_inscribed_k_gon(outpol.vertices_begin(),outpol.vertices_end(),5, std::back_inserter(kg1)); + + old = win.rasterOp(); //save the initial raster mode + win.setRasterOp(XorROP); + win << CGAL::FillColor(CGAL::GRAY); + win << kg1; + win.setRasterOp(old); + + //VERTICES + win << CGAL::PointSize(7) << CGAL::PointStyle(CGAL::CROSS); + win << CGAL::GREEN; + std::list::iterator itp = list_of_points.begin(); + while(itp!=list_of_points.end()) + win << (*itp++); + + + //CONVEX HULL + std::list out; + std::list Sl; + CGAL::convex_hull_points_2(list_of_points.begin(), list_of_points.end(), std::back_inserter(out)); + if( out.size() > 1 ) { + Point pakt,prev,pstart; + + std::list::const_iterator it; + it=out.begin(); + prev= *it; pstart=prev; + it++; + + for(; it!=out.end(); ++it) { + pakt= *it; + Sl.push_back(Segment(prev,pakt)); + prev=pakt; + } + Sl.push_back(Segment(pakt,pstart)); + + win << CGAL::RED; + std::list::iterator its = Sl.begin(); + while(its!=Sl.end()) + win << (*its++); + } + + + win.unlock(); + }; + +};//end class + +class MyWindow : public QMainWindow +{ + Q_OBJECT +public: + MyWindow(int w, int h): win(this) { + setCentralWidget(&win); + + //create a timer for checking if somthing changed + QTimer *timer = new QTimer( this ); + connect( timer, SIGNAL(timeout()), + this, SLOT(timer_done()) ); + timer->start( 200, FALSE ); + + + // file menu + QPopupMenu * file = new QPopupMenu( this ); + menuBar()->insertItem( "&File", file ); + file->insertItem("&New", this, SLOT(new_instance()), CTRL+Key_N); + file->insertItem("New &Window", this, SLOT(new_window()), CTRL+Key_W); + file->insertSeparator(); + file->insertItem( "&Close", this, SLOT(close()), CTRL+Key_X ); + file->insertItem( "&Quit", qApp, SLOT( closeAllWindows() ), CTRL+Key_Q ); + + + // drawing menu + QPopupMenu * draw = new QPopupMenu( this ); + menuBar()->insertItem( "&Draw", draw ); + draw->insertItem("&Generate points", this, SLOT(gen_points()), CTRL+Key_G ); + + // help menu + QPopupMenu * help = new QPopupMenu( this ); + menuBar()->insertItem( "&Help", help ); + help->insertItem("&About", this, SLOT(about()), CTRL+Key_A ); + help->insertItem("About &Qt", this, SLOT(aboutQt()) ); + + //the new tools toolbar + setUsesBigPixmaps(TRUE); + newtoolbar = new CGAL::Tools_toolbar(&win, this, list_of_points); + //the standard toolbar + stoolbar = new CGAL::Standard_toolbar (&win, this); + this->addToolBar(stoolbar->toolbar(), Top, FALSE); + this->addToolBar(newtoolbar->toolbar(), Top, FALSE); + + + win << CGAL::LineWidth(2) << CGAL::BackgroundColor (CGAL::BLACK); + + + resize(w,h); + win.show(); + + win.setMouseTracking(TRUE); + + //connect the widget to the main function that receives the objects + connect(&win, SIGNAL(new_cgal_object(CGAL::Object)), + this, SLOT(get_new_object(CGAL::Object))); + + //application flag stuff + old_state = 0; + + //views + win.attach(&testview); + }; + + ~MyWindow() + { + }; + + +private: + void something_changed(){current_state++;}; + +public slots: + void set_window(double xmin, double xmax, double ymin, double ymax) + { + win.set_window(xmin, xmax, ymin, ymax); + } + void new_instance() + { + win.detach_current_tool(); + win.lock(); + list_of_points.clear(); + win.set_window(-1.1, 1.1, -1.1, 1.1); // set the Visible Area to the Interval + win.unlock(); + something_changed(); + } + +private slots: + void get_new_object(CGAL::Object obj) + { + Point p; + if(CGAL::assign(p,obj)) { + list_of_points.push_back(p); + something_changed(); + } + }; + + void about() + { + QMessageBox::about( this, my_title_string, + "This is a demo for Triangulation,\n" + "Copyright CGAL @2001"); + }; + + void aboutQt() + { + QMessageBox::aboutQt( this, my_title_string ); + } + + void new_window(){ + MyWindow *ed = new MyWindow(500, 500); + ed->setCaption("View"); + ed->show(); + ed->set_window(-1.1, 1.1, -1.1, 1.1); + something_changed(); + } + + void timer_done() + { + if(old_state!=current_state){ + win.redraw(); + old_state = current_state; + } + } + + void gen_points() + { + win.set_window(-1.1, 1.1, -1.1, 1.1); // set the Visible Area to the Interval + + // send resizeEvent only on show. + CGAL::Random_points_in_disc_2 g(0.5); + for(int count=0; count<200; count++) { + list_of_points.push_back(*g++); + } + something_changed(); + } + + + +private: + CGAL::Qt_widget win; + CGAL::Tools_toolbar *newtoolbar; + CGAL::Standard_toolbar *stoolbar; + int old_state; + Qt_view_show_ch testview; +}; + +#include "max_k-gon.moc" + + +int +main(int argc, char **argv) +{ + QApplication app( argc, argv ); + app.setStyle( new QPlatinumStyle ); + QPalette p( QColor( 250, 215, 100 ) ); + app.setPalette( p, TRUE ); + MyWindow win(800,800); // physical window size + app.setMainWidget(&win); + win.setCaption(my_title_string); + win.setMouseTracking(TRUE); + win.show(); + // because Qt send resizeEvent only on show. + win.set_window(-1, 1, -1, 1); + current_state = -1; + return app.exec(); +} + +#endif // CGAL_USE_QT