Newer
Older
/*
* Copyright (c) 2015 Tricoire Sebastien 3dsman@free.fr
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
*/
#ifndef OE_DISPLAY_H
#define OE_DISPLAY_H
#include "OE_utils.h"
#include <stdint.h>
#include <vector>
#include "OE_document.h"
#include <GLFW/glfw3.h>
class OE_display
{
public:
/** Default constructor */
OE_display();
OE_display(OE_document* document,OE_controller* controller);
/** Default destructor */
virtual ~OE_display();
virtual bool setDocument(OE_document * document);
virtual bool setController(OE_controller* controller);
virtual void mouse_Pos(double x, double y);
virtual void mouse_Button(int button, int action, int mods);
virtual void scroll(double xoffset, double yoffset);
virtual void resize(int width, int height);
virtual void key(int key, int scancode, int action, int mods);
vector_2d screenToDocument(vector_2d pos);
virtual bool draw() = 0;
virtual void showAll();
3dsman
committed
virtual void showSelection();
static vector_2d viewPos;
vector_2d absMouse;
vector_2d mouse;
vector_2d mouseInit;
static bool pan;
static int width, height;
protected:
GLFWwindow* window;
const GLFWvidmode* mode;
OE_document * document = NULL;
OE_controller* controller = NULL;