KhronosGroup / KhronosGroup/OpenCOLLADA
handling of #IND00 and #INF00
- Dominant language
- C++
- Stars
- 679
- Forks
- 260
- PR merge metrics
- No merged PRs in 30d
Description
Hi;
I got a report about a broken collada import. I found the problem is related to a series of lines containing:
-1.#IND00` -1.#IND00 `-1.#IND00
OpenCollada actually sees the initial "-1." as a value of -1 but then reports the rest of the line as Parse error:
Error: ERROR_TEXTDATA_PARSING_FAILED
Element: float_array,
Line: 178665, Column: 14, Additional: #IND00 -1.#IND00 -1.
I have seen the very same Collada file can be imported to other tools and game engines, although it is not clear to me how to process the lines properly. When we treat the parse errors just as warnings, then we get corrupted data in Blender, probably because the numbers(data counters) aren't right in that case.
I wonder if opencollada should(could) treat #IND00 and #INF00 as std::numeric_limits::infinity() instead of creating a parsing error here. Any opinions ?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the reported COLLADA float_array parse failure with the #IND00 and #INF00 tokens, then trace the C++ numeric parsing path that emits ERROR_TEXTDATA_PARSING_FAILED. Determine the supported interpretation for these values and identify the relevant parser test location; done means the file imports without corrupted array data and the behavior is covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100