From 1646182876b7c9216aed898f228d20b0acde672c Mon Sep 17 00:00:00 2001 From: WestLangley Date: Mon, 8 Jun 2020 13:46:45 -0400 Subject: [PATCH] Support v3f attribute type --- examples/js/loaders/EXRLoader.js | 14 ++++++++++++++ examples/jsm/loaders/EXRLoader.js | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/examples/js/loaders/EXRLoader.js b/examples/js/loaders/EXRLoader.js index ee87ca209b..b1a86bacd2 100644 --- a/examples/js/loaders/EXRLoader.js +++ b/examples/js/loaders/EXRLoader.js @@ -1928,6 +1928,16 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade } + function parseV3f( dataView, offset ) { + + var x = parseFloat32( dataView, offset ); + var y = parseFloat32( dataView, offset ); + var z = parseFloat32( dataView, offset ); + + return [ x, y, z ]; + + } + function parseValue( dataView, buffer, offset, type, size ) { if ( type === 'string' || type === 'stringvector' || type === 'iccProfile' ) { @@ -1962,6 +1972,10 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade return parseV2f( dataView, offset ); + } else if ( type === 'v3f' ) { + + return parseV3f( dataView, offset ); + } else if ( type === 'int' ) { return parseInt32( dataView, offset ); diff --git a/examples/jsm/loaders/EXRLoader.js b/examples/jsm/loaders/EXRLoader.js index 23d74ea85e..8fce34a310 100644 --- a/examples/jsm/loaders/EXRLoader.js +++ b/examples/jsm/loaders/EXRLoader.js @@ -1942,6 +1942,16 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype } + function parseV3f( dataView, offset ) { + + var x = parseFloat32( dataView, offset ); + var y = parseFloat32( dataView, offset ); + var z = parseFloat32( dataView, offset ); + + return [ x, y, z ]; + + } + function parseValue( dataView, buffer, offset, type, size ) { if ( type === 'string' || type === 'stringvector' || type === 'iccProfile' ) { @@ -1976,6 +1986,10 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype return parseV2f( dataView, offset ); + } else if ( type === 'v3f' ) { + + return parseV3f( dataView, offset ); + } else if ( type === 'int' ) { return parseInt32( dataView, offset ); -- GitLab