|
@@ -40,6 +40,11 @@ void VertexData::setTextur( Vertex tp )
|
|
|
textur = tp;
|
|
|
}
|
|
|
|
|
|
+void VertexData::setPosition( Vertex p )
|
|
|
+{
|
|
|
+ vertex = p;
|
|
|
+}
|
|
|
+
|
|
|
void VertexData::saveTextur( Punkt tPos, Punkt tGr )
|
|
|
{
|
|
|
textur = vertex - tPos;
|
|
@@ -443,15 +448,29 @@ EditorListe::EditorListe( Schrift *zSchrift )
|
|
|
scroll = new VScrollBar();
|
|
|
schrift = zSchrift->getThis();
|
|
|
pName = initTextFeld( 0, 0, 70, 20, schrift, TextFeld::Style::TextFeld, "" );
|
|
|
- texturKoordF = initFenster( 10, 10, 150, 80, zSchrift, ( Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund ) & ~Fenster::Style::Sichtbar, "Texturkoordinaten" );
|
|
|
- texturKoordF->setKBgFarbe( 0xFF000000 );
|
|
|
- texturKoordF->setTBgFarbe( 0xFF000000 );
|
|
|
- texturKoordF->setClosingMe( _closeFensterME );
|
|
|
- tkxT = initTextFeld( 10, 10, 30, 20, zSchrift, TextFeld::Style::Text, "x:" );
|
|
|
- tkyT = initTextFeld( 10, 40, 30, 20, zSchrift, TextFeld::Style::Text, "y:" );
|
|
|
- tkx = initTextFeld( 40, 10, 90, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
- tky = initTextFeld( 40, 40, 90, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
+ koordF = initFenster( 10, 10, 150, 140, zSchrift, ( Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund ) & ~Fenster::Style::Sichtbar, "Koordinaten" );
|
|
|
+ koordF->setKBgFarbe( 0xFF000000 );
|
|
|
+ koordF->setTBgFarbe( 0xFF000000 );
|
|
|
+ koordF->setClosingMe( _closeFensterME );
|
|
|
+ kxT = initTextFeld( 10, 10, 30, 20, zSchrift, TextFeld::Style::Text, "x:" );
|
|
|
+ kyT = initTextFeld( 10, 40, 30, 20, zSchrift, TextFeld::Style::Text, "y:" );
|
|
|
+ kx = initTextFeld( 40, 10, 90, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
+ ky = initTextFeld( 40, 40, 90, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
+ tkxT = initTextFeld( 10, 70, 30, 20, zSchrift, TextFeld::Style::Text, "tx:" );
|
|
|
+ tkyT = initTextFeld( 10, 100, 30, 20, zSchrift, TextFeld::Style::Text, "ty:" );
|
|
|
+ tkx = initTextFeld( 40, 70, 90, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
+ tky = initTextFeld( 40, 100, 90, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
int *polIP = &polI, *verIP = &verI;
|
|
|
+ TextFeld *kxTmp = kx;
|
|
|
+ TextFeld *kyTmp = ky;
|
|
|
+ auto saveK = [ polIP, verIP, kxTmp, kyTmp ]( void *p, void *o, TastaturEreignis te )
|
|
|
+ {
|
|
|
+ Data *data = (Data*)p;
|
|
|
+ data->zPolygon( *polIP )->zVertex( *verIP )->setPosition( Vertex( (float)(double)*kxTmp->zText(), (float)(double)*kyTmp->zText() ) );
|
|
|
+ return 1;
|
|
|
+ };
|
|
|
+ kx->setNTastaturEreignis( saveK );
|
|
|
+ ky->setNTastaturEreignis( saveK );
|
|
|
TextFeld *tkxTmp = tkx;
|
|
|
TextFeld *tkyTmp = tky;
|
|
|
auto saveTK = [ polIP, verIP, tkxTmp, tkyTmp ]( void *p, void *o, TastaturEreignis te )
|
|
@@ -462,10 +481,14 @@ EditorListe::EditorListe( Schrift *zSchrift )
|
|
|
};
|
|
|
tkx->setNTastaturEreignis( saveTK );
|
|
|
tky->setNTastaturEreignis( saveTK );
|
|
|
- texturKoordF->addMember( tkxT );
|
|
|
- texturKoordF->addMember( tkyT );
|
|
|
- texturKoordF->addMember( tkx );
|
|
|
- texturKoordF->addMember( tky );
|
|
|
+ koordF->addMember( kxT );
|
|
|
+ koordF->addMember( kyT );
|
|
|
+ koordF->addMember( kx );
|
|
|
+ koordF->addMember( ky );
|
|
|
+ koordF->addMember( tkxT );
|
|
|
+ koordF->addMember( tkyT );
|
|
|
+ koordF->addMember( tkx );
|
|
|
+ koordF->addMember( tky );
|
|
|
polI = 0;
|
|
|
verI = 0;
|
|
|
data = 0;
|
|
@@ -481,7 +504,11 @@ EditorListe::~EditorListe()
|
|
|
if( data )
|
|
|
data->release();
|
|
|
schrift->release();
|
|
|
- texturKoordF->release();
|
|
|
+ koordF->release();
|
|
|
+ kxT->release();
|
|
|
+ kyT->release();
|
|
|
+ kx->release();
|
|
|
+ ky->release();
|
|
|
tkxT->release();
|
|
|
tkyT->release();
|
|
|
tkx->release();
|
|
@@ -498,7 +525,7 @@ void EditorListe::setDataZ( Data *d )
|
|
|
|
|
|
void EditorListe::doMausEreignis( MausEreignis &me )
|
|
|
{
|
|
|
- texturKoordF->doMausEreignis( me );
|
|
|
+ koordF->doMausEreignis( me );
|
|
|
me.mx -= ram->getX();
|
|
|
me.my -= ram->getY();
|
|
|
if( me.mx < 0 || me.my < 0 || me.mx > ram->getBreite() || me.my > ram->getHeight() )
|
|
@@ -527,7 +554,7 @@ void EditorListe::doMausEreignis( MausEreignis &me )
|
|
|
else if( me.mx > 115 && me.my > y + 1 && me.mx < 132 && me.my < y + 19 )
|
|
|
{ // Löschen
|
|
|
if( polI == i )
|
|
|
- texturKoordF->removeStyle( Fenster::Style::Sichtbar );
|
|
|
+ koordF->removeStyle( Fenster::Style::Sichtbar );
|
|
|
data->removePolygon( i );
|
|
|
rend = 1;
|
|
|
break;
|
|
@@ -555,7 +582,7 @@ void EditorListe::doMausEreignis( MausEreignis &me )
|
|
|
if( me.mx > 115 && me.my > y + 1 && me.mx < 132 && me.my < y + 19 )
|
|
|
{ // Löschen
|
|
|
if( polI == i && verI == j )
|
|
|
- texturKoordF->removeStyle( Fenster::Style::Sichtbar );
|
|
|
+ koordF->removeStyle( Fenster::Style::Sichtbar );
|
|
|
pd->removeVertex( j );
|
|
|
rend = 1;
|
|
|
}
|
|
@@ -565,14 +592,14 @@ void EditorListe::doMausEreignis( MausEreignis &me )
|
|
|
rend = 1;
|
|
|
}
|
|
|
else if( me.mx > 5 && me.my > y + 5 && me.mx < 15 && me.my < y + 15 )
|
|
|
- { // Sichtbar und Unsichtbar
|
|
|
+ { // Koordinaten fenster sichtbar machen
|
|
|
polI = i;
|
|
|
verI = j;
|
|
|
tkx->setNTastaturEreignisParameter( data );
|
|
|
tky->setNTastaturEreignisParameter( data );
|
|
|
tkx->setText( Text() += pd->zVertex( j )->getTPos().x );
|
|
|
tky->setText( Text() += pd->zVertex( j )->getTPos().y );
|
|
|
- texturKoordF->addStyle( Fenster::Style::Sichtbar );
|
|
|
+ koordF->addStyle( Fenster::Style::Sichtbar );
|
|
|
}
|
|
|
else if( me.my > y && me.my < y + 20 && me.mx > 0 && me.mx < 133 )
|
|
|
{ // Auswählen und Abwählen
|
|
@@ -591,14 +618,14 @@ void EditorListe::doMausEreignis( MausEreignis &me )
|
|
|
|
|
|
void EditorListe::doTastaturEreignis( TastaturEreignis &te )
|
|
|
{
|
|
|
- texturKoordF->doTastaturEreignis( te );
|
|
|
+ koordF->doTastaturEreignis( te );
|
|
|
if( data && data->getSelectedPolygon() >= 0 )
|
|
|
pName->doTastaturEreignis( te );
|
|
|
}
|
|
|
|
|
|
bool EditorListe::tick( double zeit )
|
|
|
{
|
|
|
- rend |= texturKoordF->tick( zeit );
|
|
|
+ rend |= koordF->tick( zeit );
|
|
|
if( data && data->getSelectedPolygon() >= 0 )
|
|
|
rend |= pName->tick( zeit );
|
|
|
bool ret = rend;
|
|
@@ -674,7 +701,11 @@ void EditorListe::render( Bild &zRObj )
|
|
|
schrift->setDrawPosition( 20, y + 4 );
|
|
|
schrift->renderText( &name, zRObj, 0xFFFFFFFF );
|
|
|
zRObj.drawLinieH( 5, y + 5, 10, 0xFFFFFFFF );
|
|
|
+ zRObj.drawLinieH( 5, y + 10, 10, 0xFFFFFFFF );
|
|
|
+ zRObj.drawLinieH( 5, y + 15, 10, 0xFFFFFFFF );
|
|
|
+ zRObj.drawLinieV( 5, y + 5, 10, 0xFFFFFFFF );
|
|
|
zRObj.drawLinieV( 10, y + 5, 10, 0xFFFFFFFF );
|
|
|
+ zRObj.drawLinieV( 15, y + 5, 10, 0xFFFFFFFF );
|
|
|
zRObj.drawLinie( Punkt( 115, y + 1 ), Punkt( 132, y + 18 ), 0xFFFF0000 );
|
|
|
zRObj.drawLinie( Punkt( 132, y + 1 ), Punkt( 115, y + 18 ), 0xFFFF0000 );
|
|
|
if( pd->zVertex( j )->istSichtbar() )
|
|
@@ -698,7 +729,7 @@ void EditorListe::render( Bild &zRObj )
|
|
|
schrift->unlock();
|
|
|
scroll->update( maxH, ram->getHeight() - 2 );
|
|
|
zRObj.releaseDrawOptions();
|
|
|
- texturKoordF->render( zRObj );
|
|
|
+ koordF->render( zRObj );
|
|
|
}
|
|
|
|
|
|
// Reference Counting
|