asmaloney / asmaloney/libE57Format

Spec disagrees with sample files about `indexStartOffset = 0`

Open
#338 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
191
Forks
82
Avg merge
7h 21m
Merged PRs (30d)
1

Description

Spec says in **TABLE 35 Fields for the CompressedVector Header** about `indexStartOffset`:

> The file offset to the root level index packet in this binary section (in bytes). Shall be in the interval (0, 263).

Image

and in section **5.2.1** about intervals:

> An open interval is denoted _(a, b)_, where _a_ ≤ _b_. An open interval includes the numbers between the endpoints _a_ and _b_, but does not include the endpoints themselves.

So `indexStartOffset = 0` should be illegal as per spec.

But the sample file [`bunnyFloat.e57`](http://sourceforge.net/projects/e57-3d-imgfmt/files/E57Example-data/bunnyFloat.e57/download) from http://www.libe57.org/data.html seems to set `indexStartOffset = 0`.

Just sharing this info here for now.

---

(I'm currently investigating why Autodesk ReCap can import `bunnyFloat.e57` but errors on importing that file after rountripping it through CloudCompare which uses `libE57Format` for writing. I suspect that ReCap cannot read E57 index packets, and thus found the above.)

Contributor guide

Open the contributing guide

Research direction

Start by comparing the `indexStartOffset` wording in TABLE 35 and section 5.2.1 with the value in the `bunnyFloat.e57` sample. Review how libE57Format writes and reads E57 index packets, then compare the CloudCompare round-tripped file with the original; done means the spec-versus-sample discrepancy and any relevant compatibility behavior are documented clearly.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.