Browse Source

transparente polygone zu .m2 dateien hinzugefügt

Kolja Strohm 6 years ago
parent
commit
ec931c69e8

+ 9 - 7
KSGClient/NachLogin/Editor/Karte/Dateien/KEDModel2DEditor.cpp

@@ -35,9 +35,11 @@ void VertexData::nachOben( float num )
         vertex.y -= num;
 }
 
-void VertexData::saveTextur( Punkt tPos )
+void VertexData::saveTextur( Punkt tPos, Punkt tGr )
 {
-    textur = (Punkt)vertex - tPos;
+    textur = vertex - tPos;
+    textur.x /= tGr.x;
+    textur.y /= tGr.y;
 }
 
 void VertexData::select( Punkt p1, Punkt p2 )
@@ -77,7 +79,7 @@ Vec2< float > VertexData::getPos() const
     return vertex;
 }
 
-Punkt VertexData::getTPos() const
+Vertex VertexData::getTPos() const
 {
     return textur;
 }
@@ -148,10 +150,10 @@ void PolygonData::nachOben( float num )
         i->var->nachOben( num );
 }
 
-void PolygonData::saveTextur( Punkt tPos )
+void PolygonData::saveTextur( Punkt tPos, Punkt tGr )
 {
     for( auto *i = &vd->getArray(); i && i->set; i = i->next )
-        i->var->saveTextur( tPos );
+        i->var->saveTextur( tPos, tGr );
 }
 
 void PolygonData::select( Punkt p1, Punkt p2 )
@@ -205,7 +207,7 @@ void PolygonData::getM2( Polygon2D &pd, bool textur ) const
     if( !pd.vertex )
         pd.vertex = new Array< Vertex >();
     if( !pd.tKordinaten )
-        pd.tKordinaten = new Array< Punkt >();
+        pd.tKordinaten = new Array< Vertex >();
     for( int i = 0; i < anz; i++ )
     {
         pd.vertex->add( this->vd->z( i )->getPos() );
@@ -335,7 +337,7 @@ void Data::saveTextur()
     if( !rTextur )
         return;
     for( auto *i = &pd->getArray(); i && i->set; i = i->next )
-        i->var->saveTextur( tPos );
+        i->var->saveTextur( tPos, textur->getSize() );
 }
 
 void Data::setTextur( Bild *t )

+ 4 - 4
KSGClient/NachLogin/Editor/Karte/Dateien/KEDModel2DEditor.h

@@ -15,7 +15,7 @@ namespace Model2DEditor
     {
     private:
         Vec2< float > vertex;
-        Punkt textur;
+        Vertex textur;
         bool selected;
         bool sichtbar;
         int ref;
@@ -26,7 +26,7 @@ namespace Model2DEditor
         // nicht constant
         void nachLinks( float num );
         void nachOben( float num );
-        void saveTextur( Punkt tPos );
+        void saveTextur( Punkt tPos, Punkt tGr );
         void select( Punkt p1, Punkt p2 );
         void deSelect();
         void setAuswahl( bool ausw );
@@ -35,7 +35,7 @@ namespace Model2DEditor
         bool istSichtbar() const;
         bool istAusgewählt() const;
         Vec2< float > getPos() const;
-        Punkt getTPos() const;
+        Vertex getTPos() const;
         // Reference Counting
         VertexData *getThis();
         VertexData *release();
@@ -59,7 +59,7 @@ namespace Model2DEditor
         void removeVertex( int num );
         void nachLinks( float num );
         void nachOben( float num );
-        void saveTextur( Punkt tPos );
+        void saveTextur( Punkt tPos, Punkt tGr );
         void select( Punkt p1, Punkt p2 );
         void deSelect();
         void setSichtbar( bool s );

+ 3 - 2
KSGClient/Netzwerk/Klients/EditorK.cpp

@@ -2429,7 +2429,8 @@ Model2DData *EditorKlient::deModelLaden( Text *zDatei, Text *zModel, FBalken *zF
                         {
                             Polygon2D p;
                             p.vertex = new Array< Vertex >();
-                            p.tKordinaten = new Array< Punkt >();
+                            p.tKordinaten = new Array< Vertex >();
+                            klient->getNachrichtEncrypted( (char*)&p.transparent, 1 );
                             char nLän = 0;
                             klient->getNachrichtEncrypted( &nLän, 1 );
                             char *txt = new char[ nLän + 1 ];
@@ -2445,7 +2446,7 @@ Model2DData *EditorKlient::deModelLaden( Text *zDatei, Text *zModel, FBalken *zF
                                 Vertex v;
                                 klient->getNachrichtEncrypted( (char*)&v.x, 4 );
                                 klient->getNachrichtEncrypted( (char*)&v.y, 4 );
-                                Punkt t;
+                                Vertex t;
                                 klient->getNachrichtEncrypted( (char*)&t.x, 4 );
                                 klient->getNachrichtEncrypted( (char*)&t.y, 4 );
                                 p.vertex->add( v );