Klasa/BinManager
Obiekt klasy BinManager odpowiada za wczytanie, zapis i obsługę pliku RSF umieszczonego w pamięci (w tym dodawanie nowych rekordów). Ze względu na sposób jego podłączenia do klasy obiektu scenerii, nie jest możliwe jednoczesne korzystanie z dwóch plików RSF. Aby obsłużyć więcej niż jeden RSF w pamięci, każdy z nich musi mieć własny obiekt zarządzający i konieczna jest zmiana wskaźnika na aktualny (zmienna BinItem::manager).
Przy wczytaniu pliku RSF z dysku tworzona jest jedna tablica, która posiada rezerwę na ewentualnie dodane rekordy (rzędu 512 rekordów). Przekroczenie tej rezerwy (np. przy imporcie danych z UMP) powoduje tworzenie kolejnych tablic po 512 rekordów (64kB) każda. Maksymalnie mogą być utworzone 63 dodatkowe tablice (32256 rekordów o łącznej wielkości 3.9MB). Po przekroczeniu tej ilości, tworzona jest nowa tablica wskaźników o czterokrotnie większej pojemności (256 pozycji), do której przepisywane są wskaźniki do wszystkich 64 dotychczasowych tablic, a 192 nowe pozycje pozostają wolne (daje to możliwość zwiększenia pliku o kolejne 98304 rekordy, co odpowiada 12MB). Po ich wykorzystaniu utworzona zostanie kolejna tablica, tym razem z 1024 pozycjami (na dalsze 393216 rekordów, czyli 48MB pamięci). Proces czterokrotnego zwiększania możne być powtarzany aż do wyczerpania pamięci komputera. Reorganizację tablic można wykonać poprzez zapisanie zawartości tablic na dysku i ponowne wczytanie (użyta zostanie pierwsza z początkowych 64).
Klasy ogólne | Bin • BinManager • BinRecord • BinItem • BinLine • BinPos |
---|---|
Klasy parametrów | BinFile • BinArcInfo |
Klasy obiektów | BinTrack • BinPath • BinSection • BinTraction |
Linie | Linia kierunkowa • Niweleta • Poprzeczka • Trajektoria • Ściana |
Punktowe | Bramka • Budowla • Drzewo • Obrotnica • Most • Przejazd • Studnia • Ukres |
Trójkąty | Trójkąty • Teren NMT-100 • CityGML |
Eksport | MaSzyna • Kody eksportu |
Operacje | Układanie niwelety • Łuki koszowe |
Inne | RSF wersja 15 • RSF wersja 16 • Warstwy • Grupa • Komórki • Scenerie • RSFSTRU |