c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Map shrink und Grenzen

Absender: Benjamin Benz
Datum: Do, 18.09.2008 13:26:28
In-reply-to: <48C139945BA47F4DB4DE05DF62CD57AA03D9B620CA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <48C139945BA47F4DB4DE05DF62CD57AA03D9A29FC6@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <48C139945BA47F4DB4DE05DF62CD57AA03D9B620CA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>


Hi,

mir ist bei der Map weiterhin aufgefallen, dass mittlerweile ja das OFFLINE_SHRINK aktiviert ist. Dafür bleiben aber die Grenzen des wirklich verwendeten MAP-Bereiches mit dem Maximumbereich belegt und werden nicht mehr aktualisiert. Soll das so sein ?
Eigentlich sollte nach meinem Verständnis das shrink nach außen zugänglich sein und auch dann die Grenzen korrekt nach außen gegeben werden oder ?

genau das ist das Konzept des Offline-Shrinks: Nur wenn man wirklich wissen will, wo die Grenzen wirklich liegen, wird geshrinkt. Bis dahin wird eben nicht aktualisiert -- und keine Rechenzeit auf die Berechnung verwendet. Bisher war die Info nur dann von Nöten, wenn die Karte exportiert wurde.

Wenn Du nun im Offline-modus wissen willst, wo die tatsächlichen Grenzen liegen, ruffst Du die Fkt:

static inline void shrink(uint16_t * min_x, uint16_t * max_x, uint16_t * min_y, uint16_t * max_y)

auf und bekommst den gerade jetzt gültigen Stand der Dinge in Deine Übergabevariablen. Das dauert aber ein wenig.

Der einfache Zugriff auf map_max_x und Co. geht NUR im Online-Modus. Das erlaibt einen schnellen Zugriff, kostet aber ein wenig Aufwand bei jedem Map-Eintrag.

Ciao Ben

--
Benjamin Benz
Heise Zeitschriften Verlag
Redaktion c't
eMail: bbe@xxxxxxxx
WWW  : http://www.heise.de

Heise Zeitschriften Verlag GmbH & Co. KG
Registergericht: Amtsgericht Hannover HRA 26709

Persönlich haftende Gesellschafterin:
Heise Zeitschriften Verlag Geschäftsführung GmbH
Registergericht: Amtsgericht Hannover, HRB 60405
Geschäftsführer: Ansgar Heise, Steven P. Steinkraus, Dr. Alfons Schräder