E57 faylı nədir?
.e57 uzantısı olan fayl, nöqtə buludları, şəkillər və metadata kimi üçölçülü (3D) təsvir məlumatlarının saxlanması və mübadiləsi üçün istifadə olunan kompakt, satıcı üçün neytral fayl formatıdır. Bu cür məlumatlar çox vaxt lazer skanerləri kimi sistemlərlə yaradılır. O, ATSM E57 3D Görüntüləmə Sistemləri Komitəsinin Data Interoperability alt komitəsi tərəfindən hazırlanmışdır. E57 açıq mənbədir və 3D nöqtə məlumatlarını, onun atributlarını (rəng və intensivlik kimi) və 3D təsvir sistemi tərəfindən çəkilmiş 2D təsvirləri saxlayır.
E57 Fayl Format
E57 fayl formatının spesifikasiyası ATSM saytında mövcuddur və tərtibatçının arayışı üçün istinad edilə bilər. E57 fayl formatının konseptual sənədi və texniki detalları Daniel Huber tərəfindən istinad materialı kimi mövcuddur. E57 faylındakı məlumatlar aşağıdakı şəkildə göstərildiyi kimi XML əsaslı iyerarxik ağac strukturunda saxlanılır. Aşağı səviyyədə, E57 faylları fayl ölçüsünü yığcam etmək üçün sıxılmış ikili fayllar kimi saxlanılır.
E57 Fayl strukturu
E57 faylının strukturu aşağıdakı cədvəldə göstərildiyi kimidir.
Fayl strukturu |
---|
Başlıq |
İkili bölmə (nöqtələr) |
İkili bölmə (nöqtələr) |
… |
… |
İkili bölmə (şəkil) |
XML bölməsi |
E57 Başlığı
E57 başlığı kiçik, 48 baytlıq ikili strukturdur və versiya nömrəsi və XML bölməsinin yeri kimi kritik fayl səviyyəli məlumatları ehtiva edir. Proqamatik olaraq aşağıdakı kimi təqdim edilə bilər.
struct E57FileHeader {
char fileSignature[8];
uint32_t majorVersion;
uint32_t minorVersion;
uint64_t filePhysicalLength;
uint64_t xmlPhysicalOffset;
uint64_t xmlLogicalLength;
uint64_t pageSize;
}
XML iyerarxiyası
E57 faylının XML bölməsi standart XML alt dəstindən istifadə edərək ağac iyerarxiyasını təsvir edir. Bu, hər bir elementin bir sıra əsas tikinti bloklarından istifadə etməklə qurulduğu səkkiz E57 element növünə əsaslanır. Bu E57 elementlərindən beşi terminal tipləridir, üçü isə qeyri-terminaldır.
Terminal növləri
Integer
- ölçüsü 63 bitə qədər olan işarəli tam ədəd
Float
- IEEE 754-1985 formatında tək və ya ikiqat dəqiqlikli üzən nöqtə nömrəsini saxlayır
ScaledInteger
- Kəsr hissəsi olan ədədi miqyas və ofsetlə birlikdə tam ədəd kimi saxlayır
String
- Mətn məlumatlarını UTF-8 kodlu şəkildə saxlayır və beynəlxalq simvolları dəstəkləyir
Blob
- Kontekstdən asılı olaraq oxucu tərəfindən şərh edilən ikili məlumatların qeyri-şəffaf blokunu saxlayır.
Qeyri-terminal növləri
Struktur
- İstənilən növ E57 elementlərinin nizamsız dəstini ehtiva edir. E57 strukturu C proqramlaşdırma dilində olan strukturun analoqudur.
Vektor
- Əsasən eyni tipli elementlərin sıralanmış siyahısını ehtiva edir. Elementdəki bayraq, istədiyiniz halda elementlərin tam olaraq eyni şəkildə yazılması üçün məhdudlaşdırılmasına imkan verir.
CompressedVector
- İkili formatda sıxılmış eyni tipli elementlərin sıralanmış siyahısını ehtiva edir. Blob məlumat tipində olduğu kimi, CompressedVector-un təsviri XML hissəsinə və ikili hissəyə bölünür.