getAccessorByteStride.js 1.0 KB

1234567891011121314151617181920212223242526
  1. import numberOfComponentsForType from './numberOfComponentsForType.js'
  2. import ComponentDatatype from '../../Core/ComponentDatatype.js'
  3. import defined from '../../Core/defined.js'
  4. /**
  5. * Returns the byte stride of the provided accessor.
  6. * If the byteStride is 0, it is calculated based on type and componentType
  7. *
  8. * @param {Object} gltf A javascript object containing a glTF asset.
  9. * @param {Object} accessor The accessor.
  10. * @returns {Number} The byte stride of the accessor.
  11. *
  12. * @private
  13. */
  14. function getAccessorByteStride(gltf, accessor) {
  15. var bufferViewId = accessor.bufferView;
  16. if (defined(bufferViewId)) {
  17. var bufferView = gltf.bufferViews[bufferViewId];
  18. if (defined(bufferView.byteStride) && bufferView.byteStride > 0) {
  19. return bufferView.byteStride;
  20. }
  21. }
  22. return ComponentDatatype.getSizeInBytes(accessor.componentType) * numberOfComponentsForType(accessor.type);
  23. }
  24. export default getAccessorByteStride;