UNPKG

phaser4-rex-plugins

Version:
47 lines (37 loc) 1.39 kB
var UpdateViewMatrix = function (model, calcMatrix) { var gameObject = model.parent; var projectionMatrix = model._globalData.projectionMatrix; var matrix = model.viewMatrix; // Reset to identity matrix matrix.loadIdentity(); // Apply scale var modelWidth = gameObject.width; var modelHeight = gameObject.height; var canvasWidth = projectionMatrix.width; var canvasHeight = projectionMatrix.height var scaleX = (calcMatrix.scaleX * modelWidth) / canvasWidth; var scaleY = (calcMatrix.scaleY * modelHeight) / canvasHeight; if (modelWidth > modelHeight) { scaleY *= modelWidth / modelHeight; } else { scaleX *= modelHeight / modelWidth; } matrix.scale(scaleX, scaleY); // Apply rotate matrix.rotate(-calcMatrix.rotationNormalized); // Apply translate matrix.translate( projectionMatrix.toLocalX(calcMatrix.getX(0, 0)), projectionMatrix.toLocalY(calcMatrix.getY(0, 0)) ); var modelMatrix = model._modelMatrix; // Offset for origin // modelMatrix.translate( // modelMatrix._width * (0.5 - gameObject.originX), // modelMatrix._height * (gameObject.originY - 0.5) // ); // Apply model matrix matrix.multiplyByMatrix(modelMatrix); return matrix; } export default UpdateViewMatrix;