import Cartesian2 from '../Core/Cartesian2.js'; import Cartesian3 from '../Core/Cartesian3.js'; import Cartesian4 from '../Core/Cartesian4.js'; import ComponentDatatype from '../Core/ComponentDatatype.js'; import Matrix2 from '../Core/Matrix2.js'; import Matrix3 from '../Core/Matrix3.js'; import Matrix4 from '../Core/Matrix4.js'; var ComponentsPerAttribute = { SCALAR : 1, VEC2 : 2, VEC3 : 3, VEC4 : 4, MAT2 : 4, MAT3 : 9, MAT4 : 16 }; var ClassPerType = { SCALAR : undefined, VEC2 : Cartesian2, VEC3 : Cartesian3, VEC4 : Cartesian4, MAT2 : Matrix2, MAT3 : Matrix3, MAT4 : Matrix4 }; /** * @private */ function getBinaryAccessor(accessor) { var componentType = accessor.componentType; var componentDatatype; if (typeof componentType === 'string') { componentDatatype = ComponentDatatype.fromName(componentType); } else { componentDatatype = componentType; } var componentsPerAttribute = ComponentsPerAttribute[accessor.type]; var classType = ClassPerType[accessor.type]; return { componentsPerAttribute : componentsPerAttribute, classType : classType, createArrayBufferView : function(buffer, byteOffset, length) { return ComponentDatatype.createArrayBufferView(componentDatatype, buffer, byteOffset, componentsPerAttribute * length); } }; } export default getBinaryAccessor;