מהו קובץ E57?
קובץ עם סיומת .e57 הוא פורמט קובץ קומפקטי, נייטרלי מספק, המשמש לאחסון והחלפה של נתוני הדמיה תלת מימדיים (3D) כגון ענני נקודות, תמונות ומטא נתונים. נתונים כאלה נוצרים לעתים קרובות עם מערכות כגון סורקי לייזר. הוא פותח על ידי ועדת המשנה ליכולת הדדית של נתונים של ועדת ATSM E57 למערכות הדמיה תלת-ממדיות. E57 הוא קוד פתוח ומאחסן נתוני נקודות תלת מימדיים, תכונותיו (כגון צבע ועוצמה), ותמונות דו מימדיות כפי שנלכדו על ידי מערכת ההדמיה התלת מימדית.
פורמט קובץ E57
מפרטי פורמט הקובץ E57 זמינים באתר ATSM וניתן להתייחס אליהם לעיון המפתחים. נייר הרעיון והפרטים הטכניים של פורמט הקובץ E57 זמינים כחומר עזר על ידי דניאל הובר. הנתונים בקובץ E57 נשמרים במבנה עץ היררכי מבוסס XML כפי שמוצג בתמונה הבאה. ברמה נמוכה, קבצי E57 נשמרים כקבצים בינאריים דחוסים כדי להפוך את גודל הקובץ לקומפקטי.
E57 מבנה הקובץ
המבנה של קובץ E57 הוא כפי שמוצג בטבלה הבאה.
מבנה הקובץ |
---|
כותרת |
קטע בינארי (נקודות) |
קטע בינארי (נקודות) |
… |
… |
קטע בינארי (תמונה) |
קטע XML |
כותרת E57
הכותרת E57 היא מבנה בינארי קטן של 48 בתים המכיל מידע קריטי ברמת הקובץ, כגון מספר הגרסה והמיקום של קטע ה-XML. זה יכול להיות מיוצג באופן פרוגמטי כדלקמן.
struct E57FileHeader {
char fileSignature[8];
uint32_t majorVersion;
uint32_t minorVersion;
uint64_t filePhysicalLength;
uint64_t xmlPhysicalOffset;
uint64_t xmlLogicalLength;
uint64_t pageSize;
}
היררכיית XML
קטע ה-XML של קובץ E57 מתאר את היררכיית העץ באמצעות קבוצת משנה של XML סטנדרטית. זה מבוסס על שמונה סוגי אלמנטים מסוג E57 כאשר כל אלמנט נבנה באמצעות קבוצה של אבני בניין ליבה. חמישה מאלמנטים אלה של E57 הם סוגי טרמינלים ושלושה מהם אינם טרמינלים.
סוגי טרמינלים
Integer
- מספר שלם עם סימן בגודל של עד 63 סיביות
Float
- מאחסן מספר נקודה צפה דיוק יחידה או כפולה בפורמט IEEE 754-1985
ScaledInteger
- מאחסן מספר עם חלק חלקי כמספר שלם יחד עם סולם והיסט
מחרוזת
- מאחסן נתוני טקסט כמקודדים UTF-8 ותומך בתווים בינלאומיים
בלוב
- מאחסן בלוק אטום של נתונים בינאריים המתפרשים על ידי הקורא בהתאם להקשר.
סוגי לא טרמינלים
מבנה
- מכיל סט לא מסודר של אלמנטים E57 מכל סוג שהוא. מבנה E57 מקביל למבנה בשפת התכנות C.
וקטור
- מכיל רשימה מסודרת של פריטים בעלי הקלדה זהה. דגל באלמנט מאפשר להגביל את הפריטים להקלדה זהה בדיוק אם תרצה.
CompressedVector
- מכיל רשימה מסודרת של פריטים המוקלדים באופן זהה, הנדחסים בפורמט בינארי. כמו בסוג הנתונים Blob, הייצוג של CompressedVector מחולק לחלק XML וחלק בינארי.