src/glrenderer.h

Sat, 17 Mar 2018 11:33:05 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 17 Mar 2018 11:33:05 +0200
changeset 1292
66d2050d3bd9
parent 1278
6e1ea24e5a5e
child 1306
be85306198a2
permissions
-rw-r--r--

Part history can now be edited

655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
1 /*
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
2 * LDForge: LDraw parts authoring CAD
1072
9ce9496427f2 Happy new year 2017!
Teemu Piippo <teemu@hecknology.net>
parents: 1061
diff changeset
3 * Copyright (C) 2013 - 2017 Teemu Piippo
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
4 *
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
5 * This program is free software: you can redistribute it and/or modify
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
7 * the Free Software Foundation, either version 3 of the License, or
1006
a6b462051ae0 Copyright header fix, some minor stuff
Teemu Piippo <crimsondusk64@gmail.com>
parents: 1000
diff changeset
8 * (at your option) any later version.
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
9 *
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
13 * GNU General Public License for more details.
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
14 *
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
17 */
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
18
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
19 #pragma once
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
20 #include <QGLWidget>
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
21 #include "main.h"
1098
0b837bed121d LDGLData merged into GLRenderer since it only deals with one document now. GLRenderer generalised from rendering documents to models.
Teemu Piippo <teemu@hecknology.net>
parents: 1097
diff changeset
22 #include "model.h"
706
d79083b9f74d Merge ../ldforge into gl
Santeri Piippo <crimsondusk64@gmail.com>
parents: 655
diff changeset
23 #include "glShared.h"
1129
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
24 #include "glcamera.h"
1159
6ad8cdcd88d9 print() is no longer a global function but is tied to HierarchyElement.
Teemu Piippo <teemu@hecknology.net>
parents: 1158
diff changeset
25 #include "hierarchyelement.h"
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
26
1123
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
27 enum class Camera
762
d259256e1394 - added a macro for adding operator++ and operator-- to enums, less cast hell this way
Santeri Piippo <crimsondusk64@gmail.com>
parents: 760
diff changeset
28 {
1123
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
29 Top,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
30 Front,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
31 Left,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
32 Bottom,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
33 Back,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
34 Right,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
35 Free,
15e46ea3151f Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
Teemu Piippo <teemu@hecknology.net>
parents: 1119
diff changeset
36 _End
762
d259256e1394 - added a macro for adding operator++ and operator-- to enums, less cast hell this way
Santeri Piippo <crimsondusk64@gmail.com>
parents: 760
diff changeset
37 };
d259256e1394 - added a macro for adding operator++ and operator-- to enums, less cast hell this way
Santeri Piippo <crimsondusk64@gmail.com>
parents: 760
diff changeset
38
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
39 struct CameraIcon
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
40 {
1033
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
41 QPixmap image;
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
42 QRect sourceRect;
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
43 QRect targetRect;
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
44 QRect hitRect;
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
45 Camera camera;
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
46 };
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
47
1129
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
48 MAKE_ITERABLE_ENUM(Camera)
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
49
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
50 // The main renderer object, draws the brick on the screen, manages the camera and selection picking.
970
c8aae45afd85 Commit configuration rework (doesn't work yet, more than most probably doesn't compile either)
Teemu Piippo <crimsondusk64@gmail.com>
parents: 968
diff changeset
51 class GLRenderer : public QGLWidget, protected QOpenGLFunctions, public HierarchyElement
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
52 {
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
53 Q_OBJECT
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
54
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
55 public:
1278
6e1ea24e5a5e moved LDObject indices from a global array into Model
Santeri Piippo
parents: 1251
diff changeset
56 enum { BlackRgb = 0xff000000 };
6e1ea24e5a5e moved LDObject indices from a global array into Model
Santeri Piippo
parents: 1251
diff changeset
57
1109
a55b2608a395 Made GLRenderer's Model pointer const
Teemu Piippo <teemu@hecknology.net>
parents: 1108
diff changeset
58 GLRenderer(const Model* model, QWidget* parent = nullptr);
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
59 ~GLRenderer();
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
60
1033
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
61 Camera camera() const;
1129
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
62 GLCamera& currentCamera();
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
63 const GLCamera& currentCamera() const;
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
64 Qt::KeyboardModifiers keyboardModifiers() const;
1113
5f3139c802bf Cleaned up GLCompiler. Among other changes, the compiler no longer has to be told what to compile.
Teemu Piippo <teemu@hecknology.net>
parents: 1111
diff changeset
65 const Model* model() const;
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
66 QPoint const& mousePosition() const;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
67 QPointF const& mousePositionF() const;
1247
7e1ce2fc066b converted highlighting to mvc
Santeri Piippo
parents: 1246
diff changeset
68 QPersistentModelIndex objectAtCursor() const;
1251
e75cc5bff076 Converted magic wand mode and other selection stuff to mvc
Santeri Piippo
parents: 1247
diff changeset
69 QItemSelection pick(const QRect& range);
e75cc5bff076 Converted magic wand mode and other selection stuff to mvc
Santeri Piippo
parents: 1247
diff changeset
70 QModelIndex pick(int mouseX, int mouseY);
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
71 void resetAllAngles();
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
72 void resetAngles();
1171
430ffa371d2a Turned GLRenderer::pixelCapture to GLRenderer::screenCapture() which encapsulates screen capturing properly and returns a ready image.
Teemu Piippo <teemu@hecknology.net>
parents: 1170
diff changeset
73 QImage screenCapture();
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
74 void setBackground();
1056
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
75 void setCamera(Camera cam);
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
76 QPen textPen() const;
1251
e75cc5bff076 Converted magic wand mode and other selection stuff to mvc
Santeri Piippo
parents: 1247
diff changeset
77 QItemSelectionModel* selectionModel() const;
1246
0054d13ed614 used mvc selection models
Santeri Piippo
parents: 1244
diff changeset
78 void setSelectionModel(QItemSelectionModel* selectionModel);
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
79
1106
7541b0209057 Moved more methods only used by canvas code from GLRenderer to Canvas. Thin border pen is now a static constant.
Teemu Piippo <teemu@hecknology.net>
parents: 1104
diff changeset
80 static const QPen thinBorderPen;
1151
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
81 static const GLRotationMatrix topCameraMatrix;
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
82 static const GLRotationMatrix frontCameraMatrix;
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
83 static const GLRotationMatrix leftCameraMatrix;
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
84 static const GLRotationMatrix bottomCameraMatrix;
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
85 static const GLRotationMatrix backCameraMatrix;
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
86 static const GLRotationMatrix rightCameraMatrix;
0eddb5bcf25b Made fixed cameras matrix-based. This simplifies some math.
Teemu Piippo <teemu@hecknology.net>
parents: 1144
diff changeset
87 static const GLRotationMatrix ldrawToGLAdapterMatrix;
1106
7541b0209057 Moved more methods only used by canvas code from GLRenderer to Canvas. Thin border pen is now a static constant.
Teemu Piippo <teemu@hecknology.net>
parents: 1104
diff changeset
88
1113
5f3139c802bf Cleaned up GLCompiler. Among other changes, the compiler no longer has to be told what to compile.
Teemu Piippo <teemu@hecknology.net>
parents: 1111
diff changeset
89 signals:
1247
7e1ce2fc066b converted highlighting to mvc
Santeri Piippo
parents: 1246
diff changeset
90 void objectHighlightingChanged(const QModelIndex& oldIndex, const QModelIndex& newIndex);
1113
5f3139c802bf Cleaned up GLCompiler. Among other changes, the compiler no longer has to be told what to compile.
Teemu Piippo <teemu@hecknology.net>
parents: 1111
diff changeset
91
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
92 protected:
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
93 void initializeGL();
1178
3a88e7a60b63 At long last, the grid is finally now rendered onto the viewport. Woop!
Teemu Piippo <teemu@hecknology.net>
parents: 1176
diff changeset
94 virtual void drawFixedCameraBackdrop();
1056
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
95 void keyPressEvent(QKeyEvent* event);
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
96 void keyReleaseEvent(QKeyEvent* event);
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
97 void leaveEvent(QEvent* event);
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
98 void mousePressEvent(QMouseEvent* event);
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
99 void mouseMoveEvent(QMouseEvent* ev);
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
100 void mouseReleaseEvent(QMouseEvent* ev);
1104
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
101 void paintEvent(QPaintEvent*);
1056
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
102 void resizeGL(int w, int h);
27b7991b3bea Cleanup in GL renderer...
Teemu Piippo <teemu@hecknology.net>
parents: 1035
diff changeset
103 void wheelEvent(QWheelEvent* ev);
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
104
1170
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
105 QColor backgroundColor() const;
1104
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
106 virtual bool freeCameraAllowed() const;
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
107 bool isDrawingSelectionScene() const;
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
108 Qt::MouseButtons lastButtons() const;
1170
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
109 bool mouseHasMoved() const;
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
110 virtual void overpaint(QPainter& painter);
1104
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
111 double panning (Axis ax) const;
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
112 const QGenericMatrix<4, 4, GLfloat>& rotationMatrix() const;
1129
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
113 double zoom();
1104
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
114
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
115 template<typename... Args>
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
116 QString format (QString fmtstr, Args... args)
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
117 {
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
118 return ::format (fmtstr, args...);
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
119 }
edddb9b0db9e Moved document editing methods from GLRenderer to Canvas
Teemu Piippo <teemu@hecknology.net>
parents: 1100
diff changeset
120
802
2e220b9083bf - refactor glRenderer.h
Santeri Piippo <crimsondusk64@gmail.com>
parents: 790
diff changeset
121 private:
1109
a55b2608a395 Made GLRenderer's Model pointer const
Teemu Piippo <teemu@hecknology.net>
parents: 1108
diff changeset
122 const Model* const m_model;
1176
07b574a4e31d Removed some unused class stubs and definitions.
Teemu Piippo <teemu@hecknology.net>
parents: 1171
diff changeset
123 class GLCompiler* m_compiler;
1247
7e1ce2fc066b converted highlighting to mvc
Santeri Piippo
parents: 1246
diff changeset
124 QPersistentModelIndex m_objectAtCursor;
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
125 CameraIcon m_cameraIcons[7];
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
126 QTimer* m_toolTipTimer;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
127 Qt::MouseButtons m_lastButtons;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
128 Qt::KeyboardModifiers m_currentKeyboardModifiers;
1098
0b837bed121d LDGLData merged into GLRenderer since it only deals with one document now. GLRenderer generalised from rendering documents to models.
Teemu Piippo <teemu@hecknology.net>
parents: 1097
diff changeset
129 QGenericMatrix<4, 4, GLfloat> m_rotationMatrix;
1129
2b20261dc511 Exported GLRenderer cameras into a new class, GLCamera.
Teemu Piippo <teemu@hecknology.net>
parents: 1123
diff changeset
130 GLCamera m_cameras[7];
1061
273333700685 refactor
Teemu Piippo <teemu@hecknology.net>
parents: 1056
diff changeset
131 bool m_useDarkBackground = false;
273333700685 refactor
Teemu Piippo <teemu@hecknology.net>
parents: 1056
diff changeset
132 bool m_panning = false;
273333700685 refactor
Teemu Piippo <teemu@hecknology.net>
parents: 1056
diff changeset
133 bool m_initialized = false;
273333700685 refactor
Teemu Piippo <teemu@hecknology.net>
parents: 1056
diff changeset
134 bool m_isDrawingSelectionScene = false;
273333700685 refactor
Teemu Piippo <teemu@hecknology.net>
parents: 1056
diff changeset
135 bool m_isCameraMoving = false;
1098
0b837bed121d LDGLData merged into GLRenderer since it only deals with one document now. GLRenderer generalised from rendering documents to models.
Teemu Piippo <teemu@hecknology.net>
parents: 1097
diff changeset
136 bool m_needZoomToFit = true;
1169
3da9287b4aff Cleanup GLRenderer::initializeAxes()
Teemu Piippo <teemu@hecknology.net>
parents: 1168
diff changeset
137 bool m_axesInitialized = false;
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
138 QPoint m_mousePosition;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
139 QPoint m_globalpos;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
140 QPointF m_mousePositionF;
1033
32153a1dbb15 - Refactoring...
Teemu Piippo <teemu@compsta2.com>
parents: 1032
diff changeset
141 Camera m_camera;
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
142 GLuint m_axeslist;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
143 int m_totalMouseMove;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
144 QColor m_backgroundColor;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
145 GLuint m_axesVbo;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
146 GLuint m_axesColorVbo;
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
147
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
148 void calcCameraIcons();
1170
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
149 void drawGLScene();
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
150 void drawVbos(VboClass surface, VboSubclass colors);
1169
3da9287b4aff Cleanup GLRenderer::initializeAxes()
Teemu Piippo <teemu@hecknology.net>
parents: 1168
diff changeset
151 void freeAxes();
1170
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
152 void highlightCursorObject();
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
153 void initializeAxes();
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
154 void initializeLighting();
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
155 void initGLData();
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
156 void needZoomToFit();
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
157 void setPicking(bool picking);
2045a395213a Hardened the GLRenderer interface, made methods more private.
Teemu Piippo <teemu@hecknology.net>
parents: 1169
diff changeset
158 Q_SLOT void showCameraIconTooltip();
986
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
159 void zoomToFit();
525921eae58c Refactor GLRenderer and GLCompiler
Teemu Piippo <crimsondusk64@gmail.com>
parents: 984
diff changeset
160 void zoomAllToFit();
655
b376645315ab - renamed files to camelCase
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
161 };

mercurial