@@ -68,10 +68,12 @@
|
|
68
68
|
|
69
69
|
type Target = USDObject | USDObject[] | Object3D | Object3D[];
|
70
70
|
|
71
|
+
const addedStrings = new Set<string>();
|
71
72
|
/** called to resolve target objects to usdz paths */
|
72
73
|
function resolve(targetObject: Target, document: USDDocument): string {
|
73
74
|
let result: string = "";
|
74
75
|
if (Array.isArray(targetObject)) {
|
76
|
+
addedStrings.clear();
|
75
77
|
let str = "[ ";
|
76
78
|
for (let i = 0; i < targetObject.length; i++) {
|
77
79
|
let obj = targetObject[i];
|
@@ -79,8 +81,11 @@
|
|
79
81
|
console.warn("Invalid target object in behavior", targetObject + ". Is the object exported?");
|
80
82
|
continue;
|
81
83
|
}
|
82
|
-
if (typeof obj === "string")
|
84
|
+
if (typeof obj === "string") {
|
85
|
+
if (addedStrings.has(obj)) continue;
|
83
86
|
str += obj;
|
87
|
+
addedStrings.add(obj);
|
88
|
+
}
|
84
89
|
else if (typeof obj === "object") {
|
85
90
|
//@ts-ignore
|
86
91
|
if (obj.isObject3D) {
|
@@ -92,12 +97,16 @@
|
|
92
97
|
}
|
93
98
|
}
|
94
99
|
const res = (obj as any).getPath?.call(obj) as string;
|
100
|
+
if (addedStrings.has(res)) continue;
|
101
|
+
console.log(str, res, addedStrings)
|
95
102
|
str += res;
|
103
|
+
addedStrings.add(res);
|
96
104
|
}
|
97
105
|
if (i + 1 < targetObject.length) str += ", ";
|
98
106
|
}
|
99
107
|
str += " ]";
|
100
108
|
result = str;
|
109
|
+
addedStrings.clear();
|
101
110
|
}
|
102
111
|
else if (typeof targetObject === "object") {
|
103
112
|
//@ts-ignore
|
@@ -1110,7 +1110,10 @@
|
|
1110
1110
|
}
|
1111
1111
|
|
1112
1112
|
private internalOnBeforeRender(timestamp: DOMHighResTimeStamp, frame: XRFrame | null) {
|
1113
|
+
|
1114
|
+
this.renderer.info.autoReset = false;
|
1113
1115
|
|
1116
|
+
|
1114
1117
|
const sessionStarted = frame !== null && this._xrFrame === null;
|
1115
1118
|
this._xrFrame = frame;
|
1116
1119
|
if (sessionStarted) {
|
@@ -1314,6 +1317,9 @@
|
|
1314
1317
|
this.domElement.dispatchEvent(new CustomEvent("ready"));
|
1315
1318
|
ContextRegistry.dispatchCallback(ContextEvent.ContextFirstFrameRendered, this);
|
1316
1319
|
}
|
1320
|
+
|
1321
|
+
|
1322
|
+
this.renderer.info.reset();
|
1317
1323
|
}
|
1318
1324
|
|
1319
1325
|
renderNow(camera?: Camera) {
|