3MFLoader: Support external component parts.#33370
Open
jameszhong2008 wants to merge 1 commit intomrdoob:devfrom
Open
3MFLoader: Support external component parts.#33370jameszhong2008 wants to merge 1 commit intomrdoob:devfrom
jameszhong2008 wants to merge 1 commit intomrdoob:devfrom
Conversation
Collaborator
|
Can you please share a test asset so it's possible to verify your change? The asset should be added to the drop-down UI field in https://threejs.org/examples/webgl_loader_3mf. |
Collaborator
|
While reviewing your PR, I have noticed your branch |
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.
Summary
Add support for 3MF component references that point to external model parts via
p:path/path.This fixes 3MF files exported by tools like BambuStudio where the main
3D/3dmodel.modelcontains composite objects whose meshes live in3D/Objects/*.model.Changes
componentpart pathsmodelPath + objectIdto avoid collisions across external model partsProblem
The loader previously assumed every
component.objectidreferenced an object inside the current model part. For production-extension style 3MF files, components may instead reference objects stored in another model part such as3D/Objects/object_1.model.That caused
resources.object[ objectId ]to resolve toundefined, eventually throwing when readingmesh.Result
3MF files with external component parts can now be loaded correctly instead of failing during composite object construction.