Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 96 lines (79 sloc) 2.461 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
#ifndef GLVIEW_H_
#define GLVIEW_H_

#include "system-gl.h"
#include <QGLWidget>
#include <QLabel>

class GLView : public QGLWidget
{
Q_OBJECT
Q_PROPERTY(bool showFaces READ showFaces WRITE setShowFaces);
Q_PROPERTY(bool showEdges READ showEdges WRITE setShowEdges);
Q_PROPERTY(bool showAxes READ showAxes WRITE setShowAxes);
Q_PROPERTY(bool showCrosshairs READ showCrosshairs WRITE setShowCrosshairs);
Q_PROPERTY(bool orthoMode READ orthoMode WRITE setOrthoMode);

public:
GLView(QWidget *parent = NULL);
GLView(const QGLFormat & format, QWidget *parent = NULL);
void setRenderer(class Renderer* r);
#ifdef ENABLE_OPENCSG
bool hasOpenCSGSupport() { return this->opencsg_support; }
#endif
// Properties
bool showFaces() const { return this->showfaces; }
void setShowFaces(bool enabled) { this->showfaces = enabled; }
bool showEdges() const { return this->showedges; }
void setShowEdges(bool enabled) { this->showedges = enabled; }
bool showAxes() const { return this->showaxes; }
void setShowAxes(bool enabled) { this->showaxes = enabled; }
bool showCrosshairs() const { return this->showcrosshairs; }
void setShowCrosshairs(bool enabled) { this->showcrosshairs = enabled; }
bool orthoMode() const { return this->orthomode; }
void setOrthoMode(bool enabled) { this->orthomode = enabled; }
const QString &getRendererInfo() const { return this->rendererInfo; }

public:
QLabel *statusLabel;
double object_rot_x;
double object_rot_y;
double object_rot_z;
double object_trans_x;
double object_trans_y;
double object_trans_z;
GLint shaderinfo[11];

#ifdef ENABLE_OPENCSG
bool opencsg_support;
int opencsg_id;
#endif

private:
void init();
Renderer *renderer;

QString rendererInfo;

bool showfaces;
bool showedges;
bool showaxes;
bool showcrosshairs;
bool orthomode;

double viewer_distance;

double w_h_ratio;

bool mouse_drag_active;
QPoint last_mouse;

void keyPressEvent(QKeyEvent *event);
void wheelEvent(QWheelEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);

void initializeGL();
void resizeGL(int w, int h);
void setupPerspective();
void setupOrtho(double distance,bool offset=false);
void paintGL();
void normalizeAngle(GLdouble& angle);

#ifdef ENABLE_OPENCSG
  bool is_opencsg_capable;
  bool has_shaders;
private slots:
void display_opencsg_warning();
#endif

signals:
void doAnimateUpdate();
};

#endif
Something went wrong with that request. Please try again.