#include "TexturModel.h" #include "DXBuffer.h" #include "Globals.h" #include "GraphicsApi.h" #include "Model3DList.h" #include "Textur.h" #include "TexturList.h" using namespace Framework; // Inhalt der TexturModel Klasse // Konstruktor TexturModel::TexturModel(GraphicsApi* zApi) : Model3D() { if (zApi->hasModel(Standart3DTypes::texturModel)) model = zApi->getModel(Standart3DTypes::texturModel); else { model = zApi->createModel(Standart3DTypes::texturModel); Vertex3D* vertecies = new Vertex3D[4]; for (int i = 0; i < 4; i++) vertecies[i].knochenId = 0; vertecies[0].pos = Vec3(-50, 50, 0.f); vertecies[0].tPos = Vec2(0.f, 0.f); vertecies[1].pos = Vec3(50, 50, 0.f); vertecies[1].tPos = Vec2(1.f, 0.f); vertecies[2].pos = Vec3(-50, -50, 0.f); vertecies[2].tPos = Vec2(0.f, 1.f); vertecies[3].pos = Vec3(50, -50, 0.f); vertecies[3].tPos = Vec2(1.f, 1.f); model->setVertecies(vertecies, 4); Polygon3D* p = new Polygon3D(); p->indexAnz = 6; p->indexList = new int[p->indexAnz]; p->indexList[0] = 0; p->indexList[1] = 3; p->indexList[2] = 2; p->indexList[3] = 0; p->indexList[4] = 1; p->indexList[5] = 3; model->addPolygon(p); model->calculateNormals(); } textur = new Model3DTextur(); } // Setzt die Textur die angezeigt werden soll // t: Die Textur void TexturModel::setTextur(Textur* t) { if (!t) return; this->textur->setPolygonTextur(0, t); rend = 1; } // Setzt die Größe, in der Die Textur angezeigt wird // gr: Ein Vektor, der für x und y die breite und höhe beinhaltet void TexturModel::setSize(Vec2 gr) { gr /= 2; Vertex3D* vertecies = new Vertex3D[4]; for (int i = 0; i < 4; i++) vertecies[i].knochenId = 0; vertecies[0].pos = Vec3(-gr.x, gr.y, 0.f); vertecies[0].tPos = Vec2(0.f, 0.f); vertecies[1].pos = Vec3(gr.x, gr.y, 0.f); vertecies[1].tPos = Vec2(1.f, 0.f); vertecies[2].pos = Vec3(-gr.x, -gr.y, 0.f); vertecies[2].tPos = Vec2(0.f, 1.f); vertecies[3].pos = Vec3(gr.x, -gr.y, 0.f); vertecies[3].tPos = Vec2(1.f, 1.f); model->setVertecies(vertecies, 4); } // Setzt die Größe, in der die Textur angezeigt wird // b: Die Breite, in der die Textur angezeigt wird // h: Die Höhe, in der die Textur angezeigt wird void TexturModel::setSize(float b, float h) { b /= 2; h /= 2; Vertex3D* vertecies = new Vertex3D[4]; for (int i = 0; i < 4; i++) vertecies[i].knochenId = 0; vertecies[0].pos = Vec3(-b, h, 0.f); vertecies[0].tPos = Vec2(0.f, 0.f); vertecies[1].pos = Vec3(b, h, 0.f); vertecies[1].tPos = Vec2(1.f, 0.f); vertecies[2].pos = Vec3(-b, -h, 0.f); vertecies[2].tPos = Vec2(0.f, 1.f); vertecies[3].pos = Vec3(b, -h, 0.f); vertecies[3].tPos = Vec2(1.f, 1.f); model->setVertecies(vertecies, 4); }