From 4e635bec41d1bb4dcd3f7ee4099b0178efe6393c Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Sun, 28 Jul 2013 09:36:39 +1000 Subject: [PATCH] Adding code for displaying .ctm files --- project_directory/db.sqlite3 | Bin 147456 -> 147456 bytes .../templates/three_d_viewer/bunny.ctm | Bin 0 -> 160791 bytes .../templates/three_d_viewer/ctm.js | 626 ++++++++++++++++++ .../templates/three_d_viewer/detail.html | 370 ++++++++++- .../three_d_viewer/glMatrix-0.9.5.min.js | 32 + .../templates/three_d_viewer/lzma.js | 510 ++++++++++++++ 6 files changed, 1537 insertions(+), 1 deletion(-) create mode 100644 project_directory/three_d_viewer/templates/three_d_viewer/bunny.ctm create mode 100755 project_directory/three_d_viewer/templates/three_d_viewer/ctm.js create mode 100755 project_directory/three_d_viewer/templates/three_d_viewer/glMatrix-0.9.5.min.js create mode 100755 project_directory/three_d_viewer/templates/three_d_viewer/lzma.js diff --git a/project_directory/db.sqlite3 b/project_directory/db.sqlite3 index 517581f62a7a086020d74e817e6cc05af9b03176..dd65a57ad4f2a682e8b12e0d7576690fac039842 100644 GIT binary patch delta 220 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�&4K-^wPdu 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 literal 0 HcmV?d00001 diff --git a/project_directory/three_d_viewer/templates/three_d_viewer/ctm.js b/project_directory/three_d_viewer/templates/three_d_viewer/ctm.js new file mode 100755 index 0000000..9ca085d --- /dev/null +++ b/project_directory/three_d_viewer/templates/three_d_viewer/ctm.js @@ -0,0 +1,626 @@ + +var CTM = CTM || {}; + +CTM.CompressionMethod = { + RAW: 0x00574152, + MG1: 0x0031474d, + MG2: 0x0032474d +}; + +CTM.Flags = { + NORMALS: 0x00000001 +}; + +CTM.File = function(stream){ + this.load(stream); +}; + +CTM.File.prototype.load = function(stream){ + this.header = new CTM.FileHeader(stream); + + this.body = new CTM.FileBody(this.header); + + this.getReader().read(stream, this.body); +}; + +CTM.File.prototype.getReader = function(){ + var reader; + + switch(this.header.compressionMethod){ + case CTM.CompressionMethod.RAW: + reader = new CTM.ReaderRAW(); + break; + case CTM.CompressionMethod.MG1: + reader = new CTM.ReaderMG1(); + break; + case CTM.CompressionMethod.MG2: + reader = new CTM.ReaderMG2(); + break; + } + + return reader; +}; + +CTM.FileHeader = function(stream){ + stream.readInt32(); //magic "OCTM" + this.fileFormat = stream.readInt32(); + this.compressionMethod = stream.readInt32(); + this.vertexCount = stream.readInt32(); + this.triangleCount = stream.readInt32(); + this.uvMapCount = stream.readInt32(); + this.attrMapCount = stream.readInt32(); + this.flags = stream.readInt32(); + this.comment = stream.readString(); +}; + +CTM.FileHeader.prototype.hasNormals = function(){ + return this.flags & CTM.Flags.NORMALS; +}; + +CTM.FileBody = function(header){ + var i = header.triangleCount * 3, + v = header.vertexCount * 3, + n = header.hasNormals()? header.vertexCount * 3: 0, + u = header.vertexCount * 2, + a = header.vertexCount * 4, + j = 0; + + var data = new ArrayBuffer( + (i + v + n + (u * header.uvMapCount) + (a * header.attrMapCount) ) * 4); + + this.indices = new Uint32Array(data, 0, i); + + this.vertices = new Float32Array(data, i * 4, v); + + if ( header.hasNormals() ){ + this.normals = new Float32Array(data, (i + v) * 4, n); + } + + if (header.uvMapCount){ + this.uvMaps = []; + for (j = 0; j < header.uvMapCount; ++ j){ + this.uvMaps[j] = {uv: new Float32Array(data, + (i + v + n + (j * u) ) * 4, u) }; + } + } + + if (header.attrMapCount){ + this.attrMaps = []; + for (j = 0; j < header.attrMapCount; ++ j){ + this.attrMaps[j] = {attr: new Float32Array(data, + (i + v + n + (u * header.uvMapCount) + (j * a) ) * 4, a) }; + } + } +}; + +CTM.FileMG2Header = function(stream){ + stream.readInt32(); //magic "MG2H" + this.vertexPrecision = stream.readFloat32(); + this.normalPrecision = stream.readFloat32(); + this.lowerBoundx = stream.readFloat32(); + this.lowerBoundy = stream.readFloat32(); + this.lowerBoundz = stream.readFloat32(); + this.higherBoundx = stream.readFloat32(); + this.higherBoundy = stream.readFloat32(); + this.higherBoundz = stream.readFloat32(); + this.divx = stream.readInt32(); + this.divy = stream.readInt32(); + this.divz = stream.readInt32(); + + this.sizex = (this.higherBoundx - this.lowerBoundx) / this.divx; + this.sizey = (this.higherBoundy - this.lowerBoundy) / this.divy; + this.sizez = (this.higherBoundz - this.lowerBoundz) / this.divz; +}; + +CTM.ReaderRAW = function(){ +}; + +CTM.ReaderRAW.prototype.read = function(stream, body){ + this.readIndices(stream, body.indices); + this.readVertices(stream, body.vertices); + + if (body.normals){ + this.readNormals(stream, body.normals); + } + if (body.uvMaps){ + this.readUVMaps(stream, body.uvMaps); + } + if (body.attrMaps){ + this.readAttrMaps(stream, body.attrMaps); + } +}; + +CTM.ReaderRAW.prototype.readIndices = function(stream, indices){ + stream.readInt32(); //magic "INDX" + stream.readArrayInt32(indices); +}; + +CTM.ReaderRAW.prototype.readVertices = function(stream, vertices){ + stream.readInt32(); //magic "VERT" + stream.readArrayFloat32(vertices); +}; + +CTM.ReaderRAW.prototype.readNormals = function(stream, normals){ + stream.readInt32(); //magic "NORM" + stream.readArrayFloat32(normals); +}; + +CTM.ReaderRAW.prototype.readUVMaps = function(stream, uvMaps){ + var i = 0; + for (; i < uvMaps.length; ++ i){ + stream.readInt32(); //magic "TEXC" + + uvMaps[i].name = stream.readString(); + uvMaps[i].filename = stream.readString(); + stream.readArrayFloat32(uvMaps[i].uv); + } +}; + +CTM.ReaderRAW.prototype.readAttrMaps = function(stream, attrMaps){ + var i = 0; + for (; i < attrMaps.length; ++ i){ + stream.readInt32(); //magic "ATTR" + + attrMaps[i].name = stream.readString(); + stream.readArrayFloat32(attrMaps[i].attr); + } +}; + +CTM.ReaderMG1 = function(){ +}; + +CTM.ReaderMG1.prototype.read = function(stream, body){ + this.readIndices(stream, body.indices); + this.readVertices(stream, body.vertices); + + if (body.normals){ + this.readNormals(stream, body.normals); + } + if (body.uvMaps){ + this.readUVMaps(stream, body.uvMaps); + } + if (body.attrMaps){ + this.readAttrMaps(stream, body.attrMaps); + } +}; + +CTM.ReaderMG1.prototype.readIndices = function(stream, indices){ + stream.readInt32(); //magic "INDX" + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(indices, 3); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + CTM.restoreIndices(indices, indices.length); +}; + +CTM.ReaderMG1.prototype.readVertices = function(stream, vertices){ + stream.readInt32(); //magic "VERT" + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(vertices, 1); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); +}; + +CTM.ReaderMG1.prototype.readNormals = function(stream, normals){ + stream.readInt32(); //magic "NORM" + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(normals, 3); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); +}; + +CTM.ReaderMG1.prototype.readUVMaps = function(stream, uvMaps){ + var i = 0; + for (; i < uvMaps.length; ++ i){ + stream.readInt32(); //magic "TEXC" + + uvMaps[i].name = stream.readString(); + uvMaps[i].filename = stream.readString(); + + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(uvMaps[i].uv, 2); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + } +}; + +CTM.ReaderMG1.prototype.readAttrMaps = function(stream, attrMaps){ + var i = 0; + for (; i < attrMaps.length; ++ i){ + stream.readInt32(); //magic "ATTR" + + attrMaps[i].name = stream.readString(); + + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(attrMaps[i].attr, 4); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + } +}; + +CTM.ReaderMG2 = function(){ +}; + +CTM.ReaderMG2.prototype.read = function(stream, body){ + this.MG2Header = new CTM.FileMG2Header(stream); + + this.readVertices(stream, body.vertices); + this.readIndices(stream, body.indices); + + if (body.normals){ + this.readNormals(stream, body); + } + if (body.uvMaps){ + this.readUVMaps(stream, body.uvMaps); + } + if (body.attrMaps){ + this.readAttrMaps(stream, body.attrMaps); + } +}; + +CTM.ReaderMG2.prototype.readVertices = function(stream, vertices){ + stream.readInt32(); //magic "VERT" + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(vertices, 3); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + var gridIndices = this.readGridIndices(stream, vertices); + + CTM.restoreVertices(vertices, this.MG2Header, gridIndices, this.MG2Header.vertexPrecision); +}; + +CTM.ReaderMG2.prototype.readGridIndices = function(stream, vertices){ + stream.readInt32(); //magic "GIDX" + stream.readInt32(); //packed size + + var gridIndices = new Uint32Array(vertices.length / 3); + + var interleaved = new CTM.InterleavedStream(gridIndices, 1); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + CTM.restoreGridIndices(gridIndices, gridIndices.length); + + return gridIndices; +}; + +CTM.ReaderMG2.prototype.readIndices = function(stream, indices){ + stream.readInt32(); //magic "INDX" + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(indices, 3); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + CTM.restoreIndices(indices, indices.length); +}; + +CTM.ReaderMG2.prototype.readNormals = function(stream, body){ + stream.readInt32(); //magic "NORM" + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(body.normals, 3); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + var smooth = CTM.calcSmoothNormals(body.indices, body.vertices); + + CTM.restoreNormals(body.normals, smooth, this.MG2Header.normalPrecision); +}; + +CTM.ReaderMG2.prototype.readUVMaps = function(stream, uvMaps){ + var i = 0; + for (; i < uvMaps.length; ++ i){ + stream.readInt32(); //magic "TEXC" + + uvMaps[i].name = stream.readString(); + uvMaps[i].filename = stream.readString(); + + var precision = stream.readFloat32(); + + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(uvMaps[i].uv, 2); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + CTM.restoreMap(uvMaps[i].uv, 2, precision); + } +}; + +CTM.ReaderMG2.prototype.readAttrMaps = function(stream, attrMaps){ + var i = 0; + for (; i < attrMaps.length; ++ i){ + stream.readInt32(); //magic "ATTR" + + attrMaps[i].name = stream.readString(); + + var precision = stream.readFloat32(); + + stream.readInt32(); //packed size + + var interleaved = new CTM.InterleavedStream(attrMaps[i].attr, 4); + LZMA.decompress(stream, stream, interleaved, interleaved.data.length); + + CTM.restoreMap(attrMaps[i].attr, 4, precision); + } +}; + +CTM.restoreIndices = function(indices, len){ + var i = 3; + if (len > 0){ + indices[2] += indices[0]; + } + for (; i < len; i += 3){ + indices[i] += indices[i - 3]; + + if (indices[i] === indices[i - 3]){ + indices[i + 1] += indices[i - 2]; + }else{ + indices[i + 1] += indices[i]; + } + + indices[i + 2] += indices[i]; + } +}; + +CTM.restoreGridIndices = function(gridIndices, len){ + var i = 1; + for (; i < len; ++ i){ + gridIndices[i] += gridIndices[i - 1]; + } +}; + +CTM.restoreVertices = function(vertices, grid, gridIndices, precision){ + var gridIdx, delta, x, y, z, + intVertices = new Uint32Array(vertices.buffer, vertices.byteOffset, vertices.length), + ydiv = grid.divx, zdiv = ydiv * grid.divy, + prevGridIdx = 0x7fffffff, prevDelta = 0, + i = 0, j = 0, len = gridIndices.length; + + for (; i < len; j += 3){ + x = gridIdx = gridIndices[i ++]; + + z = ~~(x / zdiv); + x -= ~~(z * zdiv); + y = ~~(x / ydiv); + x -= ~~(y * ydiv); + + delta = intVertices[j]; + if (gridIdx === prevGridIdx){ + delta += prevDelta; + } + + vertices[j] = grid.lowerBoundx + + x * grid.sizex + precision * delta; + vertices[j + 1] = grid.lowerBoundy + + y * grid.sizey + precision * intVertices[j + 1]; + vertices[j + 2] = grid.lowerBoundz + + z * grid.sizez + precision * intVertices[j + 2]; + + prevGridIdx = gridIdx; + prevDelta = delta; + } +}; + +CTM.restoreNormals = function(normals, smooth, precision){ + var ro, phi, theta, sinPhi, + nx, ny, nz, by, bz, len, + intNormals = new Uint32Array(normals.buffer, normals.byteOffset, normals.length), + i = 0, k = normals.length, + PI_DIV_2 = 3.141592653589793238462643 * 0.5; + + for (; i < k; i += 3){ + ro = intNormals[i] * precision; + phi = intNormals[i + 1]; + + if (phi === 0){ + normals[i] = smooth[i] * ro; + normals[i + 1] = smooth[i + 1] * ro; + normals[i + 2] = smooth[i + 2] * ro; + }else{ + + if (phi <= 4){ + theta = (intNormals[i + 2] - 2) * PI_DIV_2; + }else{ + theta = ( (intNormals[i + 2] * 4 / phi) - 2) * PI_DIV_2; + } + + phi *= precision * PI_DIV_2; + sinPhi = ro * Math.sin(phi); + + nx = sinPhi * Math.cos(theta); + ny = sinPhi * Math.sin(theta); + nz = ro * Math.cos(phi); + + bz = smooth[i + 1]; + by = smooth[i] - smooth[i + 2]; + + len = Math.sqrt(2 * bz * bz + by * by); + if (len > 1e-20){ + by /= len; + bz /= len; + } + + normals[i] = smooth[i] * nz + + (smooth[i + 1] * bz - smooth[i + 2] * by) * ny - bz * nx; + normals[i + 1] = smooth[i + 1] * nz - + (smooth[i + 2] + smooth[i] ) * bz * ny + by * nx; + normals[i + 2] = smooth[i + 2] * nz + + (smooth[i] * by + smooth[i + 1] * bz) * ny + bz * nx; + } + } +}; + +CTM.restoreMap = function(map, count, precision){ + var delta, value, + intMap = new Uint32Array(map.buffer, map.byteOffset, map.length), + i = 0, j, len = map.length; + + for (; i < count; ++ i){ + delta = 0; + + for (j = i; j < len; j += count){ + value = intMap[j]; + + delta += value & 1? -( (value + 1) >> 1): value >> 1; + + map[j] = delta * precision; + } + } +}; + +CTM.calcSmoothNormals = function(indices, vertices){ + var smooth = new Float32Array(vertices.length), + indx, indy, indz, nx, ny, nz, + v1x, v1y, v1z, v2x, v2y, v2z, len, + i, k; + + for (i = 0, k = indices.length; i < k;){ + indx = indices[i ++] * 3; + indy = indices[i ++] * 3; + indz = indices[i ++] * 3; + + v1x = vertices[indy] - vertices[indx]; + v2x = vertices[indz] - vertices[indx]; + v1y = vertices[indy + 1] - vertices[indx + 1]; + v2y = vertices[indz + 1] - vertices[indx + 1]; + v1z = vertices[indy + 2] - vertices[indx + 2]; + v2z = vertices[indz + 2] - vertices[indx + 2]; + + nx = v1y * v2z - v1z * v2y; + ny = v1z * v2x - v1x * v2z; + nz = v1x * v2y - v1y * v2x; + + len = Math.sqrt(nx * nx + ny * ny + nz * nz); + if (len > 1e-10){ + nx /= len; + ny /= len; + nz /= len; + } + + smooth[indx] += nx; + smooth[indx + 1] += ny; + smooth[indx + 2] += nz; + smooth[indy] += nx; + smooth[indy + 1] += ny; + smooth[indy + 2] += nz; + smooth[indz] += nx; + smooth[indz + 1] += ny; + smooth[indz + 2] += nz; + } + + for (i = 0, k = smooth.length; i < k; i += 3){ + len = Math.sqrt(smooth[i] * smooth[i] + + smooth[i + 1] * smooth[i + 1] + + smooth[i + 2] * smooth[i + 2]); + + if(len > 1e-10){ + smooth[i] /= len; + smooth[i + 1] /= len; + smooth[i + 2] /= len; + } + } + + return smooth; +}; + +CTM.isLittleEndian = (function(){ + var buffer = new ArrayBuffer(2), + bytes = new Uint8Array(buffer), + ints = new Uint16Array(buffer); + + bytes[0] = 1; + + return ints[0] === 1; +}()); + +CTM.InterleavedStream = function(data, count){ + this.data = new Uint8Array(data.buffer, data.byteOffset, data.byteLength); + this.offset = CTM.isLittleEndian? 3: 0; + this.count = count * 4; + this.len = this.data.length; +}; + +CTM.InterleavedStream.prototype.writeByte = function(value){ + this.data[this.offset] = value; + + this.offset += this.count; + if (this.offset >= this.len){ + + this.offset -= this.len - 4; + if (this.offset >= this.count){ + + this.offset -= this.count + (CTM.isLittleEndian? 1: -1); + } + } +}; + +CTM.Stream = function(data){ + this.data = data; + this.offset = 0; +}; + +CTM.Stream.prototype.TWO_POW_MINUS23 = Math.pow(2, -23); + +CTM.Stream.prototype.TWO_POW_MINUS126 = Math.pow(2, -126); + +CTM.Stream.prototype.readByte = function(){ + return this.data.charCodeAt(this.offset ++) & 0xff; +}; + +CTM.Stream.prototype.readInt32 = function(){ + var i = this.readByte(); + i |= this.readByte() << 8; + i |= this.readByte() << 16; + return i | (this.readByte() << 24); +}; + +CTM.Stream.prototype.readFloat32 = function(){ + var m = this.readByte(); + m += this.readByte() << 8; + + var b1 = this.readByte(); + var b2 = this.readByte(); + + m += (b1 & 0x7f) << 16; + var e = ( (b2 & 0x7f) << 1) | ( (b1 & 0x80) >>> 7); + var s = b2 & 0x80? -1: 1; + + if (e === 255){ + return m !== 0? NaN: s * Infinity; + } + if (e > 0){ + return s * (1 + (m * this.TWO_POW_MINUS23) ) * Math.pow(2, e - 127); + } + if (m !== 0){ + return s * m * this.TWO_POW_MINUS126; + } + return s * 0; +}; + +CTM.Stream.prototype.readString = function(){ + var len = this.readInt32(); + + this.offset += len; + + return this.data.substr(this.offset - len, len); +}; + +CTM.Stream.prototype.readArrayInt32 = function(array){ + var i = 0, len = array.length; + + while(i < len){ + array[i ++] = this.readInt32(); + } + + return array; +}; + +CTM.Stream.prototype.readArrayFloat32 = function(array){ + var i = 0, len = array.length; + + while(i < len){ + array[i ++] = this.readFloat32(); + } + + return array; +}; diff --git a/project_directory/three_d_viewer/templates/three_d_viewer/detail.html b/project_directory/three_d_viewer/templates/three_d_viewer/detail.html index 12002b5..8fccf43 100644 --- a/project_directory/three_d_viewer/templates/three_d_viewer/detail.html +++ b/project_directory/three_d_viewer/templates/three_d_viewer/detail.html @@ -1 +1,369 @@ -

{{ sample.name }}

\ No newline at end of file +#

{{ sample.name }}

+ + + + +js-openctm - Demo + + + + + + + + + + + + + +
+ +

+
male02.ctm - 842,718 vertices - 1,685,024 triangles - 6.00 MB - No texture

+Unpacked using js-openctm - Rendered using WebGL

+3D model courtesy of Cyberware
+
+ + + \ No newline at end of file diff --git a/project_directory/three_d_viewer/templates/three_d_viewer/glMatrix-0.9.5.min.js b/project_directory/three_d_viewer/templates/three_d_viewer/glMatrix-0.9.5.min.js new file mode 100755 index 0000000..e10c7bf --- /dev/null +++ b/project_directory/three_d_viewer/templates/three_d_viewer/glMatrix-0.9.5.min.js @@ -0,0 +1,32 @@ +// glMatrix v0.9.5 +glMatrixArrayType=typeof Float32Array!="undefined"?Float32Array:typeof WebGLFloatArray!="undefined"?WebGLFloatArray:Array;var vec3={};vec3.create=function(a){var b=new glMatrixArrayType(3);if(a){b[0]=a[0];b[1]=a[1];b[2]=a[2]}return b};vec3.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];return b};vec3.add=function(a,b,c){if(!c||a==c){a[0]+=b[0];a[1]+=b[1];a[2]+=b[2];return a}c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];return c}; +vec3.subtract=function(a,b,c){if(!c||a==c){a[0]-=b[0];a[1]-=b[1];a[2]-=b[2];return a}c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];return c};vec3.negate=function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];return b};vec3.scale=function(a,b,c){if(!c||a==c){a[0]*=b;a[1]*=b;a[2]*=b;return a}c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;return c}; +vec3.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=Math.sqrt(c*c+d*d+e*e);if(g){if(g==1){b[0]=c;b[1]=d;b[2]=e;return b}}else{b[0]=0;b[1]=0;b[2]=0;return b}g=1/g;b[0]=c*g;b[1]=d*g;b[2]=e*g;return b};vec3.cross=function(a,b,c){c||(c=a);var d=a[0],e=a[1];a=a[2];var g=b[0],f=b[1];b=b[2];c[0]=e*b-a*f;c[1]=a*g-d*b;c[2]=d*f-e*g;return c};vec3.length=function(a){var b=a[0],c=a[1];a=a[2];return Math.sqrt(b*b+c*c+a*a)};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}; +vec3.direction=function(a,b,c){c||(c=a);var d=a[0]-b[0],e=a[1]-b[1];a=a[2]-b[2];b=Math.sqrt(d*d+e*e+a*a);if(!b){c[0]=0;c[1]=0;c[2]=0;return c}b=1/b;c[0]=d*b;c[1]=e*b;c[2]=a*b;return c};vec3.lerp=function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);return d};vec3.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+"]"};var mat3={}; +mat3.create=function(a){var b=new glMatrixArrayType(9);if(a){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9]}return b};mat3.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return b};mat3.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a}; +mat3.transpose=function(a,b){if(!b||a==b){var c=a[1],d=a[2],e=a[5];a[1]=a[3];a[2]=a[6];a[3]=c;a[5]=a[7];a[6]=d;a[7]=e;return a}b[0]=a[0];b[1]=a[3];b[2]=a[6];b[3]=a[1];b[4]=a[4];b[5]=a[7];b[6]=a[2];b[7]=a[5];b[8]=a[8];return b};mat3.toMat4=function(a,b){b||(b=mat4.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=0;b[4]=a[3];b[5]=a[4];b[6]=a[5];b[7]=0;b[8]=a[6];b[9]=a[7];b[10]=a[8];b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b}; +mat3.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+"]"};var mat4={};mat4.create=function(a){var b=new glMatrixArrayType(16);if(a){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15]}return b}; +mat4.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b};mat4.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a}; +mat4.transpose=function(a,b){if(!b||a==b){var c=a[1],d=a[2],e=a[3],g=a[6],f=a[7],h=a[11];a[1]=a[4];a[2]=a[8];a[3]=a[12];a[4]=c;a[6]=a[9];a[7]=a[13];a[8]=d;a[9]=g;a[11]=a[14];a[12]=e;a[13]=f;a[14]=h;return a}b[0]=a[0];b[1]=a[4];b[2]=a[8];b[3]=a[12];b[4]=a[1];b[5]=a[5];b[6]=a[9];b[7]=a[13];b[8]=a[2];b[9]=a[6];b[10]=a[10];b[11]=a[14];b[12]=a[3];b[13]=a[7];b[14]=a[11];b[15]=a[15];return b}; +mat4.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],g=a[4],f=a[5],h=a[6],i=a[7],j=a[8],k=a[9],l=a[10],o=a[11],m=a[12],n=a[13],p=a[14];a=a[15];return m*k*h*e-j*n*h*e-m*f*l*e+g*n*l*e+j*f*p*e-g*k*p*e-m*k*d*i+j*n*d*i+m*c*l*i-b*n*l*i-j*c*p*i+b*k*p*i+m*f*d*o-g*n*d*o-m*c*h*o+b*n*h*o+g*c*p*o-b*f*p*o-j*f*d*a+g*k*d*a+j*c*h*a-b*k*h*a-g*c*l*a+b*f*l*a}; +mat4.inverse=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=a[4],h=a[5],i=a[6],j=a[7],k=a[8],l=a[9],o=a[10],m=a[11],n=a[12],p=a[13],r=a[14],s=a[15],A=c*h-d*f,B=c*i-e*f,t=c*j-g*f,u=d*i-e*h,v=d*j-g*h,w=e*j-g*i,x=k*p-l*n,y=k*r-o*n,z=k*s-m*n,C=l*r-o*p,D=l*s-m*p,E=o*s-m*r,q=1/(A*E-B*D+t*C+u*z-v*y+w*x);b[0]=(h*E-i*D+j*C)*q;b[1]=(-d*E+e*D-g*C)*q;b[2]=(p*w-r*v+s*u)*q;b[3]=(-l*w+o*v-m*u)*q;b[4]=(-f*E+i*z-j*y)*q;b[5]=(c*E-e*z+g*y)*q;b[6]=(-n*w+r*t-s*B)*q;b[7]=(k*w-o*t+m*B)*q;b[8]=(f*D-h*z+j*x)*q; +b[9]=(-c*D+d*z-g*x)*q;b[10]=(n*v-p*t+s*A)*q;b[11]=(-k*v+l*t-m*A)*q;b[12]=(-f*C+h*y-i*x)*q;b[13]=(c*C-d*y+e*x)*q;b[14]=(-n*u+p*B-r*A)*q;b[15]=(k*u-l*B+o*A)*q;return b};mat4.toRotationMat=function(a,b){b||(b=mat4.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b}; +mat4.toMat3=function(a,b){b||(b=mat3.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[4];b[4]=a[5];b[5]=a[6];b[6]=a[8];b[7]=a[9];b[8]=a[10];return b};mat4.toInverseMat3=function(a,b){var c=a[0],d=a[1],e=a[2],g=a[4],f=a[5],h=a[6],i=a[8],j=a[9],k=a[10],l=k*f-h*j,o=-k*g+h*i,m=j*g-f*i,n=c*l+d*o+e*m;if(!n)return null;n=1/n;b||(b=mat3.create());b[0]=l*n;b[1]=(-k*d+e*j)*n;b[2]=(h*d-e*f)*n;b[3]=o*n;b[4]=(k*c-e*i)*n;b[5]=(-h*c+e*g)*n;b[6]=m*n;b[7]=(-j*c+d*i)*n;b[8]=(f*c-d*g)*n;return b}; +mat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],f=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],o=a[9],m=a[10],n=a[11],p=a[12],r=a[13],s=a[14];a=a[15];var A=b[0],B=b[1],t=b[2],u=b[3],v=b[4],w=b[5],x=b[6],y=b[7],z=b[8],C=b[9],D=b[10],E=b[11],q=b[12],F=b[13],G=b[14];b=b[15];c[0]=A*d+B*h+t*l+u*p;c[1]=A*e+B*i+t*o+u*r;c[2]=A*g+B*j+t*m+u*s;c[3]=A*f+B*k+t*n+u*a;c[4]=v*d+w*h+x*l+y*p;c[5]=v*e+w*i+x*o+y*r;c[6]=v*g+w*j+x*m+y*s;c[7]=v*f+w*k+x*n+y*a;c[8]=z*d+C*h+D*l+E*p;c[9]=z*e+C*i+D*o+E*r;c[10]=z* +g+C*j+D*m+E*s;c[11]=z*f+C*k+D*n+E*a;c[12]=q*d+F*h+G*l+b*p;c[13]=q*e+F*i+G*o+b*r;c[14]=q*g+F*j+G*m+b*s;c[15]=q*f+F*k+G*n+b*a;return c};mat4.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1];b=b[2];c[0]=a[0]*d+a[4]*e+a[8]*b+a[12];c[1]=a[1]*d+a[5]*e+a[9]*b+a[13];c[2]=a[2]*d+a[6]*e+a[10]*b+a[14];return c}; +mat4.multiplyVec4=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2];b=b[3];c[0]=a[0]*d+a[4]*e+a[8]*g+a[12]*b;c[1]=a[1]*d+a[5]*e+a[9]*g+a[13]*b;c[2]=a[2]*d+a[6]*e+a[10]*g+a[14]*b;c[3]=a[3]*d+a[7]*e+a[11]*g+a[15]*b;return c}; +mat4.translate=function(a,b,c){var d=b[0],e=b[1];b=b[2];if(!c||a==c){a[12]=a[0]*d+a[4]*e+a[8]*b+a[12];a[13]=a[1]*d+a[5]*e+a[9]*b+a[13];a[14]=a[2]*d+a[6]*e+a[10]*b+a[14];a[15]=a[3]*d+a[7]*e+a[11]*b+a[15];return a}var g=a[0],f=a[1],h=a[2],i=a[3],j=a[4],k=a[5],l=a[6],o=a[7],m=a[8],n=a[9],p=a[10],r=a[11];c[0]=g;c[1]=f;c[2]=h;c[3]=i;c[4]=j;c[5]=k;c[6]=l;c[7]=o;c[8]=m;c[9]=n;c[10]=p;c[11]=r;c[12]=g*d+j*e+m*b+a[12];c[13]=f*d+k*e+n*b+a[13];c[14]=h*d+l*e+p*b+a[14];c[15]=i*d+o*e+r*b+a[15];return c}; +mat4.scale=function(a,b,c){var d=b[0],e=b[1];b=b[2];if(!c||a==c){a[0]*=d;a[1]*=d;a[2]*=d;a[3]*=d;a[4]*=e;a[5]*=e;a[6]*=e;a[7]*=e;a[8]*=b;a[9]*=b;a[10]*=b;a[11]*=b;return a}c[0]=a[0]*d;c[1]=a[1]*d;c[2]=a[2]*d;c[3]=a[3]*d;c[4]=a[4]*e;c[5]=a[5]*e;c[6]=a[6]*e;c[7]=a[7]*e;c[8]=a[8]*b;c[9]=a[9]*b;c[10]=a[10]*b;c[11]=a[11]*b;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c}; +mat4.rotate=function(a,b,c,d){var e=c[0],g=c[1];c=c[2];var f=Math.sqrt(e*e+g*g+c*c);if(!f)return null;if(f!=1){f=1/f;e*=f;g*=f;c*=f}var h=Math.sin(b),i=Math.cos(b),j=1-i;b=a[0];f=a[1];var k=a[2],l=a[3],o=a[4],m=a[5],n=a[6],p=a[7],r=a[8],s=a[9],A=a[10],B=a[11],t=e*e*j+i,u=g*e*j+c*h,v=c*e*j-g*h,w=e*g*j-c*h,x=g*g*j+i,y=c*g*j+e*h,z=e*c*j+g*h;e=g*c*j-e*h;g=c*c*j+i;if(d){if(a!=d){d[12]=a[12];d[13]=a[13];d[14]=a[14];d[15]=a[15]}}else d=a;d[0]=b*t+o*u+r*v;d[1]=f*t+m*u+s*v;d[2]=k*t+n*u+A*v;d[3]=l*t+p*u+B* +v;d[4]=b*w+o*x+r*y;d[5]=f*w+m*x+s*y;d[6]=k*w+n*x+A*y;d[7]=l*w+p*x+B*y;d[8]=b*z+o*e+r*g;d[9]=f*z+m*e+s*g;d[10]=k*z+n*e+A*g;d[11]=l*z+p*e+B*g;return d};mat4.rotateX=function(a,b,c){var d=Math.sin(b);b=Math.cos(b);var e=a[4],g=a[5],f=a[6],h=a[7],i=a[8],j=a[9],k=a[10],l=a[11];if(c){if(a!=c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15]}}else c=a;c[4]=e*b+i*d;c[5]=g*b+j*d;c[6]=f*b+k*d;c[7]=h*b+l*d;c[8]=e*-d+i*b;c[9]=g*-d+j*b;c[10]=f*-d+k*b;c[11]=h*-d+l*b;return c}; +mat4.rotateY=function(a,b,c){var d=Math.sin(b);b=Math.cos(b);var e=a[0],g=a[1],f=a[2],h=a[3],i=a[8],j=a[9],k=a[10],l=a[11];if(c){if(a!=c){c[4]=a[4];c[5]=a[5];c[6]=a[6];c[7]=a[7];c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15]}}else c=a;c[0]=e*b+i*-d;c[1]=g*b+j*-d;c[2]=f*b+k*-d;c[3]=h*b+l*-d;c[8]=e*d+i*b;c[9]=g*d+j*b;c[10]=f*d+k*b;c[11]=h*d+l*b;return c}; +mat4.rotateZ=function(a,b,c){var d=Math.sin(b);b=Math.cos(b);var e=a[0],g=a[1],f=a[2],h=a[3],i=a[4],j=a[5],k=a[6],l=a[7];if(c){if(a!=c){c[8]=a[8];c[9]=a[9];c[10]=a[10];c[11]=a[11];c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15]}}else c=a;c[0]=e*b+i*d;c[1]=g*b+j*d;c[2]=f*b+k*d;c[3]=h*b+l*d;c[4]=e*-d+i*b;c[5]=g*-d+j*b;c[6]=f*-d+k*b;c[7]=h*-d+l*b;return c}; +mat4.frustum=function(a,b,c,d,e,g,f){f||(f=mat4.create());var h=b-a,i=d-c,j=g-e;f[0]=e*2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=e*2/i;f[6]=0;f[7]=0;f[8]=(b+a)/h;f[9]=(d+c)/i;f[10]=-(g+e)/j;f[11]=-1;f[12]=0;f[13]=0;f[14]=-(g*e*2)/j;f[15]=0;return f};mat4.perspective=function(a,b,c,d,e){a=c*Math.tan(a*Math.PI/360);b=a*b;return mat4.frustum(-b,b,-a,a,c,d,e)}; +mat4.ortho=function(a,b,c,d,e,g,f){f||(f=mat4.create());var h=b-a,i=d-c,j=g-e;f[0]=2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=2/i;f[6]=0;f[7]=0;f[8]=0;f[9]=0;f[10]=-2/j;f[11]=0;f[12]=-(a+b)/h;f[13]=-(d+c)/i;f[14]=-(g+e)/j;f[15]=1;return f}; +mat4.lookAt=function(a,b,c,d){d||(d=mat4.create());var e=a[0],g=a[1];a=a[2];var f=c[0],h=c[1],i=c[2];c=b[1];var j=b[2];if(e==b[0]&&g==c&&a==j)return mat4.identity(d);var k,l,o,m;c=e-b[0];j=g-b[1];b=a-b[2];m=1/Math.sqrt(c*c+j*j+b*b);c*=m;j*=m;b*=m;k=h*b-i*j;i=i*c-f*b;f=f*j-h*c;if(m=Math.sqrt(k*k+i*i+f*f)){m=1/m;k*=m;i*=m;f*=m}else f=i=k=0;h=j*f-b*i;l=b*k-c*f;o=c*i-j*k;if(m=Math.sqrt(h*h+l*l+o*o)){m=1/m;h*=m;l*=m;o*=m}else o=l=h=0;d[0]=k;d[1]=h;d[2]=c;d[3]=0;d[4]=i;d[5]=l;d[6]=j;d[7]=0;d[8]=f;d[9]= +o;d[10]=b;d[11]=0;d[12]=-(k*e+i*g+f*a);d[13]=-(h*e+l*g+o*a);d[14]=-(c*e+j*g+b*a);d[15]=1;return d};mat4.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+"]"};quat4={};quat4.create=function(a){var b=new glMatrixArrayType(4);if(a){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3]}return b};quat4.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b}; +quat4.calculateW=function(a,b){var c=a[0],d=a[1],e=a[2];if(!b||a==b){a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e));return a}b[0]=c;b[1]=d;b[2]=e;b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e));return b};quat4.inverse=function(a,b){if(!b||a==b){a[0]*=1;a[1]*=1;a[2]*=1;return a}b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=a[3];return b};quat4.length=function(a){var b=a[0],c=a[1],d=a[2];a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)}; +quat4.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=Math.sqrt(c*c+d*d+e*e+g*g);if(f==0){b[0]=0;b[1]=0;b[2]=0;b[3]=0;return b}f=1/f;b[0]=c*f;b[1]=d*f;b[2]=e*f;b[3]=g*f;return b};quat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2];a=a[3];var f=b[0],h=b[1],i=b[2];b=b[3];c[0]=d*b+a*f+e*i-g*h;c[1]=e*b+a*h+g*f-d*i;c[2]=g*b+a*i+d*h-e*f;c[3]=a*b-d*f-e*h-g*i;return c}; +quat4.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2];b=a[0];var f=a[1],h=a[2];a=a[3];var i=a*d+f*g-h*e,j=a*e+h*d-b*g,k=a*g+b*e-f*d;d=-b*d-f*e-h*g;c[0]=i*a+d*-b+j*-h-k*-f;c[1]=j*a+d*-f+k*-b-i*-h;c[2]=k*a+d*-h+i*-f-j*-b;return c};quat4.toMat3=function(a,b){b||(b=mat3.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,i=e+e,j=c*f,k=c*h;c=c*i;var l=d*h;d=d*i;e=e*i;f=g*f;h=g*h;g=g*i;b[0]=1-(l+e);b[1]=k-g;b[2]=c+h;b[3]=k+g;b[4]=1-(j+e);b[5]=d-f;b[6]=c-h;b[7]=d+f;b[8]=1-(j+l);return b}; +quat4.toMat4=function(a,b){b||(b=mat4.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,i=e+e,j=c*f,k=c*h;c=c*i;var l=d*h;d=d*i;e=e*i;f=g*f;h=g*h;g=g*i;b[0]=1-(l+e);b[1]=k-g;b[2]=c+h;b[3]=0;b[4]=k+g;b[5]=1-(j+e);b[6]=d-f;b[7]=0;b[8]=c-h;b[9]=d+f;b[10]=1-(j+l);b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b};quat4.slerp=function(a,b,c,d){d||(d=a);var e=c;if(a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]<0)e=-1*c;d[0]=1-c*a[0]+e*b[0];d[1]=1-c*a[1]+e*b[1];d[2]=1-c*a[2]+e*b[2];d[3]=1-c*a[3]+e*b[3];return d}; +quat4.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}; \ No newline at end of file diff --git a/project_directory/three_d_viewer/templates/three_d_viewer/lzma.js b/project_directory/three_d_viewer/templates/three_d_viewer/lzma.js new file mode 100755 index 0000000..a214365 --- /dev/null +++ b/project_directory/three_d_viewer/templates/three_d_viewer/lzma.js @@ -0,0 +1,510 @@ + +var LZMA = LZMA || {}; + +LZMA.OutWindow = function(){ + this._windowSize = 0; +}; + +LZMA.OutWindow.prototype.create = function(windowSize){ + if ( (!this._buffer) || (this._windowSize !== windowSize) ){ + this._buffer = []; + } + this._windowSize = windowSize; + this._pos = 0; + this._streamPos = 0; +}; + +LZMA.OutWindow.prototype.flush = function(){ + var size = this._pos - this._streamPos; + if (size !== 0){ + while(size --){ + this._stream.writeByte(this._buffer[this._streamPos ++]); + } + if (this._pos >= this._windowSize){ + this._pos = 0; + } + this._streamPos = this._pos; + } +}; + +LZMA.OutWindow.prototype.releaseStream = function(){ + this.flush(); + this._stream = null; +}; + +LZMA.OutWindow.prototype.setStream = function(stream){ + this.releaseStream(); + this._stream = stream; +}; + +LZMA.OutWindow.prototype.init = function(solid){ + if (!solid){ + this._streamPos = 0; + this._pos = 0; + } +}; + +LZMA.OutWindow.prototype.copyBlock = function(distance, len){ + var pos = this._pos - distance - 1; + if (pos < 0){ + pos += this._windowSize; + } + while(len --){ + if (pos >= this._windowSize){ + pos = 0; + } + this._buffer[this._pos ++] = this._buffer[pos ++]; + if (this._pos >= this._windowSize){ + this.flush(); + } + } +}; + +LZMA.OutWindow.prototype.putByte = function(b){ + this._buffer[this._pos ++] = b; + if (this._pos >= this._windowSize){ + this.flush(); + } +}; + +LZMA.OutWindow.prototype.getByte = function(distance){ + var pos = this._pos - distance - 1; + if (pos < 0){ + pos += this._windowSize; + } + return this._buffer[pos]; +}; + +LZMA.RangeDecoder = function(){ +}; + +LZMA.RangeDecoder.prototype.setStream = function(stream){ + this._stream = stream; +}; + +LZMA.RangeDecoder.prototype.releaseStream = function(){ + this._stream = null; +}; + +LZMA.RangeDecoder.prototype.init = function(){ + var i = 5; + + this._code = 0; + this._range = -1; + + while(i --){ + this._code = (this._code << 8) | this._stream.readByte(); + } +}; + +LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits){ + var result = 0, i = numTotalBits, t; + + while(i --){ + this._range >>>= 1; + t = (this._code - this._range) >>> 31; + this._code -= this._range & (t - 1); + result = (result << 1) | (1 - t); + + if ( (this._range & 0xff000000) === 0){ + this._code = (this._code << 8) | this._stream.readByte(); + this._range <<= 8; + } + } + + return result; +}; + +LZMA.RangeDecoder.prototype.decodeBit = function(probs, index){ + var prob = probs[index], + newBound = (this._range >>> 11) * prob; + + if ( (this._code ^ 0x80000000) < (newBound ^ 0x80000000) ){ + this._range = newBound; + probs[index] += (2048 - prob) >>> 5; + if ( (this._range & 0xff000000) === 0){ + this._code = (this._code << 8) | this._stream.readByte(); + this._range <<= 8; + } + return 0; + } + + this._range -= newBound; + this._code -= newBound; + probs[index] -= prob >>> 5; + if ( (this._range & 0xff000000) === 0){ + this._code = (this._code << 8) | this._stream.readByte(); + this._range <<= 8; + } + return 1; +}; + +LZMA.initBitModels = function(probs, len){ + while(len --){ + probs[len] = 1024; + } +}; + +LZMA.BitTreeDecoder = function(numBitLevels){ + this._models = []; + this._numBitLevels = numBitLevels; +}; + +LZMA.BitTreeDecoder.prototype.init = function(){ + LZMA.initBitModels(this._models, 1 << this._numBitLevels); +}; + +LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder){ + var m = 1, i = this._numBitLevels; + + while(i --){ + m = (m << 1) | rangeDecoder.decodeBit(this._models, m); + } + return m - (1 << this._numBitLevels); +}; + +LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){ + var m = 1, symbol = 0, i = 0, bit; + + for (; i < this._numBitLevels; ++ i){ + bit = rangeDecoder.decodeBit(this._models, m); + m = (m << 1) | bit; + symbol |= bit << i; + } + return symbol; +}; + +LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels){ + var m = 1, symbol = 0, i = 0, bit; + + for (; i < numBitLevels; ++ i){ + bit = rangeDecoder.decodeBit(models, startIndex + m); + m = (m << 1) | bit; + symbol |= bit << i; + } + return symbol; +}; + +LZMA.LenDecoder = function(){ + this._choice = []; + this._lowCoder = []; + this._midCoder = []; + this._highCoder = new LZMA.BitTreeDecoder(8); + this._numPosStates = 0; +}; + +LZMA.LenDecoder.prototype.create = function(numPosStates){ + for (; this._numPosStates < numPosStates; ++ this._numPosStates){ + this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3); + this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3); + } +}; + +LZMA.LenDecoder.prototype.init = function(){ + var i = this._numPosStates; + LZMA.initBitModels(this._choice, 2); + while(i --){ + this._lowCoder[i].init(); + this._midCoder[i].init(); + } + this._highCoder.init(); +}; + +LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState){ + if (rangeDecoder.decodeBit(this._choice, 0) === 0){ + return this._lowCoder[posState].decode(rangeDecoder); + } + if (rangeDecoder.decodeBit(this._choice, 1) === 0){ + return 8 + this._midCoder[posState].decode(rangeDecoder); + } + return 16 + this._highCoder.decode(rangeDecoder); +}; + +LZMA.Decoder2 = function(){ + this._decoders = []; +}; + +LZMA.Decoder2.prototype.init = function(){ + LZMA.initBitModels(this._decoders, 0x300); +}; + +LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder){ + var symbol = 1; + + do{ + symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol); + }while(symbol < 0x100); + + return symbol & 0xff; +}; + +LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){ + var symbol = 1, matchBit, bit; + + do{ + matchBit = (matchByte >> 7) & 1; + matchByte <<= 1; + bit = rangeDecoder.decodeBit(this._decoders, ( (1 + matchBit) << 8) + symbol); + symbol = (symbol << 1) | bit; + if (matchBit !== bit){ + while(symbol < 0x100){ + symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol); + } + break; + } + }while(symbol < 0x100); + + return symbol & 0xff; +}; + +LZMA.LiteralDecoder = function(){ +}; + +LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){ + var i; + + if (this._coders + && (this._numPrevBits === numPrevBits) + && (this._numPosBits === numPosBits) ){ + return; + } + this._numPosBits = numPosBits; + this._posMask = (1 << numPosBits) - 1; + this._numPrevBits = numPrevBits; + + this._coders = []; + + i = 1 << (this._numPrevBits + this._numPosBits); + while(i --){ + this._coders[i] = new LZMA.Decoder2(); + } +}; + +LZMA.LiteralDecoder.prototype.init = function(){ + var i = 1 << (this._numPrevBits + this._numPosBits); + while(i --){ + this._coders[i].init(); + } +}; + +LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte){ + return this._coders[( (pos & this._posMask) << this._numPrevBits) + + ( (prevByte & 0xff) >>> (8 - this._numPrevBits) )]; +}; + +LZMA.Decoder = function(){ + this._outWindow = new LZMA.OutWindow(); + this._rangeDecoder = new LZMA.RangeDecoder(); + this._isMatchDecoders = []; + this._isRepDecoders = []; + this._isRepG0Decoders = []; + this._isRepG1Decoders = []; + this._isRepG2Decoders = []; + this._isRep0LongDecoders = []; + this._posSlotDecoder = []; + this._posDecoders = []; + this._posAlignDecoder = new LZMA.BitTreeDecoder(4); + this._lenDecoder = new LZMA.LenDecoder(); + this._repLenDecoder = new LZMA.LenDecoder(); + this._literalDecoder = new LZMA.LiteralDecoder(); + this._dictionarySize = -1; + this._dictionarySizeCheck = -1; + + this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6); + this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6); + this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6); + this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6); +}; + +LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize){ + if (dictionarySize < 0){ + return false; + } + if (this._dictionarySize !== dictionarySize){ + this._dictionarySize = dictionarySize; + this._dictionarySizeCheck = Math.max(this._dictionarySize, 1); + this._outWindow.create( Math.max(this._dictionarySizeCheck, 4096) ); + } + return true; +}; + +LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb){ + var numPosStates = 1 << pb; + + if (lc > 8 || lp > 4 || pb > 4){ + return false; + } + + this._literalDecoder.create(lp, lc); + + this._lenDecoder.create(numPosStates); + this._repLenDecoder.create(numPosStates); + this._posStateMask = numPosStates - 1; + + return true; +}; + +LZMA.Decoder.prototype.init = function(){ + var i = 4; + + this._outWindow.init(false); + + LZMA.initBitModels(this._isMatchDecoders, 192); + LZMA.initBitModels(this._isRep0LongDecoders, 192); + LZMA.initBitModels(this._isRepDecoders, 12); + LZMA.initBitModels(this._isRepG0Decoders, 12); + LZMA.initBitModels(this._isRepG1Decoders, 12); + LZMA.initBitModels(this._isRepG2Decoders, 12); + LZMA.initBitModels(this._posDecoders, 114); + + this._literalDecoder.init(); + + while(i --){ + this._posSlotDecoder[i].init(); + } + + this._lenDecoder.init(); + this._repLenDecoder.init(); + this._posAlignDecoder.init(); + this._rangeDecoder.init(); +}; + +LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize){ + var state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0, + posState, decoder2, len, distance, posSlot, numDirectBits; + + this._rangeDecoder.setStream(inStream); + this._outWindow.setStream(outStream); + + this.init(); + + while(outSize < 0 || nowPos64 < outSize){ + posState = nowPos64 & this._posStateMask; + + if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState) === 0){ + decoder2 = this._literalDecoder.getDecoder(nowPos64 ++, prevByte); + + if (state >= 7){ + prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0) ); + }else{ + prevByte = decoder2.decodeNormal(this._rangeDecoder); + } + this._outWindow.putByte(prevByte); + + state = state < 4? 0: state - (state < 10? 3: 6); + + }else{ + + if (this._rangeDecoder.decodeBit(this._isRepDecoders, state) === 1){ + len = 0; + if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) === 0){ + if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) === 0){ + state = state < 7? 9: 11; + len = 1; + } + }else{ + if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) === 0){ + distance = rep1; + }else{ + if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) === 0){ + distance = rep2; + }else{ + distance = rep3; + rep3 = rep2; + } + rep2 = rep1; + } + rep1 = rep0; + rep0 = distance; + } + if (len === 0){ + len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState); + state = state < 7? 8: 11; + } + }else{ + rep3 = rep2; + rep2 = rep1; + rep1 = rep0; + + len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState); + state = state < 7? 7: 10; + + posSlot = this._posSlotDecoder[len <= 5? len - 2: 3].decode(this._rangeDecoder); + if (posSlot >= 4){ + + numDirectBits = (posSlot >> 1) - 1; + rep0 = (2 | (posSlot & 1) ) << numDirectBits; + + if (posSlot < 14){ + rep0 += LZMA.reverseDecode2(this._posDecoders, + rep0 - posSlot - 1, this._rangeDecoder, numDirectBits); + }else{ + rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4; + rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder); + if (rep0 < 0){ + if (rep0 === -1){ + break; + } + return false; + } + } + }else{ + rep0 = posSlot; + } + } + + if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck){ + return false; + } + + this._outWindow.copyBlock(rep0, len); + nowPos64 += len; + prevByte = this._outWindow.getByte(0); + } + } + + this._outWindow.flush(); + this._outWindow.releaseStream(); + this._rangeDecoder.releaseStream(); + + return true; +}; + +LZMA.Decoder.prototype.setDecoderProperties = function(properties){ + var value, lc, lp, pb, dictionarySize; + + if (properties.size < 5){ + return false; + } + + value = properties.readByte(); + lc = value % 9; + value = ~~(value / 9); + lp = value % 5; + pb = ~~(value / 5); + + if ( !this.setLcLpPb(lc, lp, pb) ){ + return false; + } + + dictionarySize = properties.readByte(); + dictionarySize |= properties.readByte() << 8; + dictionarySize |= properties.readByte() << 16; + dictionarySize += properties.readByte() * 16777216; + + return this.setDictionarySize(dictionarySize); +}; + +LZMA.decompress = function(properties, inStream, outStream, outSize){ + var decoder = new LZMA.Decoder(); + + if ( !decoder.setDecoderProperties(properties) ){ + throw "Incorrect stream properties"; + } + + if ( !decoder.decode(inStream, outStream, outSize) ){ + throw "Error in data stream"; + } + + return true; +};