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; }

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Der aktuelle Listenzeiger steht jetzt am Anfang der Liste. Mit next oder last können weitere Werte geholt werden.
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; }

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Aktueller Listenzeiger mit first, get_pos oder get gesetzt und nicht das letzte Element der Liste
Aktueller Listenzeiger wird eine Position weiter geschoben
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; }

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Aktueller Listenzeiger mit last, get_pos oder get gesetzt und nicht das erste Element der Liste
Aktueller Listenzeiger wird eine Position nach vorne verschoben

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Der aktuelle Listenzeiger steht jetzt am Ende der Liste. Mit prev oder first können weitere Werte geholt werden.

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Wurde der Wert in der Liste gefunden und ist setPos > 0, steht die aktuelle Listenposition auf der Fundstelle.

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Wurde der Wert in der Liste gefunden und ist setPos > 0, steht die aktuelle Listenposition auf der Fundstelle.

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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
Ist setPos > 0, steht die aktuelle Listenposition auf pos.

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append_by_value
insert
insert_by_value

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
insert
insert_by_value

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
append_by_value
insert_by_value

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

append
append_by_value
insert

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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);

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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; }

Version 3.1 R2210, 29.11.2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

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; }

Seit
Version 3.1 R2210, 29.11.2010
Siehe auch
rect

Alphabetic index HTML hierarchy of classes or Java