123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // This file is part of libigl, a simple c++ geometry processing library.
- //
- // Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
- //
- // This Source Code Form is subject to the terms of the Mozilla Public License
- // v. 2.0. If a copy of the MPL was not distributed with this file, You can
- // obtain one at http://mozilla.org/MPL/2.0/.
- #ifndef IGL_VIEWPORT_H
- #define IGL_VIEWPORT_H
- #include "Camera.h"
- namespace igl
- {
- struct Viewport
- {
- int x,y,width,height;
- igl::Camera camera;
- // Constructors
- Viewport(
- const int x=0,
- const int y=0,
- const int width=0,
- const int height=0,
- const igl::Camera & camera = igl::Camera()):
- x(x),
- y(y),
- width(width),
- height(height),
- camera(camera)
- {
- };
- virtual ~Viewport(){}
- void reshape(
- const int x,
- const int y,
- const int width,
- const int height)
- {
- this->x = x;
- this->y = y;
- this->width = width;
- this->height = height;
- };
- // Given mouse_x,mouse_y on the entire window return mouse_x, mouse_y in
- // this viewport.
- //
- // Inputs:
- // my mouse y-coordinate
- // wh window weight
- // Returns y-coordinate in viewport
- int mouse_y(const int my,const int wh)
- {
- return my - (wh - height - y);
- }
- // Inputs:
- // mx mouse x-coordinate
- // Returns x-coordinate in viewport
- int mouse_x(const int mx)
- {
- return mx - x;
- }
- };
- }
- #endif
|