Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Updates Obj2Tiles’ OBJ/MTL parsing robustness and expands the automated test suite to cover many previously untested edge-cases across the decimation (ObjMesh), splitting (MeshUtils), and glTF conversion (ObjParser) paths, while aligning publish profiles with the repo’s net10.0 target.
Changes:
- Update
MeshUtils.LoadMeshto wrap out-of-range UVs, triangulate quads/n-gons, and skiplline elements. - Add broad NUnit/Shouldly coverage + fixtures for OBJ parsing edge cases, multi-axis splitting, and recursive splitting.
- Update platform publish profiles to output to
net10.0publish directories.
Reviewed changes
Copilot reviewed 45 out of 47 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Obj2Tiles/Properties/PublishProfiles/win-x64.pubxml | Publish output paths/framework updated to net10.0. |
| Obj2Tiles/Properties/PublishProfiles/win-arm64.pubxml | Publish output paths/framework updated to net10.0. |
| Obj2Tiles/Properties/PublishProfiles/osx-x64.pubxml | Publish output paths/framework updated to net10.0. |
| Obj2Tiles/Properties/PublishProfiles/linux-x64.pubxml | Publish output paths/framework updated to net10.0. |
| Obj2Tiles/Properties/PublishProfiles/linux-arm64.pubxml | Publish output paths/framework updated to net10.0. |
| Obj2Tiles.Library/Geometry/MeshUtils.cs | Splitting-stage OBJ parser: UV wrapping, n-gon triangulation, skip l, fix vn recognition. |
| Obj2Tiles.Test/Obj2Tiles.Test.csproj | Add Obj2Gltf reference + copy new OBJ fixtures to output. |
| Obj2Tiles.Test/ObjParserGltfTests.cs | New tests for Obj2Gltf’s ObjParser.Parse behavior (triangulation, normals, colors, etc.). |
| Obj2Tiles.Test/ObjMeshParsingTests.cs | New tests for decimation-stage ObjMesh.ReadFile parsing edge cases. |
| Obj2Tiles.Test/TestData/triangle.obj | New OBJ fixture (simple triangles). |
| Obj2Tiles.Test/TestData/triangle-normals.obj | New OBJ fixture (f v//vn format). |
| Obj2Tiles.Test/TestData/scientific-notation.obj | New OBJ fixture (scientific notation coordinates). |
| Obj2Tiles.Test/TestData/quad-simple.obj | New OBJ fixture (quad face). |
| Obj2Tiles.Test/TestData/quad-mesh.obj | New OBJ fixture (quad for ObjMesh triangulation). |
| Obj2Tiles.Test/TestData/ngon.obj | New OBJ fixture (pentagon n-gon). |
| Obj2Tiles.Test/TestData/negative-idx.obj | New OBJ fixture (negative indices). |
| Obj2Tiles.Test/TestData/empty.obj | New empty OBJ fixture. |
| Obj2Tiles.Test/TestData/degenerate-faces.obj | New OBJ fixture (degenerate face). |
| Obj2Tiles.Test/TestData/cube2-normals.obj | New OBJ fixture (normals + uvs + materials). |
| Obj2Tiles.Test/TestData/cube-colors-3d.obj | New OBJ fixture (vertex colors). |
| Obj2Tiles.Test/TestData/cube-3d.obj | New OBJ fixture (3D cube triangles). |
| Obj2Tiles.Test/TestData/comments-and-blanks.obj | New OBJ fixture (comments/blank lines). |
| Obj2Tiles.Library.Test/Obj2Tiles.Library.Test.csproj | Copy new Library.Test fixtures to output. |
| Obj2Tiles.Library.Test/ObjParsingTests.cs | New tests for MeshUtils.LoadMesh corner cases (Issues #35/#60/#64 focus). |
| Obj2Tiles.Library.Test/SplitMultiAxisTests.cs | New tests for split correctness across X/Y/Z + color preservation. |
| Obj2Tiles.Library.Test/RecurseSplitTests.cs | New tests for RecurseSplitXY/XYZ behaviors. |
| Obj2Tiles.Library.Test/MtlParsingTests.cs | New tests for Material.ReadMtl parsing and round-trips. |
| Obj2Tiles.Library.Test/BoundsTests.cs | New tests for bounds and Box3 split/center invariants. |
| Obj2Tiles.Library.Test/TestData/triangle-with-lines.obj | New fixture to validate skipping l elements. |
| Obj2Tiles.Library.Test/TestData/triangle-vt-vn.obj | New fixture for f v/vt/vn faces. |
| Obj2Tiles.Library.Test/TestData/triangle-vt-vn.mtl | New fixture MTL for vt/vn triangle. |
| Obj2Tiles.Library.Test/TestData/triangle-uv-negative.obj | New fixture for negative/out-of-range UV wrapping. |
| Obj2Tiles.Library.Test/TestData/triangle-uv-negative.mtl | New fixture MTL for UV wrapping test. |
| Obj2Tiles.Library.Test/TestData/triangle-normals.obj | New fixture (f v//vn). |
| Obj2Tiles.Library.Test/TestData/scientific-notation.obj | New fixture for scientific notation parsing. |
| Obj2Tiles.Library.Test/TestData/quad.obj | New fixture for quad triangulation. |
| Obj2Tiles.Library.Test/TestData/only-vertices.obj | New fixture (vertices only, no faces). |
| Obj2Tiles.Library.Test/TestData/ngon.obj | New fixture (n-gon triangulation). |
| Obj2Tiles.Library.Test/TestData/multi-material.obj | New fixture (multi-material faces). |
| Obj2Tiles.Library.Test/TestData/multi-material.mtl | New fixture MTL (two materials). |
| Obj2Tiles.Library.Test/TestData/mtllib-missing.obj | New fixture (missing MTL reference). |
| Obj2Tiles.Library.Test/TestData/mtllib-empty.obj | New fixture (empty mtllib line). |
| Obj2Tiles.Library.Test/TestData/empty.obj | New empty OBJ fixture (Library.Test). |
| Obj2Tiles.Library.Test/TestData/degenerate-faces.obj | New fixture (degenerate faces). |
| Obj2Tiles.Library.Test/TestData/cube-colors-3d.obj | New fixture (vertex colors). |
| Obj2Tiles.Library.Test/TestData/cube-3d.obj | New fixture (3D cube triangles). |
| Obj2Tiles.Library.Test/TestData/comments-and-blanks.obj | New fixture (comments/blank lines). |
This was referenced Feb 16, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses #36 #54 #35 #60 #64