123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- #pragma once
- #include <Array.h>
- #include <Bild.h>
- #include <DateiDialog.h>
- #include <Fenster.h>
- #include <Knopf.h>
- #include <Model2D.h>
- #include <Punkt.h>
- #include <Rahmen.h>
- using namespace Framework;
- namespace Model2DEditor
- {
- class VertexData : public virtual ReferenceCounter
- {
- private:
- Vec2<float> vertex;
- Vertex textur;
- bool selected;
- bool sichtbar;
- public:
- // Konstruktor
- VertexData(Vec2<float> v, Vertex t);
- // nicht constant
- void nachLinks(float num);
- void nachOben(float num);
- void setPosition(Vertex p);
- 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;
- };
- class PolygonData : public virtual ReferenceCounter
- {
- private:
- RCArray<VertexData>* vd;
- Text name;
- bool transparent;
- bool sichtbar;
- public:
- // Konstruktor
- PolygonData(const 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;
- };
- class Data : public virtual ReferenceCounter
- {
- private:
- RCArray<PolygonData>* pd;
- Bild* textur;
- Punkt tPos;
- bool rTextur;
- int sp;
- 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;
- };
- class EditorListe : public Zeichnung
- {
- private:
- LRahmen* ram;
- VScrollBar* scroll;
- Data* data;
- Array<bool> ausgeklappt;
- TextRenderer* tr;
- TextFeld* pName;
- Fenster* koordF;
- TextFeld* kxT;
- TextFeld* kyT;
- TextFeld* kx;
- TextFeld* ky;
- TextFeld* tkxT;
- TextFeld* tkyT;
- TextFeld* tkx;
- TextFeld* tky;
- int polI;
- int verI;
- public:
- // Konstruktor
- EditorListe();
- // Destruktor
- ~EditorListe();
- // nicht constant
- void setDataZ(Data* d);
- void doPublicMausEreignis(MausEreignis& me) override;
- void doTastaturEreignis(TastaturEreignis& te) override;
- bool tick(double zeit) override;
- void render(Bild& zRObj) override;
- };
- class Editor2D : public Zeichnung
- {
- private:
- Punkt pos;
- Punkt offs;
- Data* data;
- LRahmen* ram;
- LRahmen* select;
- TextRenderer* tr;
- Punkt mausPos;
- Vertex addV;
- bool mausIn;
- float größe;
- public:
- // Konstruktor
- Editor2D();
- // Destruktor
- ~Editor2D();
- // nicht constant
- void setDataZ(Data* d);
- void doPublicMausEreignis(MausEreignis& me) override;
- void doTastaturEreignis(TastaturEreignis& te) override;
- bool tick(double zeit) override;
- void render(Bild& zRObj) override;
- };
- 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;
- public:
- // Konstruktor
- GUI();
- // Destruktor
- ~GUI();
- // nicht constant
- void setSichtbar(bool s);
- void setModel(Model2DData* data);
- void doPublicMausEreignis(MausEreignis& me) override;
- void doTastaturEreignis(TastaturEreignis& te) override;
- bool tick(double zeit) override;
- void render(Bild& zRObj) override;
- int getAktion();
- // const
- Model2DData* getM2Data() const;
- };
- } // namespace Model2DEditor
|