Mercurial > projects > doodle
diff canvas.d @ 3:7d57cae10805
Renamed geometry2 to geometry
author | David Bryant <daveb@acres.com.au> |
---|---|
date | Fri, 10 Jul 2009 15:25:48 +0930 |
parents | d6f44347373d |
children | 8a39b13cd3e6 |
line wrap: on
line diff
--- a/canvas.d Fri Jul 10 15:15:27 2009 +0930 +++ b/canvas.d Fri Jul 10 15:25:48 2009 +0930 @@ -20,7 +20,7 @@ import gtk.Adjustment; import tk.misc; -import tk.geometry2; +import tk.geometry; import tk.types; import tk.events; import tk.gtk_support; @@ -34,8 +34,8 @@ class Canvas : Table, ICanvas { static this() { - ORIGIN = Point2(0.0, 0.0); - INITIAL_PAGE_SIZE = Vector2(210.0, 297.0); // A4 + ORIGIN = Point(0.0, 0.0); + INITIAL_PAGE_SIZE = Vector(210.0, 297.0); // A4 } this(ICanvasEventHandler event_handler) { @@ -108,17 +108,17 @@ 0, 0); } - override void rel_zoom(Point2 screen_datum, double factor) { + override void rel_zoom(Point screen_datum, double factor) { // Work out pixel distance from current centre to datum, // Do the zoom, then work out the new centre that keeps the // pixel distance the same - Point2 old_model_datum = screen_to_model(screen_datum); - Vector2 pixel_distance = model_to_screen(old_model_datum - mViewCentre); + Point old_model_datum = screen_to_model(screen_datum); + Vector pixel_distance = model_to_screen(old_model_datum - mViewCentre); mZoom = clamp_zoom(factor * mZoom); mViewCentre = old_model_datum - screen_to_model(pixel_distance); - Point2 new_model_datum = screen_to_model(screen_datum); + Point new_model_datum = screen_to_model(screen_datum); update_adjustments(); //update_rulers(new_model_datum); @@ -126,7 +126,7 @@ queueDraw(); } - override void rel_pan(Vector2 screen_displacement) { + override void rel_pan(Vector screen_displacement) { mViewCentre = mViewCentre + screen_to_model(screen_displacement); update_adjustments(); @@ -144,7 +144,7 @@ bool onConfigure(GdkEventConfigure * event, Widget widget) { assert(widget is mDrawingArea); - mViewSize = Vector2(cast(double)event.width, cast(double)event.height); + mViewSize = Vector(cast(double)event.width, cast(double)event.height); update_adjustments(); update_rulers(); @@ -181,8 +181,8 @@ { // Make the paper white, with a border - Point2 screen_page_left_bottom = model_to_screen(mPageLeftBottom); - Point2 screen_page_right_top = model_to_screen(mPageRightTop); + Point screen_page_left_bottom = model_to_screen(mPageLeftBottom); + Point screen_page_right_top = model_to_screen(mPageRightTop); cr.setSourceRgba(1.0, 1.0, 1.0, 1.0); rectangle(cr, screen_page_left_bottom, screen_page_right_top); @@ -200,8 +200,8 @@ assert(widget is mDrawingArea); //writefln("Got button event\n"); - Point2 screen_point = Point2(event.x + 0.5, event.y + 0.5); - Point2 model_point = screen_to_model(screen_point); + Point screen_point = Point(event.x + 0.5, event.y + 0.5); + Point model_point = screen_to_model(screen_point); auto button_event = new ButtonEvent(gtk2tk_click(event.type), gtk2tk_button(event.button), @@ -230,8 +230,8 @@ gtk_widget_event(mHRuler.getWidgetStruct(), cast(GdkEvent *)event); gtk_widget_event(mVRuler.getWidgetStruct(), cast(GdkEvent *)event); - Point2 screen_point = Point2(event.x + 0.5, event.y + 0.5); - Point2 model_point = screen_to_model(screen_point); + Point screen_point = Point(event.x + 0.5, event.y + 0.5); + Point model_point = screen_to_model(screen_point); auto motion_event = new MotionEvent(screen_point, model_point, @@ -246,8 +246,8 @@ assert(widget is mDrawingArea); //writefln("Got scroll\n"); - Point2 screen_point = Point2(event.x + 0.5, event.y + 0.5); - Point2 model_point = screen_to_model(screen_point); + Point screen_point = Point(event.x + 0.5, event.y + 0.5); + Point model_point = screen_to_model(screen_point); auto scroll_event = new ScrollEvent(gtk2tk_direction(event.direction), screen_point, @@ -263,10 +263,10 @@ GtkAdjustment * h_gtkAdjustment = mHAdjustment.getAdjustmentStruct(); GtkAdjustment * v_gtkAdjustment = mVAdjustment.getAdjustmentStruct(); - Point2 view_left_bottom = Point2(gtk_adjustment_get_value(h_gtkAdjustment), + Point view_left_bottom = Point(gtk_adjustment_get_value(h_gtkAdjustment), gtk_adjustment_get_value(v_gtkAdjustment)); writefln("%s", view_left_bottom); - Vector2 model_size = screen_to_model(mViewSize); + Vector model_size = screen_to_model(mViewSize); mViewCentre = view_left_bottom + model_size / 2.0; update_rulers(); @@ -275,10 +275,10 @@ } void update_rulers() { - Vector2 model_size = screen_to_model(mViewSize); + Vector model_size = screen_to_model(mViewSize); - Point2 view_left_bottom = mViewCentre - model_size / 2.0; - Point2 view_right_top = mViewCentre + model_size / 2.0; + Point view_left_bottom = mViewCentre - model_size / 2.0; + Point view_right_top = mViewCentre + model_size / 2.0; mHRuler.setRange(view_left_bottom.x, view_right_top.x, @@ -291,17 +291,17 @@ } void update_adjustments() { - Vector2 model_size = screen_to_model(mViewSize); + Vector model_size = screen_to_model(mViewSize); - Point2 view_left_bottom = mViewCentre - model_size / 2.0; - Point2 view_right_top = mViewCentre + model_size / 2.0; + Point view_left_bottom = mViewCentre - model_size / 2.0; + Point view_right_top = mViewCentre + model_size / 2.0; // Adjust the canvas size if necessary mCanvasLeftBottom = min_extents(mCanvasLeftBottom, view_left_bottom); mCanvasRightTop = max_extents(mCanvasRightTop, view_right_top); - Vector2 canvas_size = mCanvasRightTop - mCanvasLeftBottom; - Vector2 page_size = mPageRightTop - mPageLeftBottom; + Vector canvas_size = mCanvasRightTop - mCanvasLeftBottom; + Vector page_size = mPageRightTop - mPageLeftBottom; // Update the adjustments @@ -328,17 +328,17 @@ mVAdjustment.valueChanged(); } - Point2 model_to_screen(Point2 model) { return ORIGIN + mViewSize / 2.0 + mZoom * (model - mViewCentre); } - Point2 screen_to_model(Point2 screen) { return mViewCentre + (screen - mViewSize / 2.0 - ORIGIN) / mZoom; } - Vector2 model_to_screen(Vector2 model) { return mZoom * model; } - Vector2 screen_to_model(Vector2 screen) { return screen / mZoom; } + Point model_to_screen(Point model) { return ORIGIN + mViewSize / 2.0 + mZoom * (model - mViewCentre); } + Point screen_to_model(Point screen) { return mViewCentre + (screen - mViewSize / 2.0 - ORIGIN) / mZoom; } + Vector model_to_screen(Vector model) { return mZoom * model; } + Vector screen_to_model(Vector screen) { return screen / mZoom; } double model_to_screen(double model) { return mZoom * model; } double screen_to_model(double screen) { return screen / mZoom; } double clamp_zoom(double zoom) { return clamp(zoom, 0.1, 10.0); } - static const Point2 ORIGIN; - static const Vector2 INITIAL_PAGE_SIZE; + static const Point ORIGIN; + static const Vector INITIAL_PAGE_SIZE; ICanvasEventHandler mEventHandler; @@ -346,14 +346,14 @@ // Screen units are in pixels double mZoom; // pixels-per-mm - Point2 mViewCentre; // model: where in the model is the centre of our view + Point mViewCentre; // model: where in the model is the centre of our view - Point2 mCanvasLeftBottom; // model: bottom left corner of canvas - Point2 mCanvasRightTop; // model: top right corner of canvas - Point2 mPageLeftBottom; // model: bottom left corner of page - Point2 mPageRightTop; // model: top right corner of page + Point mCanvasLeftBottom; // model: bottom left corner of canvas + Point mCanvasRightTop; // model: top right corner of canvas + Point mPageLeftBottom; // model: bottom left corner of page + Point mPageRightTop; // model: top right corner of page - Vector2 mViewSize; // screen: size of view window in pixels + Vector mViewSize; // screen: size of view window in pixels HRuler mHRuler; VRuler mVRuler;