From f33257521bf80dcef8575c4fc3ddaf4a40ff588a Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 7 Jun 2009 18:13:15 +0000 Subject: fixed a few widget order problems, changed map targetting behaviour --- src/ui/modelview.cc | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/ui/modelview.cc') diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc index 11dd318..e3816cd 100755 --- a/src/ui/modelview.cc +++ b/src/ui/modelview.cc @@ -22,6 +22,8 @@ ModelView::ModelView(Widget *parent, const char *modelname) : Widget(parent) set_label("modelview"); set_modelname(modelname); + + modelview_zoom = 1.0f; } ModelView::~ModelView() @@ -51,6 +53,29 @@ void ModelView::set_color(const math::Color & color) modelview_color.assign(color); } +void ModelView::set_zoom(const float zoom) +{ + modelview_zoom = zoom; + math::clamp(modelview_zoom, 1.0f, 10.0f); +} + +bool ModelView::on_keypress(const int key, const unsigned int modifier) +{ + if (key == 512 + SDL_BUTTON_WHEELUP) { + modelview_zoom -= 0.1f; + if (modelview_zoom < 1.0f) + modelview_zoom = 1.0f; + return true; + } else if (key == 512 + SDL_BUTTON_WHEELDOWN) { + modelview_zoom += 0.1f; + if (modelview_zoom > 10.0f) + modelview_zoom = 10.0f; + return true; + } + + return false; +} + void ModelView::draw() { if (!modelview_modelname.size()) @@ -68,7 +93,7 @@ void ModelView::draw() gl::clear(GL_DEPTH_BUFFER_BIT); // gl 3d mode - render::Camera::frustum_default(model->radius(), center.x, center.y); + render::Camera::frustum_default(model->radius() * modelview_zoom, center.x, center.y); gl::disable(GL_BLEND); gl::depthmask(GL_TRUE); // enable writing to the depth buffer -- cgit v1.2.3