KhronosGroup / KhronosGroup/OpenCOLLADA

handling of #IND00 and #INF00

Open
#591 4 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.