mirror of
https://gitlab.com/Shinobi-Systems/ShinobiCE.git
synced 2025-03-09 15:40:15 +00:00
Shinobi CE officially lands on Gitlab
This commit is contained in:
commit
f1406d4eec
431 changed files with 118157 additions and 0 deletions
23
tools/ffmpegToWeb/Player/broadway/utils/Size.js
Normal file
23
tools/ffmpegToWeb/Player/broadway/utils/Size.js
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
* Represents a 2-dimensional size value.
|
||||
*/
|
||||
|
||||
function Size(w, h) {
|
||||
this.w = w;
|
||||
this.h = h;
|
||||
}
|
||||
|
||||
Size.prototype = {
|
||||
toString: function () {
|
||||
return "(" + this.w + ", " + this.h + ")";
|
||||
},
|
||||
getHalfSize: function() {
|
||||
return new Size(this.w >>> 1, this.h >>> 1);
|
||||
},
|
||||
length: function() {
|
||||
return this.w * this.h;
|
||||
}
|
||||
}
|
||||
module.exports = Size;
|
||||
12
tools/ffmpegToWeb/Player/broadway/utils/assert.js
Normal file
12
tools/ffmpegToWeb/Player/broadway/utils/assert.js
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
"use strict";
|
||||
|
||||
var error = require('./error');
|
||||
|
||||
function assert(condition, message) {
|
||||
if (!condition) {
|
||||
error(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports = assert;
|
||||
8
tools/ffmpegToWeb/Player/broadway/utils/error.js
Normal file
8
tools/ffmpegToWeb/Player/broadway/utils/error.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
"use strict";
|
||||
|
||||
function error(message) {
|
||||
console.error(message);
|
||||
console.trace();
|
||||
}
|
||||
|
||||
module.exports = error;
|
||||
117
tools/ffmpegToWeb/Player/broadway/utils/glUtils.js
Normal file
117
tools/ffmpegToWeb/Player/broadway/utils/glUtils.js
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
"use strict";
|
||||
|
||||
var Matrix = require('sylvester.js').Matrix;
|
||||
var Vector = require('sylvester.js').Vector;
|
||||
var $M = Matrix.create;
|
||||
|
||||
|
||||
// augment Sylvester some
|
||||
Matrix.Translation = function (v)
|
||||
{
|
||||
if (v.elements.length == 2) {
|
||||
var r = Matrix.I(3);
|
||||
r.elements[2][0] = v.elements[0];
|
||||
r.elements[2][1] = v.elements[1];
|
||||
return r;
|
||||
}
|
||||
|
||||
if (v.elements.length == 3) {
|
||||
var r = Matrix.I(4);
|
||||
r.elements[0][3] = v.elements[0];
|
||||
r.elements[1][3] = v.elements[1];
|
||||
r.elements[2][3] = v.elements[2];
|
||||
return r;
|
||||
}
|
||||
|
||||
throw "Invalid length for Translation";
|
||||
}
|
||||
|
||||
Matrix.prototype.flatten = function ()
|
||||
{
|
||||
var result = [];
|
||||
if (this.elements.length == 0)
|
||||
return [];
|
||||
|
||||
|
||||
for (var j = 0; j < this.elements[0].length; j++)
|
||||
for (var i = 0; i < this.elements.length; i++)
|
||||
result.push(this.elements[i][j]);
|
||||
return result;
|
||||
}
|
||||
|
||||
Matrix.prototype.ensure4x4 = function()
|
||||
{
|
||||
if (this.elements.length == 4 &&
|
||||
this.elements[0].length == 4)
|
||||
return this;
|
||||
|
||||
if (this.elements.length > 4 ||
|
||||
this.elements[0].length > 4)
|
||||
return null;
|
||||
|
||||
for (var i = 0; i < this.elements.length; i++) {
|
||||
for (var j = this.elements[i].length; j < 4; j++) {
|
||||
if (i == j)
|
||||
this.elements[i].push(1);
|
||||
else
|
||||
this.elements[i].push(0);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = this.elements.length; i < 4; i++) {
|
||||
if (i == 0)
|
||||
this.elements.push([1, 0, 0, 0]);
|
||||
else if (i == 1)
|
||||
this.elements.push([0, 1, 0, 0]);
|
||||
else if (i == 2)
|
||||
this.elements.push([0, 0, 1, 0]);
|
||||
else if (i == 3)
|
||||
this.elements.push([0, 0, 0, 1]);
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
|
||||
Vector.prototype.flatten = function ()
|
||||
{
|
||||
return this.elements;
|
||||
};
|
||||
|
||||
|
||||
|
||||
//
|
||||
// gluPerspective
|
||||
//
|
||||
function makePerspective(fovy, aspect, znear, zfar)
|
||||
{
|
||||
var ymax = znear * Math.tan(fovy * Math.PI / 360.0);
|
||||
var ymin = -ymax;
|
||||
var xmin = ymin * aspect;
|
||||
var xmax = ymax * aspect;
|
||||
|
||||
return makeFrustum(xmin, xmax, ymin, ymax, znear, zfar);
|
||||
}
|
||||
|
||||
//
|
||||
// glFrustum
|
||||
//
|
||||
function makeFrustum(left, right,
|
||||
bottom, top,
|
||||
znear, zfar)
|
||||
{
|
||||
var X = 2*znear/(right-left);
|
||||
var Y = 2*znear/(top-bottom);
|
||||
var A = (right+left)/(right-left);
|
||||
var B = (top+bottom)/(top-bottom);
|
||||
var C = -(zfar+znear)/(zfar-znear);
|
||||
var D = -2*zfar*znear/(zfar-znear);
|
||||
|
||||
return $M([[X, 0, A, 0],
|
||||
[0, Y, B, 0],
|
||||
[0, 0, C, D],
|
||||
[0, 0, -1, 0]]);
|
||||
}
|
||||
|
||||
module.exports.makePerspective = makePerspective;
|
||||
|
||||
17
tools/ffmpegToWeb/Player/broadway/utils/inherit.js
Normal file
17
tools/ffmpegToWeb/Player/broadway/utils/inherit.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
"use strict";
|
||||
|
||||
/**
|
||||
* Creates a new prototype object derived from another objects prototype along with a list of additional properties.
|
||||
*
|
||||
* @param base object whose prototype to use as the created prototype object's prototype
|
||||
* @param properties additional properties to add to the created prototype object
|
||||
*/
|
||||
function inherit(base, properties) {
|
||||
var prot = Object.create(base.prototype);
|
||||
for (var p in properties) {
|
||||
prot[p] = properties[p];
|
||||
}
|
||||
return prot;
|
||||
}
|
||||
|
||||
module.exports = inherit;
|
||||
Loading…
Add table
Add a link
Reference in a new issue