123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- #pragma once
- #include <Knopf.h>
- #include <Array.h>
- #include <Punkt.h>
- #include <Bild.h>
- #include <Model2D.h>
- #include <DateiDialog.h>
- #include <Fenster.h>
- using namespace Framework;
- namespace Model2DEditor
- {
- class VertexData
- {
- private:
- Vec2< float > vertex;
- Vertex textur;
- bool selected;
- bool sichtbar;
- int ref;
- public:
- // Konstruktor
- VertexData( Vec2< float > v, Vertex t );
- // nicht constant
- void nachLinks( float num );
- void nachOben( float num );
- void setTextur( Vertex tp );
- void saveTextur( Punkt tPos, Punkt tGr );
- void select( Punkt p1, Punkt p2 );
- void deSelect();
- void setAuswahl( bool ausw );
- void setSichtbar( bool s );
- // constant
- bool istSichtbar() const;
- bool istAusgewählt() const;
- Vec2< float > getPos() const;
- Vertex getTPos() const;
- // Reference Counting
- VertexData *getThis();
- VertexData *release();
- };
- class PolygonData
- {
- private:
- RCArray< VertexData > *vd;
- Text name;
- bool transparent;
- bool sichtbar;
- int ref;
- public:
- // Konstruktor
- PolygonData( Polygon2D &pg );
- // Destruktor
- ~PolygonData();
- // nicht constant
- void addVertex( Vec2< float >v, Vertex t );
- void removeVertex( int num );
- void nachLinks( float num );
- void nachOben( float num );
- void saveTextur( Punkt tPos, Punkt tGr );
- void select( Punkt p1, Punkt p2 );
- void deSelect();
- void setSichtbar( bool s );
- void setTransparent( bool t );
- void setName( const char *name );
- // constant
- const char *getName() const;
- bool istSichtbar() const;
- VertexData *zVertex( int num ) const;
- int getVertexAnzahl() const;
- void getM2( Polygon2D &pd, bool textur ) const;
- bool istTransparent() const;
- // Reference Counting
- PolygonData *getThis();
- PolygonData *release();
- };
- class Data
- {
- private:
- RCArray< PolygonData > *pd;
- Bild *textur;
- Punkt tPos;
- bool rTextur;
- int sp;
- int ref;
- public:
- // Konstruktor
- Data( Model2DData *mdl );
- // Destruktor
- ~Data();
- // nicht constant
- void addPolygon();
- void removePolygon( int num );
- void selectPolygon( int num );
- void nachLinks( float num );
- void nachOben( float num );
- void tNachLinks( int num );
- void tNachOben( int num );
- void setRTextur( bool rt );
- void saveTextur();
- void setTextur( Bild *t );
- void select( Punkt p1, Punkt p2 );
- void deSelect();
- // constant
- PolygonData *zPolygon( int num ) const;
- int getPolygonAnzahl() const;
- int getSelectedPolygon() const;
- Model2DData *getM2() const;
- Bild *zTextur() const;
- Punkt getTPos() const;
- // Reference Counting
- Data *getThis();
- Data *release();
- };
- class EditorListe : public Zeichnung
- {
- private:
- LRahmen *ram;
- VScrollBar *scroll;
- Data *data;
- Array< bool > ausgeklappt;
- Schrift *schrift;
- TextFeld *pName;
- Fenster *texturKoordF;
- TextFeld *tkxT;
- TextFeld *tkyT;
- TextFeld *tkx;
- TextFeld *tky;
- int polI;
- int verI;
- int ref;
- public:
- // Konstruktor
- EditorListe( Schrift *zSchrift );
- // Destruktor
- ~EditorListe();
- // nicht constant
- void setDataZ( Data *d );
- void doMausEreignis( MausEreignis &me ) override;
- void doTastaturEreignis( TastaturEreignis &te ) override;
- bool tick( double zeit ) override;
- void render( Bild &zRObj ) override;
- // Reference Counting
- EditorListe *getThis();
- EditorListe *release();
- };
-
- class Editor2D : public Zeichnung
- {
- private:
- Punkt pos;
- Punkt offs;
- Data *data;
- LRahmen *ram;
- LRahmen *select;
- Schrift *schrift;
- Punkt mausPos;
- Vertex addV;
- bool mausIn;
- float größe;
- int ref;
- public:
- // Konstruktor
- Editor2D( Schrift *zSchrift );
- // Destruktor
- ~Editor2D();
- // nicht constant
- void setDataZ( Data *d );
- void doMausEreignis( MausEreignis &me ) override;
- void doTastaturEreignis( TastaturEreignis &te ) override;
- bool tick( double zeit ) override;
- void render( Bild &zRObj ) override;
- // Reference Counting
- Editor2D *getThis();
- Editor2D *release();
- };
- class GUI : public Zeichnung
- {
- private:
- Knopf *speichern;
- Knopf *abbrechen;
- Editor2D *editor;
- EditorListe *liste;
- KontrollKnopf *textur;
- Knopf *texturLaden;
- Knopf *texturVerknüpfen;
- DateiDialogTh *importDialog;
- Data *data;
- bool sichtbar;
- unsigned char alpha;
- int aktion;
- int ref;
- public:
- // Konstruktor
- GUI( Schrift *zSchrifto );
- // Destruktor
- ~GUI();
- // nicht constant
- void setSichtbar( bool s );
- void setModel( Model2DData *data );
- void doMausEreignis( MausEreignis &me ) override;
- void doTastaturEreignis( TastaturEreignis &te ) override;
- bool tick( double zeit ) override;
- void render( Bild &zRObj ) override;
- int getAktion();
- // const
- Model2DData *getM2Data() const;
- // Reference Counting
- GUI *getThis();
- GUI *release();
- };
- }
|