Skip to content

Commit 3cd3e5b

Browse files
committed
USDAParser/USDComposer: Clean up.
1 parent e3f4523 commit 3cd3e5b

File tree

2 files changed

+12
-36
lines changed

2 files changed

+12
-36
lines changed

examples/jsm/loaders/usd/USDAParser.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -203,23 +203,23 @@ class USDAParser {
203203
// Skip nested defs (handled by walkTree)
204204
if ( key.startsWith( 'def ' ) ) continue;
205205

206-
// Handle references/payloads
207-
if ( key === 'prepend references' || key === 'payload' ) {
206+
if ( key === 'prepend references' ) {
208207

209-
// Store as relationship
210-
const relPath = path + '.' + key.replace( ' ', ':' );
211-
specsByPath[ relPath ] = {
212-
specType: SpecType.Relationship,
213-
fields: { default: data[ key ] }
214-
};
208+
primFields.references = [ data[ key ] ];
209+
continue;
210+
211+
}
212+
213+
if ( key === 'payload' ) {
214+
215+
primFields.payload = data[ key ];
215216
continue;
216217

217218
}
218219

219-
// Handle material binding
220220
if ( key.startsWith( 'rel ' ) ) {
221221

222-
const relName = key.slice( 4 ); // Remove 'rel '
222+
const relName = key.slice( 4 );
223223
const relPath = path + '.' + relName;
224224
const target = data[ key ].replace( /[<>]/g, '' );
225225
specsByPath[ relPath ] = {

examples/jsm/loaders/usd/USDComposer.js

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ class USDComposer {
359359
const typeName = spec.fields.typeName;
360360

361361
// Check for references/payloads
362-
const refValue = this._getReference( path, spec );
362+
const refValue = this._getReference( spec );
363363
if ( refValue ) {
364364

365365
// Get local variant selections from this prim
@@ -729,22 +729,17 @@ class USDComposer {
729729

730730
/**
731731
* Get reference value from a prim spec.
732-
* Checks for references in USDC format (fields.references) and
733-
* USDA format (relationship specs).
734732
*/
735-
_getReference( path, spec ) {
733+
_getReference( spec ) {
736734

737-
// USDC format: references stored in fields
738735
if ( spec.fields.references && spec.fields.references.length > 0 ) {
739736

740737
const ref = spec.fields.references[ 0 ];
741-
// Reference can be string or object with assetPath
742738
if ( typeof ref === 'string' ) return ref;
743739
if ( ref.assetPath ) return '@' + ref.assetPath + '@';
744740

745741
}
746742

747-
// USDC format: payload stored in fields
748743
if ( spec.fields.payload ) {
749744

750745
const payload = spec.fields.payload;
@@ -753,23 +748,6 @@ class USDComposer {
753748

754749
}
755750

756-
// USDA format: check relationship specs
757-
const prependRefPath = path + '.prepend:references';
758-
const prependRefSpec = this.specsByPath[ prependRefPath ];
759-
if ( prependRefSpec && prependRefSpec.fields.default ) {
760-
761-
return prependRefSpec.fields.default;
762-
763-
}
764-
765-
const payloadPath = path + '.payload';
766-
const payloadSpec = this.specsByPath[ payloadPath ];
767-
if ( payloadSpec && payloadSpec.fields.default ) {
768-
769-
return payloadSpec.fields.default;
770-
771-
}
772-
773751
return null;
774752

775753
}
@@ -877,7 +855,6 @@ class USDComposer {
877855
mesh = new SkinnedMesh( geometry, material );
878856

879857
// Find skeleton path from skel:skeleton relationship
880-
// USDC uses ".skel:skeleton", USDA uses ".rel skel:skeleton"
881858
let skelBindingSpec = this.specsByPath[ path + '.skel:skeleton' ];
882859
if ( ! skelBindingSpec ) {
883860

@@ -895,7 +872,6 @@ class USDComposer {
895872

896873
} else if ( skelBindingSpec.fields.default ) {
897874

898-
// USDA stores relationship targets in default field with angle brackets
899875
skeletonPath = skelBindingSpec.fields.default.replace( /<|>/g, '' );
900876

901877
}

0 commit comments

Comments
 (0)