123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #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)
- : TexturModel(zApi, Standart3DTypes::texturModel)
- {}
- Framework::TexturModel::TexturModel(GraphicsApi* zApi, const char* uniqueName)
- {
- if (zApi->hasModel(uniqueName))
- model = zApi->getModel(uniqueName);
- else
- {
- model = zApi->createModel(uniqueName);
- Vertex3D* vertecies = new Vertex3D[4];
- for (int i = 0; i < 4; i++)
- vertecies[i].knochenId = 0;
- vertecies[0].pos = Vec3<float>(-50, 50, 0.f);
- vertecies[0].tPos = Vec2<float>(0.f, 0.f);
- vertecies[1].pos = Vec3<float>(50, 50, 0.f);
- vertecies[1].tPos = Vec2<float>(1.f, 0.f);
- vertecies[2].pos = Vec3<float>(-50, -50, 0.f);
- vertecies[2].tPos = Vec2<float>(0.f, 1.f);
- vertecies[3].pos = Vec3<float>(50, -50, 0.f);
- vertecies[3].tPos = Vec2<float>(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<float> gr)
- {
- gr /= 2;
- Vertex3D* vertecies = new Vertex3D[4];
- for (int i = 0; i < 4; i++)
- vertecies[i].knochenId = 0;
- vertecies[0].pos = Vec3<float>(-gr.x, gr.y, 0.f);
- vertecies[0].tPos = Vec2<float>(0.f, 0.f);
- vertecies[1].pos = Vec3<float>(gr.x, gr.y, 0.f);
- vertecies[1].tPos = Vec2<float>(1.f, 0.f);
- vertecies[2].pos = Vec3<float>(-gr.x, -gr.y, 0.f);
- vertecies[2].tPos = Vec2<float>(0.f, 1.f);
- vertecies[3].pos = Vec3<float>(gr.x, -gr.y, 0.f);
- vertecies[3].tPos = Vec2<float>(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<float>(-b, h, 0.f);
- vertecies[0].tPos = Vec2<float>(0.f, 0.f);
- vertecies[1].pos = Vec3<float>(b, h, 0.f);
- vertecies[1].tPos = Vec2<float>(1.f, 0.f);
- vertecies[2].pos = Vec3<float>(-b, -h, 0.f);
- vertecies[2].tPos = Vec2<float>(0.f, 1.f);
- vertecies[3].pos = Vec3<float>(b, -h, 0.f);
- vertecies[3].tPos = Vec2<float>(1.f, 1.f);
- model->setVertecies(vertecies, 4);
- }
|