/*
* =====================================================================================
*
* Filename: MainWindow.cpp
*
* Description:
*
* Version: 1.0
* Created: 16/09/2011 21:49:29
* Revision: none
* Compiler: gcc
*
* Author: John Ryland (jryland), jryland@xiaofrog.com
* Company: InvertedLogic
*
* =====================================================================================
*/
#include <MainWindow.h>
#include <PhongTriangle.h>
#include <QPainter>
MainWindow::MainWindow()
{
}
MainWindow::~MainWindow()
{
}
void MainWindow::paintEvent(QPaintEvent *pe)
{
QPainter p(this);
p.drawText(20, 20, "Hello");
PhongTriangle triangle;
triangle.pos[0].x = 100;
triangle.pos[0].y = 100;
triangle.pos[0].z = 50;
triangle.pos[1].x = 175;
triangle.pos[1].y = 220;
triangle.pos[1].z = 50;
triangle.pos[2].x = 250;
triangle.pos[2].y = 100;
triangle.pos[2].z = 50;
triangle.norm[0].x = -0.5;
triangle.norm[0].y = -0.5;
triangle.norm[0].z = 0;
triangle.norm[1].x = 0;
triangle.norm[1].y = 1;
triangle.norm[1].z = 0;
triangle.norm[2].x = 0.5;
triangle.norm[2].y = -0.5;
triangle.norm[2].z = 0;
triangle.norm[0].normalize();
triangle.norm[1].normalize();
triangle.norm[2].normalize();
// draw edges between vertexes
p.drawLine( triangle.pos[0].x, triangle.pos[0].y, triangle.pos[1].x, triangle.pos[1].y );
p.drawLine( triangle.pos[1].x, triangle.pos[1].y, triangle.pos[2].x, triangle.pos[2].y );
p.drawLine( triangle.pos[2].x, triangle.pos[2].y, triangle.pos[0].x, triangle.pos[0].y );
// draw vertex normals
p.drawLine( triangle.pos[0].x, triangle.pos[0].y, triangle.pos[0].x + triangle.norm[0].x * 50, triangle.pos[0].y + triangle.norm[0].y * 50 );
p.drawLine( triangle.pos[1].x, triangle.pos[1].y, triangle.pos[1].x + triangle.norm[1].x * 50, triangle.pos[1].y + triangle.norm[1].y * 50 );
p.drawLine( triangle.pos[2].x, triangle.pos[2].y, triangle.pos[2].x + triangle.norm[2].x * 50, triangle.pos[2].y + triangle.norm[2].y * 50 );
}