UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

85 lines (68 loc) 2.91 kB
// Class: starling.utils.MeshUtil var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; function openfl_geom_Vector3D() {return $import(require("openfl/geom/Vector3D"));} function openfl_geom_Matrix() {return $import(require("openfl/geom/Matrix"));} function openfl_geom_Matrix3D() {return $import(require("openfl/geom/Matrix3D"));} function starling_utils_Pool() {return require("./../../starling/utils/Pool");} function starling_utils_MathUtil() {return require("./../../starling/utils/MathUtil");} function openfl_geom_Rectangle() {return $import(require("openfl/geom/Rectangle"));} // Constructor var MeshUtil = function(){} // Meta MeshUtil.__name__ = "starling.utils.MeshUtil"; MeshUtil.__isInterface__ = false; MeshUtil.prototype = { }; MeshUtil.prototype.__class__ = MeshUtil.prototype.constructor = $hxClasses["starling.utils.MeshUtil"] = MeshUtil; // Init // Statics MeshUtil.containsPoint = function(vertexData,indexData,point) { var i; var result = false; var numIndices = indexData.get_numIndices(); var p0 = (starling_utils_Pool().default).getPoint(); var p1 = (starling_utils_Pool().default).getPoint(); var p2 = (starling_utils_Pool().default).getPoint(); var i1 = 0; while(i1 < numIndices) { vertexData.getPoint(indexData.getIndex(i1),"position",p0); vertexData.getPoint(indexData.getIndex(i1 + 1),"position",p1); vertexData.getPoint(indexData.getIndex(i1 + 2),"position",p2); if((starling_utils_MathUtil().default).isPointInTriangle(point,p0,p1,p2)) { result = true; i1 = numIndices; break; } i1 += 3; } (starling_utils_Pool().default).putPoint(p0); (starling_utils_Pool().default).putPoint(p1); (starling_utils_Pool().default).putPoint(p2); return result; } MeshUtil.calculateBounds = function(vertexData,sourceSpace,targetSpace,out) { if(out == null) { out = new (openfl_geom_Rectangle().default)(); } var stage = sourceSpace.get_stage(); if(sourceSpace.get_is3D() && stage != null) { stage.getCameraPosition(targetSpace,MeshUtil.sPoint3D); sourceSpace.getTransformationMatrix3D(targetSpace,MeshUtil.sMatrix3D); vertexData.getBoundsProjected("position",MeshUtil.sMatrix3D,MeshUtil.sPoint3D,0,-1,out); } else { sourceSpace.getTransformationMatrix(targetSpace,MeshUtil.sMatrix); vertexData.getBounds("position",MeshUtil.sMatrix,0,-1,out); } return out; } MeshUtil.sPoint3D = new (openfl_geom_Vector3D().default)() MeshUtil.sMatrix = new (openfl_geom_Matrix().default)() MeshUtil.sMatrix3D = new (openfl_geom_Matrix3D().default)() // Export exports.default = MeshUtil;