void Canvas::load_mesh(Mesh* m)
{
mesh = new GLMesh(m);
- /*
center = QVector3D(m->xmin() + m->xmax(),
m->ymin() + m->ymax(),
m->zmin() + m->zmax()) / 2;
pow(m->xmax() - m->xmin(), 2) +
pow(m->ymax() - m->ymin(), 2) +
pow(m->zmax() - m->zmin(), 2));
- */
update();
delete m;
}
+void Canvas::set_status(const QString &s)
+{
+ status = s;
+ update();
+}
+
void Canvas::initializeGL()
{
mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
mesh_shader.link();
backdrop = new Backdrop();
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glEnable(GL_DEPTH_TEST);
}
-void Canvas::paintGL()
+void Canvas::paintEvent(QPaintEvent *event)
{
+ Q_UNUSED(event);
+
+ glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glEnable(GL_DEPTH_TEST);
backdrop->draw();
if (mesh) draw_mesh();
+
+ QPainter painter(this);
+ painter.setRenderHint(QPainter::Antialiasing);
+ if (!status.isNull())
+ painter.drawText(10, height() - 10, status);
}
+
void Canvas::draw_mesh()
{
mesh_shader.bind();