convex-pixel
Version:
The library for creating pseudo 3d interactive scenes based on webgl
57 lines • 2.18 kB
JavaScript
import { __extends } from "tslib";
import * as PIXI from "pixi.js";
var SKIP_FRAMSE = 3;
var TRESHOLD = 0.05;
/**
* Service for tobii or openmv_fp
*/
var FaceTrackerService = /** @class */ (function (_super) {
__extends(FaceTrackerService, _super);
function FaceTrackerService() {
var _this = _super.call(this) || this;
_this._poss = [[0, 0], [0, 0], [0, 0], [0, 0]];
_this._f = SKIP_FRAMSE;
_this._errorHandler = function (client, ev) {
// need handler...
};
_this._messageHandler = function (evt) {
/*this._f--;
if (this._f > 0) return;
this._f = SKIP_FRAMSE;*/
if (String(evt.data).indexOf(":") !== -1) {
var data = String(evt.data)
.split(":")
.map(function (v) { return Number(v); });
if (_this._prev &&
(data[0] === _this._prev[0] || data[1] === _this._prev[0])) {
return;
}
_this._poss.shift();
_this._poss.push(data);
var total = _this._poss.length;
var sx = 0;
var sy = 0;
for (var i = 0; i < total; i++) {
sx += _this._poss[i][0];
sy += _this._poss[i][1];
}
_this._prev = data;
_this.emit("move", { x: sx / total, y: sy / total });
// tslint:disable-next-line: no-console
}
else
console.log(evt.data);
};
// put in the config
_this._client = new WebSocket("ws://127.0.0.1:8084/");
// handle connections
// this._client.onopen = this._openHandler;
// this._client.onerror = this._errorHandler;
_this._client.onmessage = _this._messageHandler;
return _this;
}
FaceTrackerService.prototype.destroy = function () { };
return FaceTrackerService;
}(PIXI.utils.EventEmitter));
export { FaceTrackerService };
//# sourceMappingURL=face-tracker-service.js.map