@esengine/ecs-framework 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +277 -0
  3. package/bin/Core.d.ts +198 -0
  4. package/bin/Core.d.ts.map +1 -0
  5. package/bin/Core.js +249 -0
  6. package/bin/Core.js.map +1 -0
  7. package/bin/ECS/Component.d.ts +119 -0
  8. package/bin/ECS/Component.d.ts.map +1 -0
  9. package/bin/ECS/Component.js +129 -0
  10. package/bin/ECS/Component.js.map +1 -0
  11. package/bin/ECS/Components/IUpdatable.d.ts +22 -0
  12. package/bin/ECS/Components/IUpdatable.d.ts.map +1 -0
  13. package/bin/ECS/Components/IUpdatable.js +17 -0
  14. package/bin/ECS/Components/IUpdatable.js.map +1 -0
  15. package/bin/ECS/Components/SceneComponent.d.ts +40 -0
  16. package/bin/ECS/Components/SceneComponent.d.ts.map +1 -0
  17. package/bin/ECS/Components/SceneComponent.js +57 -0
  18. package/bin/ECS/Components/SceneComponent.js.map +1 -0
  19. package/bin/ECS/Core/ComponentStorage.d.ts +182 -0
  20. package/bin/ECS/Core/ComponentStorage.d.ts.map +1 -0
  21. package/bin/ECS/Core/ComponentStorage.js +346 -0
  22. package/bin/ECS/Core/ComponentStorage.js.map +1 -0
  23. package/bin/ECS/Core/EventSystem.d.ts +236 -0
  24. package/bin/ECS/Core/EventSystem.d.ts.map +1 -0
  25. package/bin/ECS/Core/EventSystem.js +476 -0
  26. package/bin/ECS/Core/EventSystem.js.map +1 -0
  27. package/bin/ECS/Core/FluentAPI.d.ts +392 -0
  28. package/bin/ECS/Core/FluentAPI.d.ts.map +1 -0
  29. package/bin/ECS/Core/FluentAPI.js +575 -0
  30. package/bin/ECS/Core/FluentAPI.js.map +1 -0
  31. package/bin/ECS/Core/QuerySystem.d.ts +574 -0
  32. package/bin/ECS/Core/QuerySystem.d.ts.map +1 -0
  33. package/bin/ECS/Core/QuerySystem.js +1356 -0
  34. package/bin/ECS/Core/QuerySystem.js.map +1 -0
  35. package/bin/ECS/CoreEvents.d.ts +19 -0
  36. package/bin/ECS/CoreEvents.d.ts.map +1 -0
  37. package/bin/ECS/CoreEvents.js +20 -0
  38. package/bin/ECS/CoreEvents.js.map +1 -0
  39. package/bin/ECS/Entity.d.ts +585 -0
  40. package/bin/ECS/Entity.d.ts.map +1 -0
  41. package/bin/ECS/Entity.js +1079 -0
  42. package/bin/ECS/Entity.js.map +1 -0
  43. package/bin/ECS/Scene.d.ts +210 -0
  44. package/bin/ECS/Scene.d.ts.map +1 -0
  45. package/bin/ECS/Scene.js +267 -0
  46. package/bin/ECS/Scene.js.map +1 -0
  47. package/bin/ECS/Systems/EntitySystem.d.ts +185 -0
  48. package/bin/ECS/Systems/EntitySystem.d.ts.map +1 -0
  49. package/bin/ECS/Systems/EntitySystem.js +278 -0
  50. package/bin/ECS/Systems/EntitySystem.js.map +1 -0
  51. package/bin/ECS/Systems/IntervalSystem.d.ts +33 -0
  52. package/bin/ECS/Systems/IntervalSystem.d.ts.map +1 -0
  53. package/bin/ECS/Systems/IntervalSystem.js +50 -0
  54. package/bin/ECS/Systems/IntervalSystem.js.map +1 -0
  55. package/bin/ECS/Systems/PassiveSystem.d.ts +20 -0
  56. package/bin/ECS/Systems/PassiveSystem.d.ts.map +1 -0
  57. package/bin/ECS/Systems/PassiveSystem.js +21 -0
  58. package/bin/ECS/Systems/PassiveSystem.js.map +1 -0
  59. package/bin/ECS/Systems/ProcessingSystem.d.ts +24 -0
  60. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +1 -0
  61. package/bin/ECS/Systems/ProcessingSystem.js +22 -0
  62. package/bin/ECS/Systems/ProcessingSystem.js.map +1 -0
  63. package/bin/ECS/Systems/index.d.ts +5 -0
  64. package/bin/ECS/Systems/index.d.ts.map +1 -0
  65. package/bin/ECS/Systems/index.js +6 -0
  66. package/bin/ECS/Systems/index.js.map +1 -0
  67. package/bin/ECS/Transform.d.ts +178 -0
  68. package/bin/ECS/Transform.d.ts.map +1 -0
  69. package/bin/ECS/Transform.js +249 -0
  70. package/bin/ECS/Transform.js.map +1 -0
  71. package/bin/ECS/Utils/Bits.d.ts +74 -0
  72. package/bin/ECS/Utils/Bits.d.ts.map +1 -0
  73. package/bin/ECS/Utils/Bits.js +142 -0
  74. package/bin/ECS/Utils/Bits.js.map +1 -0
  75. package/bin/ECS/Utils/ComponentTypeManager.d.ts +50 -0
  76. package/bin/ECS/Utils/ComponentTypeManager.d.ts.map +1 -0
  77. package/bin/ECS/Utils/ComponentTypeManager.js +84 -0
  78. package/bin/ECS/Utils/ComponentTypeManager.js.map +1 -0
  79. package/bin/ECS/Utils/EntityList.d.ts +108 -0
  80. package/bin/ECS/Utils/EntityList.d.ts.map +1 -0
  81. package/bin/ECS/Utils/EntityList.js +249 -0
  82. package/bin/ECS/Utils/EntityList.js.map +1 -0
  83. package/bin/ECS/Utils/EntityProcessorList.d.ts +53 -0
  84. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +1 -0
  85. package/bin/ECS/Utils/EntityProcessorList.js +96 -0
  86. package/bin/ECS/Utils/EntityProcessorList.js.map +1 -0
  87. package/bin/ECS/Utils/IdentifierPool.d.ts +18 -0
  88. package/bin/ECS/Utils/IdentifierPool.d.ts.map +1 -0
  89. package/bin/ECS/Utils/IdentifierPool.js +27 -0
  90. package/bin/ECS/Utils/IdentifierPool.js.map +1 -0
  91. package/bin/ECS/Utils/Matcher.d.ts +63 -0
  92. package/bin/ECS/Utils/Matcher.d.ts.map +1 -0
  93. package/bin/ECS/Utils/Matcher.js +140 -0
  94. package/bin/ECS/Utils/Matcher.js.map +1 -0
  95. package/bin/ECS/Utils/index.d.ts +7 -0
  96. package/bin/ECS/Utils/index.d.ts.map +1 -0
  97. package/bin/ECS/Utils/index.js +8 -0
  98. package/bin/ECS/Utils/index.js.map +1 -0
  99. package/bin/ECS/index.d.ts +8 -0
  100. package/bin/ECS/index.d.ts.map +1 -0
  101. package/bin/ECS/index.js +9 -0
  102. package/bin/ECS/index.js.map +1 -0
  103. package/bin/Math/Edge.d.ts +23 -0
  104. package/bin/Math/Edge.d.ts.map +1 -0
  105. package/bin/Math/Edge.js +24 -0
  106. package/bin/Math/Edge.js.map +1 -0
  107. package/bin/Math/MathHelper.d.ts +75 -0
  108. package/bin/Math/MathHelper.d.ts.map +1 -0
  109. package/bin/Math/MathHelper.js +91 -0
  110. package/bin/Math/MathHelper.js.map +1 -0
  111. package/bin/Math/Rectangle.d.ts +126 -0
  112. package/bin/Math/Rectangle.d.ts.map +1 -0
  113. package/bin/Math/Rectangle.js +181 -0
  114. package/bin/Math/Rectangle.js.map +1 -0
  115. package/bin/Math/Vector2.d.ts +229 -0
  116. package/bin/Math/Vector2.d.ts.map +1 -0
  117. package/bin/Math/Vector2.js +338 -0
  118. package/bin/Math/Vector2.js.map +1 -0
  119. package/bin/Math/index.d.ts +5 -0
  120. package/bin/Math/index.d.ts.map +1 -0
  121. package/bin/Math/index.js +6 -0
  122. package/bin/Math/index.js.map +1 -0
  123. package/bin/Types/index.d.ts +22 -0
  124. package/bin/Types/index.d.ts.map +1 -0
  125. package/bin/Types/index.js +20 -0
  126. package/bin/Types/index.js.map +1 -0
  127. package/bin/Utils/Emitter.d.ts +43 -0
  128. package/bin/Utils/Emitter.d.ts.map +1 -0
  129. package/bin/Utils/Emitter.js +69 -0
  130. package/bin/Utils/Emitter.js.map +1 -0
  131. package/bin/Utils/Extensions/EdgeExt.d.ts +26 -0
  132. package/bin/Utils/Extensions/EdgeExt.d.ts.map +1 -0
  133. package/bin/Utils/Extensions/EdgeExt.js +41 -0
  134. package/bin/Utils/Extensions/EdgeExt.js.map +1 -0
  135. package/bin/Utils/Extensions/NumberExtension.d.ts +13 -0
  136. package/bin/Utils/Extensions/NumberExtension.d.ts.map +1 -0
  137. package/bin/Utils/Extensions/NumberExtension.js +17 -0
  138. package/bin/Utils/Extensions/NumberExtension.js.map +1 -0
  139. package/bin/Utils/Extensions/TypeUtils.d.ts +13 -0
  140. package/bin/Utils/Extensions/TypeUtils.d.ts.map +1 -0
  141. package/bin/Utils/Extensions/TypeUtils.js +15 -0
  142. package/bin/Utils/Extensions/TypeUtils.js.map +1 -0
  143. package/bin/Utils/Extensions/index.d.ts +4 -0
  144. package/bin/Utils/Extensions/index.d.ts.map +1 -0
  145. package/bin/Utils/Extensions/index.js +5 -0
  146. package/bin/Utils/Extensions/index.js.map +1 -0
  147. package/bin/Utils/GlobalManager.d.ts +32 -0
  148. package/bin/Utils/GlobalManager.d.ts.map +1 -0
  149. package/bin/Utils/GlobalManager.js +53 -0
  150. package/bin/Utils/GlobalManager.js.map +1 -0
  151. package/bin/Utils/PerformanceMonitor.d.ts +211 -0
  152. package/bin/Utils/PerformanceMonitor.d.ts.map +1 -0
  153. package/bin/Utils/PerformanceMonitor.js +270 -0
  154. package/bin/Utils/PerformanceMonitor.js.map +1 -0
  155. package/bin/Utils/Pool.d.ts +239 -0
  156. package/bin/Utils/Pool.d.ts.map +1 -0
  157. package/bin/Utils/Pool.js +449 -0
  158. package/bin/Utils/Pool.js.map +1 -0
  159. package/bin/Utils/Screen.d.ts +12 -0
  160. package/bin/Utils/Screen.d.ts.map +1 -0
  161. package/bin/Utils/Screen.js +14 -0
  162. package/bin/Utils/Screen.js.map +1 -0
  163. package/bin/Utils/Time.d.ts +55 -0
  164. package/bin/Utils/Time.d.ts.map +1 -0
  165. package/bin/Utils/Time.js +78 -0
  166. package/bin/Utils/Time.js.map +1 -0
  167. package/bin/Utils/Timers/ITimer.d.ts +16 -0
  168. package/bin/Utils/Timers/ITimer.d.ts.map +1 -0
  169. package/bin/Utils/Timers/ITimer.js +2 -0
  170. package/bin/Utils/Timers/ITimer.js.map +1 -0
  171. package/bin/Utils/Timers/Timer.d.ts +22 -0
  172. package/bin/Utils/Timers/Timer.d.ts.map +1 -0
  173. package/bin/Utils/Timers/Timer.js +46 -0
  174. package/bin/Utils/Timers/Timer.js.map +1 -0
  175. package/bin/Utils/Timers/TimerManager.d.ts +19 -0
  176. package/bin/Utils/Timers/TimerManager.d.ts.map +1 -0
  177. package/bin/Utils/Timers/TimerManager.js +33 -0
  178. package/bin/Utils/Timers/TimerManager.js.map +1 -0
  179. package/bin/Utils/index.d.ts +6 -0
  180. package/bin/Utils/index.d.ts.map +1 -0
  181. package/bin/Utils/index.js +7 -0
  182. package/bin/Utils/index.js.map +1 -0
  183. package/bin/index.d.ts +21 -0
  184. package/bin/index.d.ts.map +1 -0
  185. package/bin/index.js +26 -0
  186. package/bin/index.js.map +1 -0
  187. package/package.json +68 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ID池管理器
3
+ * 用于管理实体ID的分配和回收
4
+ */
5
+ export declare class IdentifierPool {
6
+ private _nextAvailableId;
7
+ private _ids;
8
+ /**
9
+ * 获取一个可用的ID
10
+ */
11
+ checkOut(): number;
12
+ /**
13
+ * 回收一个ID
14
+ * @param id 要回收的ID
15
+ */
16
+ checkIn(id: number): void;
17
+ }
18
+ //# sourceMappingURL=IdentifierPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentifierPool.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/IdentifierPool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,IAAI,CAAgB;IAE5B;;OAEG;IACI,QAAQ,IAAI,MAAM;IAOzB;;;OAGG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGnC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ID池管理器
3
+ * 用于管理实体ID的分配和回收
4
+ */
5
+ export class IdentifierPool {
6
+ constructor() {
7
+ this._nextAvailableId = 0;
8
+ this._ids = [];
9
+ }
10
+ /**
11
+ * 获取一个可用的ID
12
+ */
13
+ checkOut() {
14
+ if (this._ids.length > 0) {
15
+ return this._ids.pop();
16
+ }
17
+ return this._nextAvailableId++;
18
+ }
19
+ /**
20
+ * 回收一个ID
21
+ * @param id 要回收的ID
22
+ */
23
+ checkIn(id) {
24
+ this._ids.push(id);
25
+ }
26
+ }
27
+ //# sourceMappingURL=IdentifierPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentifierPool.js","sourceRoot":"","sources":["../../../src/ECS/Utils/IdentifierPool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,cAAc;IAA3B;QACY,qBAAgB,GAAG,CAAC,CAAC;QACrB,SAAI,GAAa,EAAE,CAAC;IAmBhC,CAAC;IAjBG;;OAEG;IACI,QAAQ;QACX,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;CACJ"}
@@ -0,0 +1,63 @@
1
+ import { Entity } from '../Entity';
2
+ import { Component } from '../Component';
3
+ import { Bits } from './Bits';
4
+ /**
5
+ * 高性能实体匹配器
6
+ * 用于快速匹配符合条件的实体
7
+ */
8
+ export declare class Matcher {
9
+ protected allSet: (new (...args: any[]) => Component)[];
10
+ protected exclusionSet: (new (...args: any[]) => Component)[];
11
+ protected oneSet: (new (...args: any[]) => Component)[];
12
+ private _allBits?;
13
+ private _exclusionBits?;
14
+ private _oneBits?;
15
+ private _isDirty;
16
+ static empty(): Matcher;
17
+ getAllSet(): (new (...args: any[]) => Component)[];
18
+ getExclusionSet(): (new (...args: any[]) => Component)[];
19
+ getOneSet(): (new (...args: any[]) => Component)[];
20
+ /**
21
+ * 检查实体是否匹配条件
22
+ * @param entity 要检查的实体
23
+ * @returns 是否匹配
24
+ */
25
+ isInterestedEntity(entity: Entity): boolean;
26
+ /**
27
+ * 检查组件位掩码是否匹配条件
28
+ * @param componentBits 组件位掩码
29
+ * @returns 是否匹配
30
+ */
31
+ isInterested(componentBits: Bits): boolean;
32
+ /**
33
+ * 添加所有包含的组件类型
34
+ * @param types 所有包含的组件类型列表
35
+ */
36
+ all(...types: (new (...args: any[]) => Component)[]): Matcher;
37
+ /**
38
+ * 添加排除包含的组件类型
39
+ * @param types 排除包含的组件类型列表
40
+ */
41
+ exclude(...types: (new (...args: any[]) => Component)[]): Matcher;
42
+ /**
43
+ * 添加至少包含其中之一的组件类型
44
+ * @param types 至少包含其中之一的组件类型列表
45
+ */
46
+ one(...types: (new (...args: any[]) => Component)[]): Matcher;
47
+ /**
48
+ * 获取实体的组件位掩码
49
+ * @param entity 实体
50
+ * @returns 组件位掩码
51
+ */
52
+ private getEntityBits;
53
+ /**
54
+ * 如果位掩码已过期,则更新它们
55
+ */
56
+ private updateBitsIfDirty;
57
+ /**
58
+ * 创建匹配器的字符串表示(用于调试)
59
+ * @returns 字符串表示
60
+ */
61
+ toString(): string;
62
+ }
63
+ //# sourceMappingURL=Matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Matcher.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/Matcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B;;;GAGG;AACH,qBAAa,OAAO;IAChB,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,CAAM;IAC7D,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,CAAM;IACnE,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,CAAM;IAG7D,OAAO,CAAC,QAAQ,CAAC,CAAO;IACxB,OAAO,CAAC,cAAc,CAAC,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAO;IACxB,OAAO,CAAC,QAAQ,CAAQ;WAEV,KAAK,IAAI,OAAO;IAIvB,SAAS,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE;IAIlD,eAAe,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE;IAIxD,SAAS,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE;IAIzD;;;;OAIG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD;;;;OAIG;IACI,YAAY,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO;IAqBjD;;;OAGG;IACI,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,OAAO;IAMpE;;;OAGG;IACI,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,OAAO;IAMxE;;;OAGG;IACI,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,OAAO;IAMpE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;CAiB5B"}
@@ -0,0 +1,140 @@
1
+ import { ComponentTypeManager } from './ComponentTypeManager';
2
+ /**
3
+ * 高性能实体匹配器
4
+ * 用于快速匹配符合条件的实体
5
+ */
6
+ export class Matcher {
7
+ constructor() {
8
+ this.allSet = [];
9
+ this.exclusionSet = [];
10
+ this.oneSet = [];
11
+ this._isDirty = true;
12
+ }
13
+ static empty() {
14
+ return new Matcher();
15
+ }
16
+ getAllSet() {
17
+ return this.allSet;
18
+ }
19
+ getExclusionSet() {
20
+ return this.exclusionSet;
21
+ }
22
+ getOneSet() {
23
+ return this.oneSet;
24
+ }
25
+ /**
26
+ * 检查实体是否匹配条件
27
+ * @param entity 要检查的实体
28
+ * @returns 是否匹配
29
+ */
30
+ isInterestedEntity(entity) {
31
+ const entityBits = this.getEntityBits(entity);
32
+ return this.isInterested(entityBits);
33
+ }
34
+ /**
35
+ * 检查组件位掩码是否匹配条件
36
+ * @param componentBits 组件位掩码
37
+ * @returns 是否匹配
38
+ */
39
+ isInterested(componentBits) {
40
+ this.updateBitsIfDirty();
41
+ // 检查必须包含的组件
42
+ if (this._allBits && !componentBits.containsAll(this._allBits)) {
43
+ return false;
44
+ }
45
+ // 检查排除的组件
46
+ if (this._exclusionBits && componentBits.intersects(this._exclusionBits)) {
47
+ return false;
48
+ }
49
+ // 检查至少包含其中之一的组件
50
+ if (this._oneBits && !componentBits.intersects(this._oneBits)) {
51
+ return false;
52
+ }
53
+ return true;
54
+ }
55
+ /**
56
+ * 添加所有包含的组件类型
57
+ * @param types 所有包含的组件类型列表
58
+ */
59
+ all(...types) {
60
+ this.allSet.push(...types);
61
+ this._isDirty = true;
62
+ return this;
63
+ }
64
+ /**
65
+ * 添加排除包含的组件类型
66
+ * @param types 排除包含的组件类型列表
67
+ */
68
+ exclude(...types) {
69
+ this.exclusionSet.push(...types);
70
+ this._isDirty = true;
71
+ return this;
72
+ }
73
+ /**
74
+ * 添加至少包含其中之一的组件类型
75
+ * @param types 至少包含其中之一的组件类型列表
76
+ */
77
+ one(...types) {
78
+ this.oneSet.push(...types);
79
+ this._isDirty = true;
80
+ return this;
81
+ }
82
+ /**
83
+ * 获取实体的组件位掩码
84
+ * @param entity 实体
85
+ * @returns 组件位掩码
86
+ */
87
+ getEntityBits(entity) {
88
+ const components = entity.components;
89
+ return ComponentTypeManager.instance.getEntityBits(components);
90
+ }
91
+ /**
92
+ * 如果位掩码已过期,则更新它们
93
+ */
94
+ updateBitsIfDirty() {
95
+ if (!this._isDirty) {
96
+ return;
97
+ }
98
+ const typeManager = ComponentTypeManager.instance;
99
+ // 更新必须包含的组件位掩码
100
+ if (this.allSet.length > 0) {
101
+ this._allBits = typeManager.createBits(...this.allSet);
102
+ }
103
+ else {
104
+ this._allBits = undefined;
105
+ }
106
+ // 更新排除的组件位掩码
107
+ if (this.exclusionSet.length > 0) {
108
+ this._exclusionBits = typeManager.createBits(...this.exclusionSet);
109
+ }
110
+ else {
111
+ this._exclusionBits = undefined;
112
+ }
113
+ // 更新至少包含其中之一的组件位掩码
114
+ if (this.oneSet.length > 0) {
115
+ this._oneBits = typeManager.createBits(...this.oneSet);
116
+ }
117
+ else {
118
+ this._oneBits = undefined;
119
+ }
120
+ this._isDirty = false;
121
+ }
122
+ /**
123
+ * 创建匹配器的字符串表示(用于调试)
124
+ * @returns 字符串表示
125
+ */
126
+ toString() {
127
+ const parts = [];
128
+ if (this.allSet.length > 0) {
129
+ parts.push(`all: [${this.allSet.map(t => t.name).join(', ')}]`);
130
+ }
131
+ if (this.exclusionSet.length > 0) {
132
+ parts.push(`exclude: [${this.exclusionSet.map(t => t.name).join(', ')}]`);
133
+ }
134
+ if (this.oneSet.length > 0) {
135
+ parts.push(`one: [${this.oneSet.map(t => t.name).join(', ')}]`);
136
+ }
137
+ return `Matcher(${parts.join(', ')})`;
138
+ }
139
+ }
140
+ //# sourceMappingURL=Matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Matcher.js","sourceRoot":"","sources":["../../../src/ECS/Utils/Matcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,OAAO;IAApB;QACc,WAAM,GAA0C,EAAE,CAAC;QACnD,iBAAY,GAA0C,EAAE,CAAC;QACzD,WAAM,GAA0C,EAAE,CAAC;QAMrD,aAAQ,GAAG,IAAI,CAAC;IAqJ5B,CAAC;IAnJU,MAAM,CAAC,KAAK;QACf,OAAO,IAAI,OAAO,EAAE,CAAC;IACzB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,MAAc;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,aAAmB;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,YAAY;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,GAAG,KAA4C;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,GAAG,KAA4C;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,GAAG,KAA4C;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,MAAc;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC;QAElD,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACpC,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,QAAQ;QACX,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1C,CAAC;CACJ"}
@@ -0,0 +1,7 @@
1
+ export { EntityList } from './EntityList';
2
+ export { EntityProcessorList } from './EntityProcessorList';
3
+ export { IdentifierPool } from './IdentifierPool';
4
+ export { Matcher } from './Matcher';
5
+ export { Bits } from './Bits';
6
+ export { ComponentTypeManager } from './ComponentTypeManager';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ECS/Utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // ECS工具类导出
2
+ export { EntityList } from './EntityList';
3
+ export { EntityProcessorList } from './EntityProcessorList';
4
+ export { IdentifierPool } from './IdentifierPool';
5
+ export { Matcher } from './Matcher';
6
+ export { Bits } from './Bits';
7
+ export { ComponentTypeManager } from './ComponentTypeManager';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ECS/Utils/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { Entity } from './Entity';
2
+ export { Component } from './Component';
3
+ export { Transform } from './Transform';
4
+ export { CoreEvents } from './CoreEvents';
5
+ export * from './Systems';
6
+ export * from './Utils';
7
+ export { Scene } from './Scene';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ECS/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Core目录已删除,直接导出核心类
2
+ export { Entity } from './Entity';
3
+ export { Component } from './Component';
4
+ export { Transform } from './Transform';
5
+ export { CoreEvents } from './CoreEvents';
6
+ export * from './Systems';
7
+ export * from './Utils';
8
+ export { Scene } from './Scene';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ECS/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 边缘枚举
3
+ * 表示矩形的四个边
4
+ */
5
+ export declare enum Edge {
6
+ /**
7
+ * 顶边
8
+ */
9
+ top = 0,
10
+ /**
11
+ * 底边
12
+ */
13
+ bottom = 1,
14
+ /**
15
+ * 左边
16
+ */
17
+ left = 2,
18
+ /**
19
+ * 右边
20
+ */
21
+ right = 3
22
+ }
23
+ //# sourceMappingURL=Edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Edge.d.ts","sourceRoot":"","sources":["../../src/Math/Edge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,IAAI;IACZ;;OAEG;IACH,GAAG,IAAI;IAEP;;OAEG;IACH,MAAM,IAAI;IAEV;;OAEG;IACH,IAAI,IAAI;IAER;;OAEG;IACH,KAAK,IAAI;CACZ"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 边缘枚举
3
+ * 表示矩形的四个边
4
+ */
5
+ export var Edge;
6
+ (function (Edge) {
7
+ /**
8
+ * 顶边
9
+ */
10
+ Edge[Edge["top"] = 0] = "top";
11
+ /**
12
+ * 底边
13
+ */
14
+ Edge[Edge["bottom"] = 1] = "bottom";
15
+ /**
16
+ * 左边
17
+ */
18
+ Edge[Edge["left"] = 2] = "left";
19
+ /**
20
+ * 右边
21
+ */
22
+ Edge[Edge["right"] = 3] = "right";
23
+ })(Edge || (Edge = {}));
24
+ //# sourceMappingURL=Edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Edge.js","sourceRoot":"","sources":["../../src/Math/Edge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,IAoBX;AApBD,WAAY,IAAI;IACZ;;OAEG;IACH,6BAAO,CAAA;IAEP;;OAEG;IACH,mCAAU,CAAA;IAEV;;OAEG;IACH,+BAAQ,CAAA;IAER;;OAEG;IACH,iCAAS,CAAA;AACb,CAAC,EApBW,IAAI,KAAJ,IAAI,QAoBf"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * 数学辅助工具类
3
+ * 提供常用的数学计算函数和常量
4
+ */
5
+ export declare class MathHelper {
6
+ /**
7
+ * 角度转弧度的转换系数
8
+ */
9
+ static readonly DEG_TO_RAD: number;
10
+ /**
11
+ * 弧度转角度的转换系数
12
+ */
13
+ static readonly RAD_TO_DEG: number;
14
+ /**
15
+ * 浮点数比较的默认精度值
16
+ */
17
+ static readonly EPSILON = 0.00001;
18
+ /**
19
+ * 将角度转换为弧度
20
+ * @param degrees 角度值
21
+ * @returns 对应的弧度值
22
+ */
23
+ static toRadians(degrees: number): number;
24
+ /**
25
+ * 将弧度转换为角度
26
+ * @param radians 弧度值
27
+ * @returns 对应的角度值
28
+ */
29
+ static toDegrees(radians: number): number;
30
+ /**
31
+ * 将数值限制在指定范围内
32
+ * @param value 要限制的值
33
+ * @param min 最小值
34
+ * @param max 最大值
35
+ * @returns 限制后的值
36
+ */
37
+ static clamp(value: number, min: number, max: number): number;
38
+ /**
39
+ * 将数值限制在0到1之间
40
+ * @param value 要限制的值
41
+ * @returns 限制在[0,1]范围内的值
42
+ */
43
+ static clamp01(value: number): number;
44
+ /**
45
+ * 在两个值之间进行线性插值
46
+ * @param a 起始值
47
+ * @param b 结束值
48
+ * @param t 插值参数,会被限制在[0,1]范围内
49
+ * @returns 插值结果
50
+ */
51
+ static lerp(a: number, b: number, t: number): number;
52
+ /**
53
+ * 检查两个浮点数是否在指定精度内相等
54
+ * @param a 第一个数值
55
+ * @param b 第二个数值
56
+ * @param tolerance 容差值,默认为EPSILON
57
+ * @returns 如果两个数值在容差范围内相等返回true,否则返回false
58
+ */
59
+ static approximately(a: number, b: number, tolerance?: number): boolean;
60
+ /**
61
+ * 生成指定范围内的随机数
62
+ * @param min 最小值,默认为0
63
+ * @param max 最大值,默认为1
64
+ * @returns 范围内的随机数
65
+ */
66
+ static random(min?: number, max?: number): number;
67
+ /**
68
+ * 生成指定范围内的随机整数
69
+ * @param min 最小值(包含)
70
+ * @param max 最大值(包含)
71
+ * @returns 范围内的随机整数
72
+ */
73
+ static randomInt(min: number, max: number): number;
74
+ }
75
+ //# sourceMappingURL=MathHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathHelper.d.ts","sourceRoot":"","sources":["../../src/Math/MathHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,UAAU;IACnB;;OAEG;IACH,gBAAuB,UAAU,SAAiB;IAElD;;OAEG;IACH,gBAAuB,UAAU,SAAiB;IAElD;;OAEG;IACH,gBAAuB,OAAO,WAAW;IAEzC;;;;OAIG;WACW,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIhD;;;;OAIG;WACW,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIhD;;;;;;OAMG;WACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIpE;;;;OAIG;WACW,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C;;;;;;OAMG;WACW,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3D;;;;;;OAMG;WACW,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B,GAAG,OAAO;IAIlG;;;;;OAKG;WACW,MAAM,CAAC,GAAG,GAAE,MAAU,EAAE,GAAG,GAAE,MAAU,GAAG,MAAM;IAI9D;;;;;OAKG;WACW,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;CAG5D"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * 数学辅助工具类
3
+ * 提供常用的数学计算函数和常量
4
+ */
5
+ export class MathHelper {
6
+ /**
7
+ * 将角度转换为弧度
8
+ * @param degrees 角度值
9
+ * @returns 对应的弧度值
10
+ */
11
+ static toRadians(degrees) {
12
+ return degrees * MathHelper.DEG_TO_RAD;
13
+ }
14
+ /**
15
+ * 将弧度转换为角度
16
+ * @param radians 弧度值
17
+ * @returns 对应的角度值
18
+ */
19
+ static toDegrees(radians) {
20
+ return radians * MathHelper.RAD_TO_DEG;
21
+ }
22
+ /**
23
+ * 将数值限制在指定范围内
24
+ * @param value 要限制的值
25
+ * @param min 最小值
26
+ * @param max 最大值
27
+ * @returns 限制后的值
28
+ */
29
+ static clamp(value, min, max) {
30
+ return Math.max(min, Math.min(max, value));
31
+ }
32
+ /**
33
+ * 将数值限制在0到1之间
34
+ * @param value 要限制的值
35
+ * @returns 限制在[0,1]范围内的值
36
+ */
37
+ static clamp01(value) {
38
+ return MathHelper.clamp(value, 0, 1);
39
+ }
40
+ /**
41
+ * 在两个值之间进行线性插值
42
+ * @param a 起始值
43
+ * @param b 结束值
44
+ * @param t 插值参数,会被限制在[0,1]范围内
45
+ * @returns 插值结果
46
+ */
47
+ static lerp(a, b, t) {
48
+ return a + (b - a) * MathHelper.clamp01(t);
49
+ }
50
+ /**
51
+ * 检查两个浮点数是否在指定精度内相等
52
+ * @param a 第一个数值
53
+ * @param b 第二个数值
54
+ * @param tolerance 容差值,默认为EPSILON
55
+ * @returns 如果两个数值在容差范围内相等返回true,否则返回false
56
+ */
57
+ static approximately(a, b, tolerance = MathHelper.EPSILON) {
58
+ return Math.abs(a - b) < tolerance;
59
+ }
60
+ /**
61
+ * 生成指定范围内的随机数
62
+ * @param min 最小值,默认为0
63
+ * @param max 最大值,默认为1
64
+ * @returns 范围内的随机数
65
+ */
66
+ static random(min = 0, max = 1) {
67
+ return Math.random() * (max - min) + min;
68
+ }
69
+ /**
70
+ * 生成指定范围内的随机整数
71
+ * @param min 最小值(包含)
72
+ * @param max 最大值(包含)
73
+ * @returns 范围内的随机整数
74
+ */
75
+ static randomInt(min, max) {
76
+ return Math.floor(Math.random() * (max - min + 1)) + min;
77
+ }
78
+ }
79
+ /**
80
+ * 角度转弧度的转换系数
81
+ */
82
+ MathHelper.DEG_TO_RAD = Math.PI / 180;
83
+ /**
84
+ * 弧度转角度的转换系数
85
+ */
86
+ MathHelper.RAD_TO_DEG = 180 / Math.PI;
87
+ /**
88
+ * 浮点数比较的默认精度值
89
+ */
90
+ MathHelper.EPSILON = 0.00001;
91
+ //# sourceMappingURL=MathHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathHelper.js","sourceRoot":"","sources":["../../src/Math/MathHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,UAAU;IAgBnB;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,OAAe;QACnC,OAAO,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,OAAe;QACnC,OAAO,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,KAAa;QAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,YAAoB,UAAU,CAAC,OAAO;QACpF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,CAAC;QACjD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,GAAW;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7D,CAAC;;AA7FD;;GAEG;AACoB,qBAAU,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAElD;;GAEG;AACoB,qBAAU,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAElD;;GAEG;AACoB,kBAAO,GAAG,OAAO,CAAC"}