#include "voxelview.h"
#include <QPainter>
#include <QPixmap>


// Software rendered voxel view
VoxelView::VoxelView( QWidget *parent, const char *name )
    : QWidget( parent, name ), voxelData(0), xAxisAngle(90), yAxisAngle(180), zAxisAngle(90)
{
    setBackgroundMode(Qt::PaletteBase);
}


void VoxelView::setVoxelModel( VoxelData *data )
{
    voxelData = data;
    repaint(true);
}


void VoxelView::setViewAngles( int x, int y, int z )
{
    xAxisAngle = x + 90;
    yAxisAngle = y + 180;
    zAxisAngle = z + 90;
    repaint(false);
}


void VoxelView::paintEvent( QPaintEvent * )
{
    QPainter painter(this);

    if (!voxelData)
        return;

    QPixmap bigImg = voxelData->render(2, xAxisAngle, yAxisAngle, zAxisAngle);
    painter.drawPixmap(0, 0, bigImg.scaled(280, 280, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));

    QPixmap smallImg = voxelData->render(1, xAxisAngle, yAxisAngle, zAxisAngle);
    painter.drawPixmap(2, 2, smallImg);
}

