Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tfWindow.h
1/*******************************************************************************
2 * This file is part of Tissue Forge.
3 * Copyright (c) 2022-2024 T.J. Sego
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 ******************************************************************************/
19
20#ifndef _SOURCE_RENDERING_TFWINDOW_H_
21#define _SOURCE_RENDERING_TFWINDOW_H_
22
23#include <TissueForge_private.h>
24#include <Magnum/Magnum.h>
25#include <Magnum/GL/AbstractFramebuffer.h>
26#include <GLFW/glfw3.h>
27
28
29namespace TissueForge::rendering {
30
31
32 struct Window
33 {
34
35 enum MouseButton {
36 MouseButton1 = GLFW_MOUSE_BUTTON_1,
37 MouseButton2 = GLFW_MOUSE_BUTTON_2,
38 MouseButton3 = GLFW_MOUSE_BUTTON_3,
39 MouseButton4 = GLFW_MOUSE_BUTTON_4,
40 MouseButton5 = GLFW_MOUSE_BUTTON_5,
41 MouseButton6 = GLFW_MOUSE_BUTTON_6,
42 MouseButton7 = GLFW_MOUSE_BUTTON_7,
43 MouseButton8 = GLFW_MOUSE_BUTTON_8,
44 MouseButtonLast = GLFW_MOUSE_BUTTON_LAST,
45 MouseButtonLeft = GLFW_MOUSE_BUTTON_LEFT,
46 MouseButtonRight = GLFW_MOUSE_BUTTON_RIGHT,
47 MouseButtonMiddle = GLFW_MOUSE_BUTTON_MIDDLE,
48 };
49
50 enum State {
51 Release = GLFW_RELEASE,
52 Press = GLFW_PRESS,
53 Repeat = GLFW_REPEAT
54 };
55
56 virtual iVector2 windowSize() const = 0;
57
58 virtual Magnum::GL::AbstractFramebuffer& framebuffer() = 0;
59
60 virtual void redraw() = 0;
61 };
62
63}
64
65#endif // _SOURCE_RENDERING_TFWINDOW_H_
Tissue Forge rendering and visualization.
Definition tfAngle.h:38
Definition tfWindow.h:33