1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #pragma once
- #include "Array.h"
- #include "Mat3.h"
- #include "Punkt.h"
- namespace Framework
- {
- typedef Vec2< float > Vertex;
- class Bild;
- template<typename T>
- struct Rect
- {
- Vec2< T > topLeft;
- Vec2< T > bottomRight;
- };
- class Object2D
- {
- protected:
- Vertex position;
- Vertex speed;
- float rSpeed;
- float rotation;
- float size;
- int ref;
- public:
- __declspec( dllexport ) Object2D();
- virtual __declspec( dllexport ) ~Object2D();
- __declspec( dllexport ) void explosion( Vertex worldPos, float intensity );
- __declspec( dllexport ) virtual void impuls( Vertex start, Vertex speed );
- __declspec( dllexport ) void setPosition( Vertex pos );
- __declspec( dllexport ) void setPosition( float x, float y );
- // Setzt die Drehung des Models gegen den Uhrzeigersinn
- // drehung: Der winkel in Bogenmas
- __declspec( dllexport ) void setDrehung( float drehung );
- // Fügt zum aktuellen Drehungswinkel etwas hinzu
- // drehung: Der Winkel in Bogenmas, der hinzugefügt werden soll
- __declspec( dllexport ) void addDrehung( float drehung );
- // Setzt die Skallierung des Modells
- // size: Der Faktor, mit dem Skalliert wird
- __declspec( dllexport ) void setSize( float size );
- // Addiert zur Skallierung einen bestimmten Wert hinzu
- // size: Der Wert, der zur skallierung hinzugefügt werden soll
- __declspec( dllexport ) void addSize( float size );
- __declspec( dllexport ) virtual bool tick( double zeit );
- virtual void render( Mat3< float > &kamMat, Bild &zRObj ) = 0;
- __declspec( dllexport ) Mat3< float > getObjectMatrix() const;
- // gibt die Position des Models zurück
- __declspec( dllexport ) Vertex getPosition() const;
- // gibt die Drehung des Models zurück
- __declspec( dllexport ) float getDrehung() const;
- // gibt den Skallierungs Faktor zurück
- __declspec( dllexport ) float getSize() const;
- __declspec( dllexport ) virtual Rect< float > getBoundingBox() const = 0;
- __declspec( dllexport ) Object2D *getThis();
- __declspec( dllexport ) Object2D *release();
- };
- class Welt2D
- {
- private:
- RCArray< Object2D > *objects;
- Punkt topLeft;
- Punkt rightBottom;
- int ref;
- public:
- __declspec( dllexport ) Welt2D();
- __declspec( dllexport ) ~Welt2D();
- __declspec( dllexport ) void addObject( Object2D *obj );
- __declspec( dllexport ) void explosion( Vertex worldPos, float intensity, float maxRad );
- __declspec( dllexport ) bool tick( double zeit );
- __declspec( dllexport ) void render( Mat3< float > &kamMat, Punkt size, Bild &zRObj );
- __declspec( dllexport ) Welt2D *getThis();
- __declspec( dllexport ) Welt2D *release();
- };
- }
|