#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);
}