Liste von Rechtecken des Typs Rect.
Ein allgemeines Beispiel zur Verwendung der Klasse rectlist finden sie hier.
Liste von Rechtecken des Typs Rect.
static RectList rectlist::alloc()
Erzeuge eine neue leere Liste vom Typ RectList. Die Liste muss mit RectList::release wieder gelöscht werden.
Name | Typ | Default | Beschreibung |
Return | RectList | Neue leere Liste für Rechtecke des Typs Rect |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int wrectlist (RectList rl, char * trailer) { Rect r;
if (strlen (trailer)) wlog ("", "%s\n", trailer);
for (r = rectlist::first (rl); r; r = rectlist::next (rl)) { wrect (r, " "); }
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect r3 = rect::alloc (80.0, 90.0, 400.0, 500.0); Rect intersect = rect::alloc (); RectList rl = rectlist::alloc ();
rectlist::append (rl, r1); rectlist::append (rl, r2); rectlist::append (rl, r3); wrectlist (rl, "RectList");
rectlist::bbox (rl, intersect); wrect (intersect, "BBox of rectlist");
return 0; }
static int rectlist::release(RectList li)
Lösche eine mit RectList::alloc erzeugte Liste wieder.
Name | Typ | Default | Beschreibung |
li | RectList | - | Zu löschende Liste |
static int rectlist::length(RectList li)
Ermittle die Anzahl der Elemente einer Liste.
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Einträge der Liste | |
li | RectList | - | Liste |
static Rect rectlist::first(RectList li)
Hole den ersten Eintrag einer nichtleeren RectList. Wird kein Eintrag in der Liste gefunden, gibt die Funktion den Wert 0 zurück.
Name | Typ | Default | Beschreibung |
Return | Rect | Erster Wert der Liste. | |
li | RectList | - | Liste mit mindestens einem Element |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int wrectlist (RectList rl, char * trailer) { Rect r;
if (strlen (trailer)) wlog ("", "%s\n", trailer);
for (r = rectlist::first (rl); r; r = rectlist::next (rl)) { wrect (r, " "); }
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect r3 = rect::alloc (80.0, 90.0, 400.0, 500.0); Rect intersect = rect::alloc (); RectList rl = rectlist::alloc ();
rectlist::append (rl, r1); rectlist::append (rl, r2); rectlist::append (rl, r3); wrectlist (rl, "RectList");
rectlist::bbox (rl, intersect); wrect (intersect, "BBox of rectlist");
return 0; }
static Rect rectlist::next(RectList li)
Hole den nächsten Eintrag einer Liste. Wird kein Eintrag in der Liste gefunden, gibt die Funktion den Wert 0 zurück.
Name | Typ | Default | Beschreibung |
Return | Rect | Nächster Wert der Liste. | |
li | RectList | - | Liste mit mindestens einem Element nach dem aktuellen Listenzeiger |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int wrectlist (RectList rl, char * trailer) { Rect r;
if (strlen (trailer)) wlog ("", "%s\n", trailer);
for (r = rectlist::first (rl); r; r = rectlist::next (rl)) { wrect (r, " "); }
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect r3 = rect::alloc (80.0, 90.0, 400.0, 500.0); Rect intersect = rect::alloc (); RectList rl = rectlist::alloc ();
rectlist::append (rl, r1); rectlist::append (rl, r2); rectlist::append (rl, r3); wrectlist (rl, "RectList");
rectlist::bbox (rl, intersect); wrect (intersect, "BBox of rectlist");
return 0; }
static Rect rectlist::prev(RectList li)
Hole den vorherigen Eintrag einer Liste. Wird kein Eintrag in der Liste gefunden, gibt die Funktion den Wert 0 zurück.
Name | Typ | Default | Beschreibung |
Return | Rect | Wert der Vorgängers in der Liste. | |
li | RectList | - | Liste mit mindestens einem Element nach dem aktuellen Listenzeiger |
static Rect rectlist::last(RectList li)
Hole den letzten Eintrag einer nichtleeren einer Liste. Wird kein Eintrag in der Liste gefunden, gibt die Funktion den Wert 0 zurück.
Name | Typ | Default | Beschreibung |
Return | Rect | Letzter Wert der Liste. | |
li | RectList | - | Liste mit mindestens einem Element |
static int rectlist::get_pos(
RectList li,
Rect val,
int setPos = 0)
Suche die erste Position eines Wertes in der Liste. Wird kein Eintrag nicht gefunden , gibt die Funktion den Wert -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Zum Vergleichen der Einträge werden die Rechteckdaten, nicht die Objektadressen verwendet.
Name | Typ | Default | Beschreibung |
Return | int | >= 0 : Erstes Auftreten des Wertes in der Liste -1 : Wert nicht gefunden |
|
li | RectList | - | Liste, in der der Wert gesucht werden soll |
val | Rect | - | Dieser Wert wird gesucht |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf Fundstelle setzen |
static int rectlist::get_pos_by_value(
RectList li,
float l,
float t,
float r,
float b,
int setPos = 0)
Suche die erste Position eines Wertes in der Liste. Wird kein Eintrag nicht gefunden , gibt die Funktion den Wert -1 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Zum Vergleichen der Einträge werden die Rechteckdaten, nicht die Objektadressen verwendet.
Name | Typ | Default | Beschreibung |
Return | int | >= 0 : Erstes Auftreten des Wertes in der Liste -1 : Wert nicht gefunden |
|
li | RectList | - | Liste, in der der Wert gesucht werden soll |
l, t, r, b | float, float, float, float | - | Werte für links, oben, rechts, unten des Rechteckes |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf Fundstelle setzen |
static Rect rectlist::get(
RectList li,
int pos,
int setPos= 0)
Hole das i-te Element der Liste. Wird kein Eintrag in der Liste gefunden, gibt die Funktion den Wert 0 zurück. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Name | Typ | Default | Beschreibung |
Return | Rect | Wert der Liste an der Stelle i oder 0. | |
li | RectList | - | Liste, aus der das Element geholt werden soll |
pos | int | - | 0-basierte Listenposition |
setPos | int | 0 | 0 : Listenposition unverändert lassen 1 : Aktuelle Listenposition auf pos setzen |
static Rect rectlist::append(RectList li, Rect f)
Wert an die Liste anfügen.
Name | Typ | Default | Beschreibung |
Return | Rect | angefügter neuer Wert oder 0 | |
li | RectList | - | Liste, an die angefügt werden soll |
f | Rect | - | Anzufügender Wert |
static Rect rectlist::append_by_value(
RectList li,
float l,
float t,
float r,
float b)
Wert an die Liste anfügen. Das neue Rechteck wird als Werteliste übergeben.
Name | Typ | Default | Beschreibung |
Return | Rect | angefügter neuer Wert oder 0 | |
li | RectList | - | Liste, an die angefügt werden soll |
l, t, r, b | float, float, float, float | - | Werte für links, oben, rechts, unten des Rechteckes |
static Rect rectlist::insert(
RectList li,
int pos,
Rect f)
Wert in die Liste einfügen.
Name | Typ | Default | Beschreibung |
Return | Rect | eingefügter neuer Wert oder 0 | |
li | RectList | - | Liste, in die eingefügt werden soll |
pos | int | - | 0-basierte Einfügeposition |
f | Rect | - | einzufügender Wert |
static Rect rectlist::insert_by_value(
RectList li,
int pos,
float l,
float t,
float r,
float b)
Wert in die Liste einfügen. Das neue Rechteck wird als Werteliste übergeben.
Name | Typ | Default | Beschreibung |
Return | Rect | angefügter neuer Wert oder 0 | |
li | RectList | - | Liste, an die angefügt werden soll |
pos | int | - | 0-basierte Einfügeposition |
l, t, r, b | float, float, float, float | - | Werte für links, oben, rechts, unten des Rechteckes |
static Rect rectlist::remove(RectList li, Rect val)
Entferne das erste Auftreten eines Rechteckes aus der Liste.
Name | Typ | Default | Beschreibung |
Return | Rect | entfernter Wert oder 0 | |
li | RectList | - | Liste, aus der gelöscht werden soll |
val | Rect | - | Wert, der aus der Liste entfernt werden soll |
static Rect rectlist::remove_by_value(
RectList li,
float l,
float t,
float r,
float b)
Entferne das erste Auftreten eines Rechteckes aus der Liste. Das Rechteck wird als Werteliste übergeben.
Name | Typ | Default | Beschreibung |
Return | Rect | entfernter Wert oder 0 | |
li | RectList | - | Liste, aus der gelöscht werden soll |
l, t, r, b | float, float, float, float | - | Werte für links, oben, rechts, unten des Rechteckes |
static Rect rectlist::remove_pos(RectList li, int pos)
Entferne eine Position aus der Liste. Listenposition sind 0-basiert, das erste Element hat also die Position 0, das letzte die Position length-1.
Name | Typ | Default | Beschreibung |
Return | Rect | entfernter Wert oder 0 | |
li | RectList | - | Liste |
pos | int | - | 0-basierte Löschposition |
id = RectList::remove_pos (0); if (id) rect::release (id);
static int rectlist::clear(RectList li)
Entferne alle Elemente der Liste
Name | Typ | Default | Beschreibung |
Return | int | 1 : Aktion erfolgreich 0 : sonst |
|
li | RectList | - | Liste |
static int rectlist::bbox(RectList li, Rect res)
Berechne das umschließende Rechteck um die Liste.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
li | RectList | - | Liste, die sortiert werden soll |
res | Rect | - | Allokierter Speicher für das Ergebnis |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int wrectlist (RectList rl, char * trailer) { Rect r;
if (strlen (trailer)) wlog ("", "%s\n", trailer);
for (r = rectlist::first (rl); r; r = rectlist::next (rl)) { wrect (r, " "); }
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect r3 = rect::alloc (80.0, 90.0, 400.0, 500.0); Rect intersect = rect::alloc (); RectList rl = rectlist::alloc ();
rectlist::append (rl, r1); rectlist::append (rl, r2); rectlist::append (rl, r3); wrectlist (rl, "RectList");
rectlist::bbox (rl, intersect); wrect (intersect, "BBox of rectlist");
return 0; }
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int wrectlist (RectList rl, char * trailer) { Rect r;
if (strlen (trailer)) wlog ("", "%s\n", trailer);
for (r = rectlist::first (rl); r; r = rectlist::next (rl)) { wrect (r, " "); }
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect r3 = rect::alloc (80.0, 90.0, 400.0, 500.0); Rect intersect = rect::alloc (); RectList rl = rectlist::alloc ();
rectlist::append (rl, r1); rectlist::append (rl, r2); rectlist::append (rl, r3); wrectlist (rl, "RectList");
rectlist::bbox (rl, intersect); wrect (intersect, "BBox of rectlist");
return 0; }
Alphabetic index HTML hierarchy of classes or Java