/*
 * =====================================================================================
 *
 *       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 );

    
}




