TexturModel.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include "TexturModel.h"
  2. #include "DXBuffer.h"
  3. #include "Textur.h"
  4. #include "Globals.h"
  5. #include "TexturList.h"
  6. using namespace Framework;
  7. // Inhalt der TexturModel Klasse
  8. // Konstruktor
  9. TexturModel::TexturModel()
  10. : Model3D()
  11. {
  12. Vertex3D *vertecies = new Vertex3D[ 4 ];
  13. for( int i = 0; i < 4; i++ )
  14. vertecies[ i ].knochenId = 0;
  15. vertecies[ 0 ].pos = Vec3<float >( -50, 50, 0.f );
  16. vertecies[ 0 ].tPos = Vec2< float >( 0.f, 0.f );
  17. vertecies[ 1 ].pos = Vec3<float >( 50, 50, 0.f );
  18. vertecies[ 1 ].tPos = Vec2< float >( 1.f, 0.f );
  19. vertecies[ 2 ].pos = Vec3<float >( -50, -50, 0.f );
  20. vertecies[ 2 ].tPos = Vec2< float >( 0.f, 1.f );
  21. vertecies[ 3 ].pos = Vec3<float >( 50, -50, 0.f );
  22. vertecies[ 3 ].tPos = Vec2< float >( 1.f, 1.f );
  23. model = new Model3DData();
  24. model->setVertecies( vertecies, 4 );
  25. Polygon3D *p = new Polygon3D();
  26. p->indexAnz = 6;
  27. p->indexList = new int[ p->indexAnz ];
  28. p->indexList[ 0 ] = 0;
  29. p->indexList[ 1 ] = 3;
  30. p->indexList[ 2 ] = 2;
  31. p->indexList[ 3 ] = 0;
  32. p->indexList[ 4 ] = 1;
  33. p->indexList[ 5 ] = 3;
  34. model->addPolygon( p );
  35. textur = new Model3DTextur();
  36. model->calculateNormals();
  37. }
  38. // Setzt die Textur die angezeigt werden soll
  39. // t: Die Textur
  40. void TexturModel::setTextur( Textur *t )
  41. {
  42. if( !t )
  43. return;
  44. this->textur->setPolygonTextur( 0, t );
  45. rend = 1;
  46. }
  47. // Setzt die Größe, in der Die Textur angezeigt wird
  48. // gr: Ein Vektor, der für x und y die breite und höhe beinhaltet
  49. void TexturModel::setSize( Vec2< float > gr )
  50. {
  51. gr /= 2;
  52. Vertex3D *vertecies = new Vertex3D[ 4 ];
  53. for( int i = 0; i < 4; i++ )
  54. vertecies[ i ].knochenId = 0;
  55. vertecies[ 0 ].pos = Vec3<float >( -gr.x, gr.y, 0.f );
  56. vertecies[ 0 ].tPos = Vec2< float >( 0.f, 0.f );
  57. vertecies[ 1 ].pos = Vec3<float >( gr.x, gr.y, 0.f );
  58. vertecies[ 1 ].tPos = Vec2< float >( 1.f, 0.f );
  59. vertecies[ 2 ].pos = Vec3<float >( -gr.x, -gr.y, 0.f );
  60. vertecies[ 2 ].tPos = Vec2< float >( 0.f, 1.f );
  61. vertecies[ 3 ].pos = Vec3<float >( gr.x, -gr.y, 0.f );
  62. vertecies[ 3 ].tPos = Vec2< float >( 1.f, 1.f );
  63. model->setVertecies( vertecies, 4 );
  64. }
  65. // Setzt die Größe, in der die Textur angezeigt wird
  66. // b: Die Breite, in der die Textur angezeigt wird
  67. // h: Die Höhe, in der die Textur angezeigt wird
  68. void TexturModel::setSize( float b, float h )
  69. {
  70. b /= 2;
  71. h /= 2;
  72. Vertex3D *vertecies = new Vertex3D[ 4 ];
  73. for( int i = 0; i < 4; i++ )
  74. vertecies[ i ].knochenId = 0;
  75. vertecies[ 0 ].pos = Vec3<float >( -b, h, 0.f );
  76. vertecies[ 0 ].tPos = Vec2< float >( 0.f, 0.f );
  77. vertecies[ 1 ].pos = Vec3<float >( b, h, 0.f );
  78. vertecies[ 1 ].tPos = Vec2< float >( 1.f, 0.f );
  79. vertecies[ 2 ].pos = Vec3<float >( -b, -h, 0.f );
  80. vertecies[ 2 ].tPos = Vec2< float >( 0.f, 1.f );
  81. vertecies[ 3 ].pos = Vec3<float >( b, -h, 0.f );
  82. vertecies[ 3 ].tPos = Vec2< float >( 1.f, 1.f );
  83. model->setVertecies( vertecies, 4 );
  84. }