| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- System.register(["__unresolved_0", "cc", "__unresolved_1"], function (_export, _context) {
- "use strict";
- var _reporterNs, _cclegacy, ECSModel, ECSMask, _crd;
- function _reportPossibleCrUseOfECSModel(extras) {
- _reporterNs.report("ECSModel", "./ECSModel", _context.meta, extras);
- }
- _export("ECSMask", void 0);
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- }, function (_unresolved_2) {
- ECSModel = _unresolved_2.ECSModel;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "d18694PPbtGs5Ipgo/vaJBX", "ECSMask", undefined);
- /*
- * @Author: dgflash
- * @Date: 2022-05-12 14:18:44
- * @LastEditors: dgflash
- * @LastEditTime: 2022-05-24 11:09:49
- */
- _export("ECSMask", ECSMask = class ECSMask {
- constructor() {
- this.mask = void 0;
- this.size = 0;
- var length = Math.ceil((_crd && ECSModel === void 0 ? (_reportPossibleCrUseOfECSModel({
- error: Error()
- }), ECSModel) : ECSModel).compTid / 31);
- this.mask = new Uint32Array(length);
- this.size = length;
- }
- set(num) {
- // https://stackoverflow.com/questions/34896909/is-it-correct-to-set-bit-31-in-javascript
- // this.mask[((num / 32) >>> 0)] |= ((1 << (num % 32)) >>> 0);
- this.mask[num / 31 >>> 0] |= 1 << num % 31;
- }
- delete(num) {
- this.mask[num / 31 >>> 0] &= ~(1 << num % 31);
- }
- has(num) {
- return !!(this.mask[num / 31 >>> 0] & 1 << num % 31);
- }
- or(other) {
- for (var i = 0; i < this.size; i++) {
- // &操作符最大也只能对2^30进行操作,如果对2^31&2^31会得到负数。当然可以(2^31&2^31) >>> 0,这样多了一步右移操作。
- if (this.mask[i] & other.mask[i]) {
- return true;
- }
- }
- return false;
- }
- and(other) {
- for (var i = 0; i < this.size; i++) {
- if ((this.mask[i] & other.mask[i]) != this.mask[i]) {
- return false;
- }
- }
- return true;
- }
- clear() {
- for (var i = 0; i < this.size; i++) {
- this.mask[i] = 0;
- }
- }
- });
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=82858e8851a039376ee1b424b5f0d8a9fcd39ef8.js.map
|