UNPKG

ami.js

Version:

<p align="center"> <img src="https://cloud.githubusercontent.com/assets/214063/23213764/78ade038-f90c-11e6-8208-4fcade5f3832.png" width="60%"> </p>

149 lines (125 loc) 4.59 kB
/** * Packing functions. * * @module core/pack */ export default class Pack { /** * */ // static packTo8BitsTexture(bits, channels, frame, textureSize, startVoxel, stopVoxel) { // let packed = { // textureType: null, // data: null // }; // let packIndex = 0; // let frameIndex = 0; // let inFrameIndex = 0; // let frameDimension = frame[0].rows * frame[0].columns; // let data = null; // if (bits === 8 && channels === 1) { // let data = new Uint8Array(textureSize * textureSize * 1); // for (let i = startVoxel; i < stopVoxel; i++) { // /*jshint bitwise: false*/ // frameIndex = ~~(i / frameDimension); // inFrameIndex = i % (frameDimension); // /*jshint bitwise: true*/ // data[packIndex] = frame[frameIndex].pixelData[inFrameIndex]; // packIndex++; // } // packed.textureType = THREE.RGBFormat; // packed.data = data; // } else if (bits === 16 && channels === 1) { // let data = new Uint8Array(textureSize * textureSize * 2); // for (let i = startVoxel; i < stopVoxel; i++) { // /*jshint bitwise: false*/ // frameIndex = ~~(i / frameDimension); // inFrameIndex = i % (frameDimension); // /*jshint bitwise: true*/ // // slow! // //let asb = VJS.core.pack.uint16ToAlphaLuminance(frame[frameIndex].pixelData[inFrameIndex]); // let raw = frame[frameIndex].pixelData[inFrameIndex]; // /*jshint bitwise: false*/ // let lsb = raw & 0x00FF; // let msb = (raw >>> 8) & 0x00FF; // /*jshint bitwise: true*/ // data[2 * packIndex] = lsb; // data[2 * packIndex + 1] = msb; // packIndex++; // } // packed.textureType = THREE.LuminanceAlphaFormat; // packed.data = data; // } else if (bits === 32 && channels === 1) { // let data = new Uint8Array(textureSize * textureSize * 4); // for (let i = startVoxel; i < stopVoxel; i++) { // /*jshint bitwise: false*/ // frameIndex = ~~(i / frameDimension); // inFrameIndex = i % (frameDimension); // /*jshint bitwise: true*/ // // slow! // //let asb = VJS.core.pack.uint16ToAlphaLuminance(frame[frameIndex].pixelData[inFrameIndex]); // let raw = frame[frameIndex].pixelData[inFrameIndex]; // /*jshint bitwise: false*/ // let b0 = raw & 0x000000FF; // let b1 = (raw >>> 8) & 0x000000FF; // let b2 = (raw >>> 8) & 0x000000FF; // let b3 = (raw >>> 8) & 0x000000FF; // // let lsb1 = raw & 0xFF; // // let msb1 = (raw >> 8) & 0xFF; // /*jshint bitwise: true*/ // data[4 * packIndex] = b0; // data[4 * packIndex + 1] = b1; // data[4 * packIndex + 2] = b2; // data[4 * packIndex + 3] = b3; // packIndex++; // } // packed.textureType = THREE.RGBAFormat; // packed.data = data; // } else if (bits === 8 && channels === 3) { // let data = new Uint8Array(textureSize * textureSize * 3); // for (let i = startVoxel; i < stopVoxel; i++) { // /*jshint bitwise: false*/ // frameIndex = ~~(i / frameDimension); // inFrameIndex = i % (frameDimension); // /*jshint bitwise: true*/ // data[3 * packIndex] = frame[frameIndex].pixelData[3 * inFrameIndex]; // data[3 * packIndex + 1] = frame[frameIndex].pixelData[3 * inFrameIndex + 1]; // data[3 * packIndex + 2] = frame[frameIndex].pixelData[3 * inFrameIndex + 2]; // packIndex++; // } // packed.textureType = THREE.LuminanceFormat; // packed.data = data; // } // return packed; // } } // 'use strict'; // var VJS = VJS || {}; // VJS.core = VJS.core || {}; // /** // * @constructor // * @class // * @memberOf VJS.core // * @public // */ // VJS.core.pack = VJS.core.pack || {}; // // Deal with endianess // // do not add a if there af is is slow in bog loops // // add more functions // VJS.core.pack.uint16ToAlphaLuminance = function(uint16, ab) { // /*jshint bitwise: false*/ // var lsb = uint16 & 0xFF; // var msb = (uint16 >> 8) & 0xFF; // /*jshint bitwise: true*/ // ab = [lsb, msb]; // }; // VJS.core.pack.uint8ToLuminance = function(uint8) { // return uint8; // }; // VJS.core.pack.uint8V3ToRGB = function(uint8V3) { // return uint8V3; // }; // /*** Exports ***/ // var moduleType = typeof module; // if ((moduleType !== 'undefined') && module.exports) { // module.exports = VJS.core.pack; // }