#include "TexturModel.h" #include "DXBuffer.h" #include "Textur.h" #include "Globals.h" #include "TexturList.h" using namespace Framework; // Inhalt der TexturModel Klasse // Konstruktor TexturModel::TexturModel() : Model3D() { 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< float >( 0.f, 0.f ); vertecies[ 1 ].pos = Vec3( 50, 50, 0.f ); vertecies[ 1 ].tPos = Vec2< float >( 1.f, 0.f ); vertecies[ 2 ].pos = Vec3( -50, -50, 0.f ); vertecies[ 2 ].tPos = Vec2< float >( 0.f, 1.f ); vertecies[ 3 ].pos = Vec3( 50, -50, 0.f ); vertecies[ 3 ].tPos = Vec2< float >( 1.f, 1.f ); model = new Model3DData(); 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 ); textur = new Model3DTextur(); model->calculateNormals(); } // 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( -gr.x, gr.y, 0.f ); vertecies[ 0 ].tPos = Vec2< float >( 0.f, 0.f ); vertecies[ 1 ].pos = Vec3( gr.x, gr.y, 0.f ); vertecies[ 1 ].tPos = Vec2< float >( 1.f, 0.f ); vertecies[ 2 ].pos = Vec3( -gr.x, -gr.y, 0.f ); vertecies[ 2 ].tPos = Vec2< float >( 0.f, 1.f ); vertecies[ 3 ].pos = Vec3( 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( -b, h, 0.f ); vertecies[ 0 ].tPos = Vec2< float >( 0.f, 0.f ); vertecies[ 1 ].pos = Vec3( b, h, 0.f ); vertecies[ 1 ].tPos = Vec2< float >( 1.f, 0.f ); vertecies[ 2 ].pos = Vec3( -b, -h, 0.f ); vertecies[ 2 ].tPos = Vec2< float >( 0.f, 1.f ); vertecies[ 3 ].pos = Vec3( b, -h, 0.f ); vertecies[ 3 ].tPos = Vec2< float >( 1.f, 1.f ); model->setVertecies( vertecies, 4 ); }