Commit 689b1ad
Fix vertex color parsing: use xyzw,rgb for 7 args and xyz,rgb for 6
Previously, both opt_parseLine and the fast path stored extra[0]
(the weight) as color R when 3+ extra components were present.
For v x y z w r g b (7 total), color was incorrectly (w,r,g)
instead of (r,g,b), losing the blue channel entirely.
Now correctly handles:
- v x y z (3) — no weight, no color
- v x y z w (4) — weight=w, no color
- v x y z r g b (6) — weight=r (legacy compat), color=(r,g,b)
- v x y z w r g b (7) — weight=w, color=(r,g,b)
Fixed in both opt_parseLine (slow path) and opt_parseLineToThreadData
(fast path). Added test verifying 6 and 7 component parsing for both
LoadObjOpt and LoadObjOptTyped.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 6df5849 commit 689b1ad
2 files changed
Lines changed: 131 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4027 | 4027 | | |
4028 | 4028 | | |
4029 | 4029 | | |
| 4030 | + | |
| 4031 | + | |
| 4032 | + | |
| 4033 | + | |
| 4034 | + | |
| 4035 | + | |
| 4036 | + | |
| 4037 | + | |
| 4038 | + | |
| 4039 | + | |
| 4040 | + | |
| 4041 | + | |
| 4042 | + | |
| 4043 | + | |
| 4044 | + | |
| 4045 | + | |
| 4046 | + | |
| 4047 | + | |
| 4048 | + | |
| 4049 | + | |
| 4050 | + | |
| 4051 | + | |
| 4052 | + | |
| 4053 | + | |
| 4054 | + | |
| 4055 | + | |
| 4056 | + | |
| 4057 | + | |
| 4058 | + | |
| 4059 | + | |
| 4060 | + | |
| 4061 | + | |
| 4062 | + | |
| 4063 | + | |
| 4064 | + | |
| 4065 | + | |
| 4066 | + | |
| 4067 | + | |
| 4068 | + | |
| 4069 | + | |
| 4070 | + | |
| 4071 | + | |
| 4072 | + | |
| 4073 | + | |
| 4074 | + | |
| 4075 | + | |
| 4076 | + | |
| 4077 | + | |
| 4078 | + | |
| 4079 | + | |
| 4080 | + | |
| 4081 | + | |
| 4082 | + | |
| 4083 | + | |
| 4084 | + | |
| 4085 | + | |
| 4086 | + | |
| 4087 | + | |
| 4088 | + | |
| 4089 | + | |
| 4090 | + | |
| 4091 | + | |
| 4092 | + | |
| 4093 | + | |
| 4094 | + | |
| 4095 | + | |
| 4096 | + | |
| 4097 | + | |
| 4098 | + | |
| 4099 | + | |
| 4100 | + | |
| 4101 | + | |
4030 | 4102 | | |
4031 | 4103 | | |
4032 | 4104 | | |
| |||
4350 | 4422 | | |
4351 | 4423 | | |
4352 | 4424 | | |
| 4425 | + | |
| 4426 | + | |
4353 | 4427 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10873 | 10873 | | |
10874 | 10874 | | |
10875 | 10875 | | |
| 10876 | + | |
10876 | 10877 | | |
10877 | 10878 | | |
10878 | 10879 | | |
10879 | 10880 | | |
10880 | 10881 | | |
10881 | | - | |
10882 | | - | |
| 10882 | + | |
| 10883 | + | |
| 10884 | + | |
10883 | 10885 | | |
10884 | | - | |
10885 | | - | |
10886 | | - | |
10887 | | - | |
10888 | | - | |
10889 | | - | |
10890 | | - | |
10891 | | - | |
10892 | | - | |
10893 | | - | |
10894 | | - | |
10895 | | - | |
10896 | | - | |
| 10886 | + | |
| 10887 | + | |
| 10888 | + | |
| 10889 | + | |
| 10890 | + | |
| 10891 | + | |
| 10892 | + | |
| 10893 | + | |
| 10894 | + | |
| 10895 | + | |
| 10896 | + | |
| 10897 | + | |
| 10898 | + | |
| 10899 | + | |
| 10900 | + | |
| 10901 | + | |
| 10902 | + | |
| 10903 | + | |
| 10904 | + | |
| 10905 | + | |
| 10906 | + | |
| 10907 | + | |
| 10908 | + | |
| 10909 | + | |
10897 | 10910 | | |
10898 | 10911 | | |
10899 | 10912 | | |
| |||
11628 | 11641 | | |
11629 | 11642 | | |
11630 | 11643 | | |
11631 | | - | |
| 11644 | + | |
11632 | 11645 | | |
11633 | 11646 | | |
11634 | 11647 | | |
11635 | 11648 | | |
11636 | 11649 | | |
11637 | | - | |
11638 | | - | |
| 11650 | + | |
| 11651 | + | |
| 11652 | + | |
| 11653 | + | |
| 11654 | + | |
| 11655 | + | |
| 11656 | + | |
| 11657 | + | |
| 11658 | + | |
| 11659 | + | |
11639 | 11660 | | |
11640 | 11661 | | |
11641 | 11662 | | |
| |||
11650 | 11671 | | |
11651 | 11672 | | |
11652 | 11673 | | |
| 11674 | + | |
| 11675 | + | |
| 11676 | + | |
| 11677 | + | |
| 11678 | + | |
| 11679 | + | |
| 11680 | + | |
| 11681 | + | |
| 11682 | + | |
| 11683 | + | |
| 11684 | + | |
| 11685 | + | |
| 11686 | + | |
| 11687 | + | |
| 11688 | + | |
| 11689 | + | |
11653 | 11690 | | |
11654 | | - | |
| 11691 | + | |
11655 | 11692 | | |
11656 | 11693 | | |
11657 | 11694 | | |
| |||
11662 | 11699 | | |
11663 | 11700 | | |
11664 | 11701 | | |
11665 | | - | |
| 11702 | + | |
11666 | 11703 | | |
11667 | 11704 | | |
11668 | 11705 | | |
| |||
0 commit comments