|
@@ -102,6 +102,7 @@ VertexData *VertexData::release()
|
|
// Konstruktor
|
|
// Konstruktor
|
|
PolygonData::PolygonData( Polygon2D &pg )
|
|
PolygonData::PolygonData( Polygon2D &pg )
|
|
{
|
|
{
|
|
|
|
+ name = pg.name->getText();
|
|
vd = new RCArray< VertexData >();
|
|
vd = new RCArray< VertexData >();
|
|
sichtbar = 1;
|
|
sichtbar = 1;
|
|
ref = 1;
|
|
ref = 1;
|
|
@@ -170,7 +171,17 @@ void PolygonData::setSichtbar( bool s )
|
|
sichtbar = s;
|
|
sichtbar = s;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void PolygonData::setName( const char *name )
|
|
|
|
+{
|
|
|
|
+ this->name = name;
|
|
|
|
+}
|
|
|
|
+
|
|
// constant
|
|
// constant
|
|
|
|
+const char *PolygonData::getName() const
|
|
|
|
+{
|
|
|
|
+ return name;
|
|
|
|
+}
|
|
|
|
+
|
|
bool PolygonData::istSichtbar() const
|
|
bool PolygonData::istSichtbar() const
|
|
{
|
|
{
|
|
return sichtbar;
|
|
return sichtbar;
|
|
@@ -189,6 +200,8 @@ int PolygonData::getVertexAnzahl() const
|
|
void PolygonData::getM2( Polygon2D &pd, bool textur ) const
|
|
void PolygonData::getM2( Polygon2D &pd, bool textur ) const
|
|
{
|
|
{
|
|
int anz = vd->getEintragAnzahl();
|
|
int anz = vd->getEintragAnzahl();
|
|
|
|
+ if( !pd.name )
|
|
|
|
+ pd.name = new Text( name );
|
|
if( !pd.vertex )
|
|
if( !pd.vertex )
|
|
pd.vertex = new Array< Vertex >();
|
|
pd.vertex = new Array< Vertex >();
|
|
if( !pd.tKordinaten )
|
|
if( !pd.tKordinaten )
|
|
@@ -262,9 +275,11 @@ Data::~Data()
|
|
void Data::addPolygon()
|
|
void Data::addPolygon()
|
|
{
|
|
{
|
|
Polygon2D p;
|
|
Polygon2D p;
|
|
|
|
+ p.name = new Text();
|
|
p.vertex = new Array< Vertex >();
|
|
p.vertex = new Array< Vertex >();
|
|
pd->add( new PolygonData( p ) );
|
|
pd->add( new PolygonData( p ) );
|
|
p.vertex->release();
|
|
p.vertex->release();
|
|
|
|
+ p.name->release();
|
|
}
|
|
}
|
|
|
|
|
|
void Data::removePolygon( int num )
|
|
void Data::removePolygon( int num )
|
|
@@ -364,7 +379,7 @@ Model2DData *Data::getM2() const
|
|
Array< Polygon2D > *polygons = new Array< Polygon2D >();
|
|
Array< Polygon2D > *polygons = new Array< Polygon2D >();
|
|
for( int i = 0; i < anz; i++ )
|
|
for( int i = 0; i < anz; i++ )
|
|
{
|
|
{
|
|
- Polygon2D pd = { 0, 0 };
|
|
|
|
|
|
+ Polygon2D pd = { 0, 0, 0 };
|
|
this->pd->z( i )->getM2( pd, rTextur );
|
|
this->pd->z( i )->getM2( pd, rTextur );
|
|
polygons->add( pd );
|
|
polygons->add( pd );
|
|
}
|
|
}
|
|
@@ -410,6 +425,7 @@ EditorListe::EditorListe( Schrift *zSchrift )
|
|
ram->setPosition( 720, 10 );
|
|
ram->setPosition( 720, 10 );
|
|
scroll = new VScrollBar();
|
|
scroll = new VScrollBar();
|
|
schrift = zSchrift->getThis();
|
|
schrift = zSchrift->getThis();
|
|
|
|
+ pName = initTextFeld( 0, 0, 80, 20, schrift, TextFeld::Style::TextFeld, "" );
|
|
data = 0;
|
|
data = 0;
|
|
ref = 1;
|
|
ref = 1;
|
|
}
|
|
}
|
|
@@ -417,6 +433,7 @@ EditorListe::EditorListe( Schrift *zSchrift )
|
|
// Destruktor
|
|
// Destruktor
|
|
EditorListe::~EditorListe()
|
|
EditorListe::~EditorListe()
|
|
{
|
|
{
|
|
|
|
+ pName->release();
|
|
ram->release();
|
|
ram->release();
|
|
scroll->release();
|
|
scroll->release();
|
|
if( data )
|
|
if( data )
|
|
@@ -443,8 +460,10 @@ void EditorListe::doMausEreignis( MausEreignis &me )
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
scroll->doMausMessage( ram->getBreite() - 17, 1, 15, ram->getHeight() - 2, me );
|
|
scroll->doMausMessage( ram->getBreite() - 17, 1, 15, ram->getHeight() - 2, me );
|
|
|
|
+ if( data->getSelectedPolygon() >= 0 )
|
|
|
|
+ pName->doMausEreignis( me );
|
|
rend |= scroll->getRend();
|
|
rend |= scroll->getRend();
|
|
- if( me.id == ME_RLinks )
|
|
|
|
|
|
+ if( me.id == ME_RLinks && !me.verarbeitet )
|
|
{
|
|
{
|
|
int pAnz = data->getPolygonAnzahl();
|
|
int pAnz = data->getPolygonAnzahl();
|
|
int y = -scroll->getScroll();
|
|
int y = -scroll->getScroll();
|
|
@@ -503,8 +522,16 @@ void EditorListe::doMausEreignis( MausEreignis &me )
|
|
me.my += ram->getY();
|
|
me.my += ram->getY();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void EditorListe::doTastaturEreignis( TastaturEreignis &te )
|
|
|
|
+{
|
|
|
|
+ if( data && data->getSelectedPolygon() >= 0 )
|
|
|
|
+ pName->doTastaturEreignis( te );
|
|
|
|
+}
|
|
|
|
+
|
|
bool EditorListe::tick( double zeit )
|
|
bool EditorListe::tick( double zeit )
|
|
{
|
|
{
|
|
|
|
+ if( data && data->getSelectedPolygon() >= 0 )
|
|
|
|
+ rend |= pName->tick( zeit );
|
|
bool ret = rend;
|
|
bool ret = rend;
|
|
rend = 0;
|
|
rend = 0;
|
|
return ret;
|
|
return ret;
|
|
@@ -525,11 +552,30 @@ void EditorListe::render( Bild &zRObj )
|
|
for( int i = 0; i < pAnz; i++ )
|
|
for( int i = 0; i < pAnz; i++ )
|
|
{
|
|
{
|
|
if( data->getSelectedPolygon() == i )
|
|
if( data->getSelectedPolygon() == i )
|
|
|
|
+ {
|
|
|
|
+ pName->setPosition( 20, y );
|
|
|
|
+ pName->setText( data->zPolygon( data->getSelectedPolygon() )->getName() );
|
|
|
|
+ Data *tmpData = data;
|
|
|
|
+ pName->setNTastaturEreignis( [ tmpData ]( void *p, void *o, TastaturEreignis te ) -> bool {
|
|
|
|
+ if( tmpData->getSelectedPolygon() >= 0 )
|
|
|
|
+ tmpData->zPolygon( tmpData->getSelectedPolygon() )->setName( ( (TextFeld*)o )->zText()->getText() );
|
|
|
|
+ return 1;
|
|
|
|
+ } );
|
|
zRObj.fillRegion( 0, y, 133, 20, 0xFF002000 );
|
|
zRObj.fillRegion( 0, y, 133, 20, 0xFF002000 );
|
|
- name = "Polygon ";
|
|
|
|
- name += i;
|
|
|
|
- schrift->setDrawPosition( 20, y + 4 );
|
|
|
|
- schrift->renderText( &name, zRObj, 0xFFFFFFFF );
|
|
|
|
|
|
+ pName->render( zRObj );
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if( textLength( data->zPolygon( i )->getName() ) > 0 )
|
|
|
|
+ name = data->zPolygon( i )->getName();
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ name = "Polygon ";
|
|
|
|
+ name += i;
|
|
|
|
+ }
|
|
|
|
+ schrift->setDrawPosition( 20, y + 4 );
|
|
|
|
+ schrift->renderText( &name, zRObj, 0xFFFFFFFF );
|
|
|
|
+ }
|
|
zRObj.drawLinie( Punkt( 115, y + 1 ), Punkt( 132, y + 18 ), 0xFFFF0000 );
|
|
zRObj.drawLinie( Punkt( 115, y + 1 ), Punkt( 132, y + 18 ), 0xFFFF0000 );
|
|
zRObj.drawLinie( Punkt( 132, y + 1 ), Punkt( 115, y + 18 ), 0xFFFF0000 );
|
|
zRObj.drawLinie( Punkt( 132, y + 1 ), Punkt( 115, y + 18 ), 0xFFFF0000 );
|
|
if( ausgeklappt.hat( i ) && ausgeklappt.get( i ) )
|
|
if( ausgeklappt.hat( i ) && ausgeklappt.get( i ) )
|
|
@@ -1004,6 +1050,7 @@ void GUI::doTastaturEreignis( TastaturEreignis &te )
|
|
{
|
|
{
|
|
if( !sichtbar )
|
|
if( !sichtbar )
|
|
return;
|
|
return;
|
|
|
|
+ liste->doTastaturEreignis( te );
|
|
editor->doTastaturEreignis( te );
|
|
editor->doTastaturEreignis( te );
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1026,7 +1073,8 @@ bool GUI::tick( double zeit )
|
|
data->setTextur( b );
|
|
data->setTextur( b );
|
|
err->release();
|
|
err->release();
|
|
}
|
|
}
|
|
- importPfad->release();
|
|
|
|
|
|
+ if( importPfad )
|
|
|
|
+ importPfad->release();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
rend |= speichern->tick( zeit );
|
|
rend |= speichern->tick( zeit );
|