1
0
forked from Rowland/EG
EG/Cesium-1.132/packages/engine/Source/Scene/GltfPipeline/getAccessorByteStride.js
2025-08-25 17:48:13 +08:00

30 lines
964 B
JavaScript

import numberOfComponentsForType from "./numberOfComponentsForType.js";
import ComponentDatatype from "../../Core/ComponentDatatype.js";
import defined from "../../Core/defined.js";
/**
* Returns the byte stride of the provided accessor.
* If the byteStride is 0, it is calculated based on type and componentType
*
* @param {object} gltf A javascript object containing a glTF asset.
* @param {object} accessor The accessor.
* @returns {number} The byte stride of the accessor.
*
* @private
*/
function getAccessorByteStride(gltf, accessor) {
const bufferViewId = accessor.bufferView;
if (defined(bufferViewId)) {
const bufferView = gltf.bufferViews[bufferViewId];
if (defined(bufferView.byteStride) && bufferView.byteStride > 0) {
return bufferView.byteStride;
}
}
return (
ComponentDatatype.getSizeInBytes(accessor.componentType) *
numberOfComponentsForType(accessor.type)
);
}
export default getAccessorByteStride;