Add existing to tracked
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
import ForEach from "./ForEach.js";
|
||||
import defined from "../../Core/defined.js";
|
||||
|
||||
/**
|
||||
* Iterate through the objects within the glTF and delete their pipeline extras object.
|
||||
*
|
||||
* @param {object} gltf A javascript object containing a glTF asset.
|
||||
* @returns {object} glTF with no pipeline extras.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function removePipelineExtras(gltf) {
|
||||
ForEach.shader(gltf, function (shader) {
|
||||
removeExtras(shader);
|
||||
});
|
||||
ForEach.buffer(gltf, function (buffer) {
|
||||
removeExtras(buffer);
|
||||
});
|
||||
ForEach.image(gltf, function (image) {
|
||||
removeExtras(image);
|
||||
});
|
||||
|
||||
removeExtras(gltf);
|
||||
|
||||
return gltf;
|
||||
}
|
||||
|
||||
function removeExtras(object) {
|
||||
if (!defined(object.extras)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (defined(object.extras._pipeline)) {
|
||||
delete object.extras._pipeline;
|
||||
}
|
||||
|
||||
if (Object.keys(object.extras).length === 0) {
|
||||
delete object.extras;
|
||||
}
|
||||
}
|
||||
|
||||
export default removePipelineExtras;
|
||||
Reference in New Issue
Block a user