computer-graphics-0/programs/lab3/src/main.cpp

59 lines
1.9 KiB
C++

#include <cmath>
#include <array>
#include <iostream>
#include <QApplication>
#include <QMainWindow>
#include <QTimer>
#include <bgtu/computer_graphics_lab_work/renderer_api/color.hpp>
#include <bgtu/computer_graphics_lab_work/utilities/default_renderer_linear.hpp>
#include <bgtu/computer_graphics_lab_work/utilities/voxel_painter_exporter_to_packed_array.hpp>
#include <bgtu/computer_graphics_lab_work/utilities/matrix.hpp>
#include <bgtu/computer_graphics_lab_work/qt_utilities/separate_threaded_renderer.hpp>
#include <bgtu/computer_graphics_lab_work/qt_utilities/renderer_widget.hpp>
#include <bgtu/computer_graphics_lab_work/qt_utilities/keyboard_catcher_widget.hpp>
#include "sprite_data.hpp"
#include "variant1.hpp"
namespace BGTU::ComputerGraphicsLabWork::Impl {
int main(int argc, char **argv) {
#if 1
QApplication qApplication{argc, argv};
SpriteData::Provider sprites_data{0.1};
QMainWindow w{};
QtUtilities::KeyboardCatcherWidget kbd{&w};
QtUtilities::SeparateThreadedDefaultRendererLinear<SpriteData> renderer{};
renderer.set_sprite_data_provider(&sprites_data);
renderer.set_sprites(sprites, sprites_count);
renderer.set_background(BGTU::ComputerGraphicsLabWork::RendererApi::Color{0, 0, 0});
QtUtilities::RendererWidget<SpriteData> canvas{&renderer, &kbd};
QObject::connect(&canvas, &QtUtilities::_RendererWidget_SignalSlots::resized, &sprites_data, &SpriteData::Provider::set_frame_size);
w.setCentralWidget(&canvas);
w.show();
QApplication::exec();
return 0;
#else
Utilities::Matrix3d x = Utilities::Matrix3d::shift(0, 9);
Utilities::Matrix3d y = Utilities::Matrix3d::rotate(3.14);
RendererApi::PointF<2> a{0, 1};
RendererApi::PointF<2> b = x * a;
RendererApi::PointF<2> c = x * y * a;
RendererApi::PointF<2> d = y * x * a;
return 0;
#endif
}
}
int main(int argc, char **argv) {
return BGTU::ComputerGraphicsLabWork::Impl::main(argc, argv);
}