Skip to content
This repository was archived by the owner on Mar 8, 2025. It is now read-only.

Commit f09dd7a

Browse files
Update 3MF Loader
1 parent e951645 commit f09dd7a

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

viewers/static/jsm/loaders/3MFLoader.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ class ThreeMFLoader extends Loader {
123123

124124
}
125125

126+
let rootModelFile = null;
127+
126128
for ( file in zip ) {
127129

128130
if ( file.match( /\_rels\/.rels$/ ) ) {
@@ -133,6 +135,10 @@ class ThreeMFLoader extends Loader {
133135

134136
modelRelsName = file;
135137

138+
} else if ( file.match( /^3D\/[^\/]*\.model$/ ) ) {
139+
140+
rootModelFile = file;
141+
136142
} else if ( file.match( /^3D\/.*\.model$/ ) ) {
137143

138144
modelPartNames.push( file );
@@ -147,7 +153,9 @@ class ThreeMFLoader extends Loader {
147153

148154
if ( relsName === undefined ) throw new Error( 'THREE.ThreeMFLoader: Cannot find relationship file `rels` in 3MF archive.' );
149155

150-
//
156+
// push root model at the end so it is processed after the sub models
157+
158+
if ( rootModelFile !== null ) modelPartNames.push( rootModelFile );
151159

152160
const relsView = zip[ relsName ];
153161
const relsFileText = textDecoder.decode( relsView );

0 commit comments

Comments
 (0)