leda_window.h
来自「CGAL is a collaborative effort of severa」· C头文件 代码 · 共 820 行 · 第 1/2 页
H
820 行
operator>>(leda_window& w, Triangle_2<R>& t){ typedef typename R::RT RT; double x,y; int key = 0;#if ( __LEDA__ < 362 ) w.state = 1;#else w.set_state( 1);#endif // __LEDA__ < ... leda_point first, second, third, p; leda_drawing_mode save = w.set_mode(leda_xor_mode); if ( !( w >> first)) { w.set_mode( save); return w; } int save_but[8]; w.std_buttons(save_but); key = w.read_mouse_seg( first.xcoord(), first.ycoord(), x, y); if ( key == MOUSE_BUTTON(3)) { w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } else { w << leda_segment( first.xcoord(), first.ycoord(), x, y); second = leda_point( x, y); } key = w.read_mouse_seg( second.xcoord(), second.ycoord(), x, y); if ( key == MOUSE_BUTTON(3)) { w << leda_segment( first, second ); w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } else { w << leda_segment( second.xcoord(), second.ycoord(), x, y); third = leda_point( x, y); } w << leda_segment( first, second ); w << leda_segment( second, third ); double x0 = first.xcoord(); double y0 = first.ycoord(); double x1 = second.xcoord(); double y1 = second.ycoord(); double x2 = third.xcoord(); double y2 = third.ycoord(); w.set_mode( save); leda_color cl = w.get_fill_color(); if (cl != leda_invisible) { // draw filled triangle ... w.draw_filled_triangle(leda_point(x0,y0), leda_point(x1,y1), leda_point(x2,y2), cl); } w.draw_segment(x0,y0, x1, y1); w.draw_segment(x1,y1, x2, y2); w.draw_segment(x2,y2, x0, y0); t = Triangle_2<R>(Point_2<R>( RT(x0), RT(y0)), Point_2<R>( RT(x1), RT(y1)), Point_2<R>( RT(x2), RT(y2))); return w;}template< class R >leda_window&read(leda_window& w, Triangle_2<R>& t){ typedef typename R::RT RT; double x,y; int key = 0;#if ( __LEDA__ < 362 ) w.state = 1;#else w.set_state( 1);#endif // __LEDA__ < ... leda_point first, second, third, p; leda_drawing_mode save = w.set_mode(leda_xor_mode); if ( !( w >> first)) { w.set_mode( save); return w; } int save_but[8]; w.std_buttons(save_but); key = w.read_mouse_seg( first.xcoord(), first.ycoord(), x, y); if ( key == MOUSE_BUTTON(3)) { w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } else { w << leda_segment( first.xcoord(), first.ycoord(), x, y); second = leda_point( x, y); } key = w.read_mouse_seg( second.xcoord(), second.ycoord(), x, y); if ( key == MOUSE_BUTTON(3)) { w << leda_segment( first, second ); w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } else { w << leda_segment( second.xcoord(), second.ycoord(), x, y); third = leda_point( x, y); } w << leda_segment( first, second ); w << leda_segment( second, third ); double x0 = first.xcoord(); double y0 = first.ycoord(); double x1 = second.xcoord(); double y1 = second.ycoord(); double x2 = third.xcoord(); double y2 = third.ycoord(); w.set_mode( save); t = Triangle_2<R>(Point_2<R>( RT(x0), RT(y0)), Point_2<R>( RT(x1), RT(y1)), Point_2<R>( RT(x2), RT(y2))); return w;}#endif // CGAL_LEDA_WINDOW_TRIANGLE_2#endif // CGAL_TRIANGLE_2_H#ifdef CGAL_CIRCLE_2_H#ifndef CGAL_LEDA_WINDOW_CIRCLE_2#define CGAL_LEDA_WINDOW_CIRCLE_2template< class R >leda_window&operator<<(leda_window& w, const Circle_2<R>& c){ double cx = CGAL::to_double(c.center().x()), cy = CGAL::to_double(c.center().y()), r = CGAL::to_double(c.squared_radius()); leda_color cl = w.get_fill_color(); if (cl != leda_invisible) { // draw filled circle ... w.draw_disc(cx, cy , std::sqrt(r), cl); } w.draw_circle(cx, cy , std::sqrt(r)); return w;}template< class R >leda_window&operator>>(leda_window& w, Circle_2<R>& c){ typedef typename R::RT RT; double x,y; int key = 0;#if ( __LEDA__ < 362 ) w.state = 1;#else w.set_state( 1);#endif // __LEDA__ < ... leda_point p; leda_drawing_mode save = w.set_mode(leda_xor_mode); if ( !( w.read( p))) { w.set_mode( save); return w; } double cx = p.xcoord(); double cy = p.ycoord(); Point_2<R> center = Point_2<R>( RT(cx), RT(cy)); int save_but[8]; w.std_buttons(save_but); key = w.read_mouse_circle(cx, cy, x, y); if ( key == MOUSE_BUTTON(3)) { w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } double dx = x - cx; double dy = y - cy; double sqr = dx*dx+dy*dy; w.set_mode( save); w.set_buttons( save_but); leda_color cl = w.get_fill_color(); if (cl != leda_invisible) { // draw filled circle ... w.draw_disc(cx, cy , std::sqrt(sqr), cl); } w.draw_circle(cx, cy , std::sqrt(sqr)); c = Circle_2<R>(center, RT(sqr)); return w;}template< class R >leda_window&read(leda_window& w, Circle_2<R>& c){ typedef typename R::RT RT; double x,y; int key = 0;#if ( __LEDA__ < 362 ) w.state = 1;#else w.set_state( 1);#endif // __LEDA__ < ... leda_point p; leda_drawing_mode save = w.set_mode(leda_xor_mode); if ( !( w.read( p))) { w.set_mode( save); return w; } double cx = p.xcoord(); double cy = p.ycoord(); Point_2<R> center = Point_2<R>( RT(cx), RT(cy)); int save_but[8]; w.std_buttons(save_but); key = w.read_mouse_circle(cx, cy, x, y); if ( key == MOUSE_BUTTON(3)) { w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } double dx = x - cx; double dy = y - cy; double sqr = dx*dx+dy*dy; w.set_mode( save); w.set_buttons( save_but); c = Circle_2<R>(center, RT(sqr)); return w;}#endif // CGAL_LEDA_WINDOW_CIRCLE_2#endif // CGAL_CIRCLE_2_H#ifdef CGAL_ISO_RECTANGLE_2_H#ifndef CGAL_LEDA_WINDOW_ISO_RECTANGLE_2#define CGAL_LEDA_WINDOW_ISO_RECTANGLE_2template< class R >leda_window&operator<<(leda_window& w, const Iso_rectangle_2<R>& r){ double xmin = CGAL::to_double(r.min().x()), ymin = CGAL::to_double(r.min().y()), xmax = CGAL::to_double(r.max().x()), ymax = CGAL::to_double(r.max().y()); leda_color cl = w.get_fill_color(); if (cl != leda_invisible) { // draw filled rectangle ... w.draw_filled_rectangle(xmin, ymin, xmax, ymax, cl); } w.draw_segment(xmin, ymin, xmax, ymin); w.draw_segment(xmax, ymin, xmax, ymax); w.draw_segment(xmax, ymax, xmin, ymax); w.draw_segment(xmin, ymax, xmin, ymin); return w;}template< class R >leda_window&operator>>(leda_window& w, Iso_rectangle_2<R>& r){ typedef typename R::RT RT; double x,y; int key = 0;#if ( __LEDA__ < 362 ) w.state = 1;#else w.set_state( 1);#endif // __LEDA__ < ... leda_point first, second; leda_drawing_mode save = w.set_mode(leda_xor_mode); if ( !( w.read( first))) { w.set_mode( save); return w; } int save_but[8]; w.std_buttons(save_but); key = w.read_mouse_rect( first.xcoord(), first.ycoord(), x, y); if ( key == MOUSE_BUTTON(3)) { w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } r = Iso_rectangle_2<R>(Point_2<R>( RT(first.xcoord()), RT(first.ycoord())), Point_2<R>( RT(x), RT(y))); w.set_mode( save); leda_color cl = w.get_fill_color(); if (cl != leda_invisible) { // draw filled rectangle ... w.draw_filled_rectangle(first.xcoord(), first.ycoord(), x, y, cl); } w.draw_rectangle( first.xcoord(), first.ycoord(), x, y); w.set_buttons( save_but); return w;}template< class R >leda_window&read(leda_window& w, Iso_rectangle_2<R>& r){ typedef typename R::RT RT; double x,y; int key = 0;#if ( __LEDA__ < 362 ) w.state = 1;#else w.set_state( 1);#endif // __LEDA__ < ... leda_point first, second; leda_drawing_mode save = w.set_mode(leda_xor_mode); if ( !( w.read( first))) { w.set_mode( save); return w; } int save_but[8]; w.std_buttons(save_but); key = w.read_mouse_rect( first.xcoord(), first.ycoord(), x, y); if ( key == MOUSE_BUTTON(3)) { w.set_buttons( save_but); w.set_mode( save);#if ( __LEDA__ < 362 ) w.state = 0;#else w.set_state( 0);#endif // __LEDA__ < ... return w; } r = Iso_rectangle_2<R>(Point_2<R>( RT(first.xcoord()), RT(first.ycoord())), Point_2<R>( RT(x), RT(y))); w.set_mode( save); w.set_buttons( save_but); return w;}#endif // CGAL_LEDA_WINDOW_ISO_RECTANGLE_2#endif // CGAL_ISO_RECTANGLE_2_H#ifdef CGAL_BBOX_2_H#ifndef CGAL_LEDA_WINDOW_BBOX_2#define CGAL_LEDA_WINDOW_BBOX_2inlineleda_window&operator<<(leda_window& w, const Bbox_2& b){#if (__LEDA__ >= 400) leda_line_style style = w.set_line_style(leda_dotted);#else line_style style = w.set_line_style(leda_dotted);#endif double xmin = b.xmin(), ymin = b.ymin(), xmax = b.xmax(), ymax = b.ymax(); w.draw_segment(xmin, ymin, xmax, ymin); w.draw_segment(xmax, ymin, xmax, ymax); w.draw_segment(xmax, ymax, xmin, ymax); w.draw_segment(xmin, ymax, xmin, ymin); w.set_line_style(style); return w;}#endif // CGAL_LEDA_WINDOW_BBOX_2#endif // CGAL_BBOX_2_HCGAL_END_NAMESPACE#ifndef IO_TRIANGULATION_WINDOW_STREAM_H#include <CGAL/IO/triangulation_Window_stream.h>#endif // IO_TRIANGULATION_WINDOW_STREAM_H#include <CGAL/IO/Min_circle_2_Window_stream.h>#include <CGAL/IO/Min_ellipse_2_Window_stream.h>#ifndef IO_POLYGON_WINDOW_STREAM_H#include <CGAL/IO/polygon_Window_stream.h>#endif // IO_POLYGON_WINDOW_STREAM_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?