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