@safe-engine/pixi 8.8.1 → 8.8.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 (146) hide show
  1. package/dist/app.d.ts +1 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +20 -1
  4. package/dist/core/NodePool.d.ts +1 -1
  5. package/dist/core/Size.d.ts +0 -1
  6. package/dist/core/Size.d.ts.map +1 -1
  7. package/dist/dragonbones/DragonBonesComponent.d.ts +1 -1
  8. package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -1
  9. package/dist/dragonbones/DragonBonesComponent.js +1 -1
  10. package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
  11. package/dist/dragonbones/DragonBonesSystem.js +1 -1
  12. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts +59 -0
  13. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts.map +1 -0
  14. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.js +180 -0
  15. package/dist/dragonbones/db-pixi/PixiFactory.d.ts +87 -0
  16. package/dist/dragonbones/db-pixi/PixiFactory.d.ts.map +1 -0
  17. package/dist/dragonbones/db-pixi/PixiFactory.js +159 -0
  18. package/dist/dragonbones/db-pixi/PixiSlot.d.ts +31 -0
  19. package/dist/dragonbones/db-pixi/PixiSlot.d.ts.map +1 -0
  20. package/dist/dragonbones/db-pixi/PixiSlot.js +332 -0
  21. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts +38 -0
  22. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts.map +1 -0
  23. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.js +85 -0
  24. package/dist/dragonbones/db-pixi/index.d.ts +5 -0
  25. package/dist/dragonbones/db-pixi/index.d.ts.map +1 -0
  26. package/dist/dragonbones/db-pixi/index.js +4 -0
  27. package/dist/dragonbones/dragonBones/animation/Animation.d.ts +241 -0
  28. package/dist/dragonbones/dragonBones/animation/Animation.d.ts.map +1 -0
  29. package/dist/dragonbones/dragonBones/animation/Animation.js +692 -0
  30. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts +323 -0
  31. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts.map +1 -0
  32. package/dist/dragonbones/dragonBones/animation/AnimationState.js +1161 -0
  33. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts +100 -0
  34. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts.map +1 -0
  35. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.js +479 -0
  36. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts +38 -0
  37. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts.map +1 -0
  38. package/dist/dragonbones/dragonBones/animation/IAnimatable.js +9 -0
  39. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts +159 -0
  40. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts.map +1 -0
  41. package/dist/dragonbones/dragonBones/animation/TimelineState.js +998 -0
  42. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts +74 -0
  43. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts.map +1 -0
  44. package/dist/dragonbones/dragonBones/animation/WorldClock.js +162 -0
  45. package/dist/dragonbones/dragonBones/armature/Armature.d.ts +314 -0
  46. package/dist/dragonbones/dragonBones/armature/Armature.d.ts.map +1 -0
  47. package/dist/dragonbones/dragonBones/armature/Armature.js +650 -0
  48. package/dist/dragonbones/dragonBones/armature/Bone.d.ts +123 -0
  49. package/dist/dragonbones/dragonBones/armature/Bone.d.ts.map +1 -0
  50. package/dist/dragonbones/dragonBones/armature/Bone.js +438 -0
  51. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts +99 -0
  52. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts.map +1 -0
  53. package/dist/dragonbones/dragonBones/armature/Constraint.js +672 -0
  54. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts +47 -0
  55. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts.map +1 -0
  56. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.js +1 -0
  57. package/dist/dragonbones/dragonBones/armature/Slot.d.ts +357 -0
  58. package/dist/dragonbones/dragonBones/armature/Slot.d.ts.map +1 -0
  59. package/dist/dragonbones/dragonBones/armature/Slot.js +1009 -0
  60. package/dist/dragonbones/dragonBones/armature/Surface.d.ts +41 -0
  61. package/dist/dragonbones/dragonBones/armature/Surface.d.ts.map +1 -0
  62. package/dist/dragonbones/dragonBones/armature/Surface.js +463 -0
  63. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts +80 -0
  64. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts.map +1 -0
  65. package/dist/dragonbones/dragonBones/armature/TransformObject.js +77 -0
  66. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts +53 -0
  67. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts.map +1 -0
  68. package/dist/dragonbones/dragonBones/core/BaseObject.js +130 -0
  69. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts +236 -0
  70. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts.map +1 -0
  71. package/dist/dragonbones/dragonBones/core/DragonBones.js +61 -0
  72. package/dist/dragonbones/dragonBones/event/EventObject.d.ts +143 -0
  73. package/dist/dragonbones/dragonBones/event/EventObject.d.ts.map +1 -0
  74. package/dist/dragonbones/dragonBones/event/EventObject.js +99 -0
  75. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts +48 -0
  76. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts.map +1 -0
  77. package/dist/dragonbones/dragonBones/event/IEventDispatcher.js +1 -0
  78. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts +292 -0
  79. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts.map +1 -0
  80. package/dist/dragonbones/dragonBones/factory/BaseFactory.js +735 -0
  81. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts +17 -0
  82. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts.map +1 -0
  83. package/dist/dragonbones/dragonBones/geom/ColorTransform.js +33 -0
  84. package/dist/dragonbones/dragonBones/geom/Curve.d.ts +10 -0
  85. package/dist/dragonbones/dragonBones/geom/Curve.d.ts.map +1 -0
  86. package/dist/dragonbones/dragonBones/geom/Curve.js +26 -0
  87. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts +105 -0
  88. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts.map +1 -0
  89. package/dist/dragonbones/dragonBones/geom/Matrix.js +207 -0
  90. package/dist/dragonbones/dragonBones/geom/Point.d.ts +38 -0
  91. package/dist/dragonbones/dragonBones/geom/Point.d.ts.map +1 -0
  92. package/dist/dragonbones/dragonBones/geom/Point.js +31 -0
  93. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts +53 -0
  94. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts.map +1 -0
  95. package/dist/dragonbones/dragonBones/geom/Rectangle.js +37 -0
  96. package/dist/dragonbones/dragonBones/geom/Transform.d.ts +102 -0
  97. package/dist/dragonbones/dragonBones/geom/Transform.d.ts.map +1 -0
  98. package/dist/dragonbones/dragonBones/geom/Transform.js +170 -0
  99. package/dist/dragonbones/dragonBones/index.d.ts +37 -0
  100. package/dist/dragonbones/dragonBones/index.d.ts.map +1 -0
  101. package/dist/dragonbones/dragonBones/index.js +36 -0
  102. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts +162 -0
  103. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts.map +1 -0
  104. package/dist/dragonbones/dragonBones/model/AnimationConfig.js +81 -0
  105. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts +174 -0
  106. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts.map +1 -0
  107. package/dist/dragonbones/dragonBones/model/AnimationData.js +256 -0
  108. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts +319 -0
  109. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts.map +1 -0
  110. package/dist/dragonbones/dragonBones/model/ArmatureData.js +450 -0
  111. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts +188 -0
  112. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts.map +1 -0
  113. package/dist/dragonbones/dragonBones/model/BoundingBoxData.js +500 -0
  114. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts +15 -0
  115. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts.map +1 -0
  116. package/dist/dragonbones/dragonBones/model/CanvasData.js +17 -0
  117. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts +46 -0
  118. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts.map +1 -0
  119. package/dist/dragonbones/dragonBones/model/ConstraintData.js +57 -0
  120. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts +98 -0
  121. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts.map +1 -0
  122. package/dist/dragonbones/dragonBones/model/DisplayData.js +174 -0
  123. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts +108 -0
  124. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts.map +1 -0
  125. package/dist/dragonbones/dragonBones/model/DragonBonesData.js +86 -0
  126. package/dist/dragonbones/dragonBones/model/SkinData.d.ts +40 -0
  127. package/dist/dragonbones/dragonBones/model/SkinData.d.ts.map +1 -0
  128. package/dist/dragonbones/dragonBones/model/SkinData.js +68 -0
  129. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts +73 -0
  130. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts.map +1 -0
  131. package/dist/dragonbones/dragonBones/model/TextureAtlasData.js +102 -0
  132. package/dist/dragonbones/dragonBones/model/UserData.d.ts +73 -0
  133. package/dist/dragonbones/dragonBones/model/UserData.d.ts.map +1 -0
  134. package/dist/dragonbones/dragonBones/model/UserData.js +101 -0
  135. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts +29 -0
  136. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts.map +1 -0
  137. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.js +356 -0
  138. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts +153 -0
  139. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts.map +1 -0
  140. package/dist/dragonbones/dragonBones/parser/DataParser.js +283 -0
  141. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts +130 -0
  142. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts.map +1 -0
  143. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.js +2098 -0
  144. package/dist/dragonbones/index.js +1 -1
  145. package/dist/helper/utils.js +1 -1
  146. package/package.json +3 -4
@@ -0,0 +1,500 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ /**
3
+ * - The base class of bounding box data.
4
+ * @see dragonBones.RectangleData
5
+ * @see dragonBones.EllipseData
6
+ * @see dragonBones.PolygonData
7
+ * @version DragonBones 5.0
8
+ * @language en_US
9
+ */
10
+ export class BoundingBoxData extends BaseObject {
11
+ _onClear() {
12
+ this.color = 0x000000;
13
+ this.width = 0.0;
14
+ this.height = 0.0;
15
+ }
16
+ }
17
+ /**
18
+ * - The rectangle bounding box data.
19
+ * @version DragonBones 5.1
20
+ * @language en_US
21
+ */
22
+ export class RectangleBoundingBoxData extends BoundingBoxData {
23
+ static toString() {
24
+ return "[class dragonBones.RectangleBoundingBoxData]";
25
+ }
26
+ /**
27
+ * - Compute the bit code for a point (x, y) using the clip rectangle
28
+ */
29
+ static _computeOutCode(x, y, xMin, yMin, xMax, yMax) {
30
+ let code = 0 /* OutCode.InSide */; // initialised as being inside of [[clip window]]
31
+ if (x < xMin) {
32
+ // to the left of clip window
33
+ code |= 1 /* OutCode.Left */;
34
+ }
35
+ else if (x > xMax) {
36
+ // to the right of clip window
37
+ code |= 2 /* OutCode.Right */;
38
+ }
39
+ if (y < yMin) {
40
+ // below the clip window
41
+ code |= 4 /* OutCode.Top */;
42
+ }
43
+ else if (y > yMax) {
44
+ // above the clip window
45
+ code |= 8 /* OutCode.Bottom */;
46
+ }
47
+ return code;
48
+ }
49
+ /**
50
+ * @private
51
+ */
52
+ static rectangleIntersectsSegment(xA, yA, xB, yB, xMin, yMin, xMax, yMax, intersectionPointA = null, intersectionPointB = null, normalRadians = null) {
53
+ const inSideA = xA > xMin && xA < xMax && yA > yMin && yA < yMax;
54
+ const inSideB = xB > xMin && xB < xMax && yB > yMin && yB < yMax;
55
+ if (inSideA && inSideB) {
56
+ return -1;
57
+ }
58
+ let intersectionCount = 0;
59
+ let outcode0 = RectangleBoundingBoxData._computeOutCode(xA, yA, xMin, yMin, xMax, yMax);
60
+ let outcode1 = RectangleBoundingBoxData._computeOutCode(xB, yB, xMin, yMin, xMax, yMax);
61
+ while (true) {
62
+ if ((outcode0 | outcode1) === 0) {
63
+ // Bitwise OR is 0. Trivially accept and get out of loop
64
+ intersectionCount = 2;
65
+ break;
66
+ }
67
+ else if ((outcode0 & outcode1) !== 0) {
68
+ // Bitwise AND is not 0. Trivially reject and get out of loop
69
+ break;
70
+ }
71
+ // failed both tests, so calculate the line segment to clip
72
+ // from an outside point to an intersection with clip edge
73
+ let x = 0.0;
74
+ let y = 0.0;
75
+ let normalRadian = 0.0;
76
+ // At least one endpoint is outside the clip rectangle; pick it.
77
+ const outcodeOut = outcode0 !== 0 ? outcode0 : outcode1;
78
+ // Now find the intersection point;
79
+ if ((outcodeOut & 4 /* OutCode.Top */) !== 0) {
80
+ // point is above the clip rectangle
81
+ x = xA + ((xB - xA) * (yMin - yA)) / (yB - yA);
82
+ y = yMin;
83
+ if (normalRadians !== null) {
84
+ normalRadian = -Math.PI * 0.5;
85
+ }
86
+ }
87
+ else if ((outcodeOut & 8 /* OutCode.Bottom */) !== 0) {
88
+ // point is below the clip rectangle
89
+ x = xA + ((xB - xA) * (yMax - yA)) / (yB - yA);
90
+ y = yMax;
91
+ if (normalRadians !== null) {
92
+ normalRadian = Math.PI * 0.5;
93
+ }
94
+ }
95
+ else if ((outcodeOut & 2 /* OutCode.Right */) !== 0) {
96
+ // point is to the right of clip rectangle
97
+ y = yA + ((yB - yA) * (xMax - xA)) / (xB - xA);
98
+ x = xMax;
99
+ if (normalRadians !== null) {
100
+ normalRadian = 0;
101
+ }
102
+ }
103
+ else if ((outcodeOut & 1 /* OutCode.Left */) !== 0) {
104
+ // point is to the left of clip rectangle
105
+ y = yA + ((yB - yA) * (xMin - xA)) / (xB - xA);
106
+ x = xMin;
107
+ if (normalRadians !== null) {
108
+ normalRadian = Math.PI;
109
+ }
110
+ }
111
+ // Now we move outside point to intersection point to clip
112
+ // and get ready for next pass.
113
+ if (outcodeOut === outcode0) {
114
+ xA = x;
115
+ yA = y;
116
+ outcode0 = RectangleBoundingBoxData._computeOutCode(xA, yA, xMin, yMin, xMax, yMax);
117
+ if (normalRadians !== null) {
118
+ normalRadians.x = normalRadian;
119
+ }
120
+ }
121
+ else {
122
+ xB = x;
123
+ yB = y;
124
+ outcode1 = RectangleBoundingBoxData._computeOutCode(xB, yB, xMin, yMin, xMax, yMax);
125
+ if (normalRadians !== null) {
126
+ normalRadians.y = normalRadian;
127
+ }
128
+ }
129
+ }
130
+ if (intersectionCount) {
131
+ if (inSideA) {
132
+ intersectionCount = 2; // 10
133
+ if (intersectionPointA !== null) {
134
+ intersectionPointA.x = xB;
135
+ intersectionPointA.y = yB;
136
+ }
137
+ if (intersectionPointB !== null) {
138
+ intersectionPointB.x = xB;
139
+ intersectionPointB.y = xB;
140
+ }
141
+ if (normalRadians !== null) {
142
+ normalRadians.x = normalRadians.y + Math.PI;
143
+ }
144
+ }
145
+ else if (inSideB) {
146
+ intersectionCount = 1; // 01
147
+ if (intersectionPointA !== null) {
148
+ intersectionPointA.x = xA;
149
+ intersectionPointA.y = yA;
150
+ }
151
+ if (intersectionPointB !== null) {
152
+ intersectionPointB.x = xA;
153
+ intersectionPointB.y = yA;
154
+ }
155
+ if (normalRadians !== null) {
156
+ normalRadians.y = normalRadians.x + Math.PI;
157
+ }
158
+ }
159
+ else {
160
+ intersectionCount = 3; // 11
161
+ if (intersectionPointA !== null) {
162
+ intersectionPointA.x = xA;
163
+ intersectionPointA.y = yA;
164
+ }
165
+ if (intersectionPointB !== null) {
166
+ intersectionPointB.x = xB;
167
+ intersectionPointB.y = yB;
168
+ }
169
+ }
170
+ }
171
+ return intersectionCount;
172
+ }
173
+ _onClear() {
174
+ super._onClear();
175
+ this.type = 0 /* BoundingBoxType.Rectangle */;
176
+ }
177
+ /**
178
+ * @inheritDoc
179
+ */
180
+ containsPoint(pX, pY) {
181
+ const widthH = this.width * 0.5;
182
+ if (pX >= -widthH && pX <= widthH) {
183
+ const heightH = this.height * 0.5;
184
+ if (pY >= -heightH && pY <= heightH) {
185
+ return true;
186
+ }
187
+ }
188
+ return false;
189
+ }
190
+ /**
191
+ * @inheritDoc
192
+ */
193
+ intersectsSegment(xA, yA, xB, yB, intersectionPointA = null, intersectionPointB = null, normalRadians = null) {
194
+ const widthH = this.width * 0.5;
195
+ const heightH = this.height * 0.5;
196
+ const intersectionCount = RectangleBoundingBoxData.rectangleIntersectsSegment(xA, yA, xB, yB, -widthH, -heightH, widthH, heightH, intersectionPointA, intersectionPointB, normalRadians);
197
+ return intersectionCount;
198
+ }
199
+ }
200
+ /**
201
+ * - The ellipse bounding box data.
202
+ * @version DragonBones 5.1
203
+ * @language en_US
204
+ */
205
+ export class EllipseBoundingBoxData extends BoundingBoxData {
206
+ static toString() {
207
+ return "[class dragonBones.EllipseData]";
208
+ }
209
+ /**
210
+ * @private
211
+ */
212
+ static ellipseIntersectsSegment(xA, yA, xB, yB, xC, yC, widthH, heightH, intersectionPointA = null, intersectionPointB = null, normalRadians = null) {
213
+ const d = widthH / heightH;
214
+ const dd = d * d;
215
+ yA *= d;
216
+ yB *= d;
217
+ const dX = xB - xA;
218
+ const dY = yB - yA;
219
+ const lAB = Math.sqrt(dX * dX + dY * dY);
220
+ const xD = dX / lAB;
221
+ const yD = dY / lAB;
222
+ const a = (xC - xA) * xD + (yC - yA) * yD;
223
+ const aa = a * a;
224
+ const ee = xA * xA + yA * yA;
225
+ const rr = widthH * widthH;
226
+ const dR = rr - ee + aa;
227
+ let intersectionCount = 0;
228
+ if (dR >= 0.0) {
229
+ const dT = Math.sqrt(dR);
230
+ const sA = a - dT;
231
+ const sB = a + dT;
232
+ const inSideA = sA < 0.0 ? -1 : sA <= lAB ? 0 : 1;
233
+ const inSideB = sB < 0.0 ? -1 : sB <= lAB ? 0 : 1;
234
+ const sideAB = inSideA * inSideB;
235
+ if (sideAB < 0) {
236
+ return -1;
237
+ }
238
+ else if (sideAB === 0) {
239
+ if (inSideA === -1) {
240
+ intersectionCount = 2; // 10
241
+ xB = xA + sB * xD;
242
+ yB = (yA + sB * yD) / d;
243
+ if (intersectionPointA !== null) {
244
+ intersectionPointA.x = xB;
245
+ intersectionPointA.y = yB;
246
+ }
247
+ if (intersectionPointB !== null) {
248
+ intersectionPointB.x = xB;
249
+ intersectionPointB.y = yB;
250
+ }
251
+ if (normalRadians !== null) {
252
+ normalRadians.x = Math.atan2((yB / rr) * dd, xB / rr);
253
+ normalRadians.y = normalRadians.x + Math.PI;
254
+ }
255
+ }
256
+ else if (inSideB === 1) {
257
+ intersectionCount = 1; // 01
258
+ xA = xA + sA * xD;
259
+ yA = (yA + sA * yD) / d;
260
+ if (intersectionPointA !== null) {
261
+ intersectionPointA.x = xA;
262
+ intersectionPointA.y = yA;
263
+ }
264
+ if (intersectionPointB !== null) {
265
+ intersectionPointB.x = xA;
266
+ intersectionPointB.y = yA;
267
+ }
268
+ if (normalRadians !== null) {
269
+ normalRadians.x = Math.atan2((yA / rr) * dd, xA / rr);
270
+ normalRadians.y = normalRadians.x + Math.PI;
271
+ }
272
+ }
273
+ else {
274
+ intersectionCount = 3; // 11
275
+ if (intersectionPointA !== null) {
276
+ intersectionPointA.x = xA + sA * xD;
277
+ intersectionPointA.y = (yA + sA * yD) / d;
278
+ if (normalRadians !== null) {
279
+ normalRadians.x = Math.atan2((intersectionPointA.y / rr) * dd, intersectionPointA.x / rr);
280
+ }
281
+ }
282
+ if (intersectionPointB !== null) {
283
+ intersectionPointB.x = xA + sB * xD;
284
+ intersectionPointB.y = (yA + sB * yD) / d;
285
+ if (normalRadians !== null) {
286
+ normalRadians.y = Math.atan2((intersectionPointB.y / rr) * dd, intersectionPointB.x / rr);
287
+ }
288
+ }
289
+ }
290
+ }
291
+ }
292
+ return intersectionCount;
293
+ }
294
+ _onClear() {
295
+ super._onClear();
296
+ this.type = 1 /* BoundingBoxType.Ellipse */;
297
+ }
298
+ /**
299
+ * @inheritDoc
300
+ */
301
+ containsPoint(pX, pY) {
302
+ const widthH = this.width * 0.5;
303
+ if (pX >= -widthH && pX <= widthH) {
304
+ const heightH = this.height * 0.5;
305
+ if (pY >= -heightH && pY <= heightH) {
306
+ pY *= widthH / heightH;
307
+ return Math.sqrt(pX * pX + pY * pY) <= widthH;
308
+ }
309
+ }
310
+ return false;
311
+ }
312
+ /**
313
+ * @inheritDoc
314
+ */
315
+ intersectsSegment(xA, yA, xB, yB, intersectionPointA = null, intersectionPointB = null, normalRadians = null) {
316
+ const intersectionCount = EllipseBoundingBoxData.ellipseIntersectsSegment(xA, yA, xB, yB, 0.0, 0.0, this.width * 0.5, this.height * 0.5, intersectionPointA, intersectionPointB, normalRadians);
317
+ return intersectionCount;
318
+ }
319
+ }
320
+ /**
321
+ * - The polygon bounding box data.
322
+ * @version DragonBones 5.1
323
+ * @language en_US
324
+ */
325
+ export class PolygonBoundingBoxData extends BoundingBoxData {
326
+ constructor() {
327
+ super(...arguments);
328
+ /**
329
+ * - The polygon vertices.
330
+ * @version DragonBones 5.1
331
+ * @language en_US
332
+ */
333
+ this.vertices = [];
334
+ }
335
+ static toString() {
336
+ return "[class dragonBones.PolygonBoundingBoxData]";
337
+ }
338
+ /**
339
+ * @private
340
+ */
341
+ static polygonIntersectsSegment(xA, yA, xB, yB, vertices, intersectionPointA = null, intersectionPointB = null, normalRadians = null) {
342
+ if (xA === xB) {
343
+ xA = xB + 0.000001;
344
+ }
345
+ if (yA === yB) {
346
+ yA = yB + 0.000001;
347
+ }
348
+ const count = vertices.length;
349
+ const dXAB = xA - xB;
350
+ const dYAB = yA - yB;
351
+ const llAB = xA * yB - yA * xB;
352
+ let intersectionCount = 0;
353
+ let xC = vertices[count - 2];
354
+ let yC = vertices[count - 1];
355
+ let dMin = 0.0;
356
+ let dMax = 0.0;
357
+ let xMin = 0.0;
358
+ let yMin = 0.0;
359
+ let xMax = 0.0;
360
+ let yMax = 0.0;
361
+ for (let i = 0; i < count; i += 2) {
362
+ const xD = vertices[i];
363
+ const yD = vertices[i + 1];
364
+ if (xC === xD) {
365
+ xC = xD + 0.0001;
366
+ }
367
+ if (yC === yD) {
368
+ yC = yD + 0.0001;
369
+ }
370
+ const dXCD = xC - xD;
371
+ const dYCD = yC - yD;
372
+ const llCD = xC * yD - yC * xD;
373
+ const ll = dXAB * dYCD - dYAB * dXCD;
374
+ const x = (llAB * dXCD - dXAB * llCD) / ll;
375
+ if (((x >= xC && x <= xD) || (x >= xD && x <= xC)) &&
376
+ (dXAB === 0.0 || (x >= xA && x <= xB) || (x >= xB && x <= xA))) {
377
+ const y = (llAB * dYCD - dYAB * llCD) / ll;
378
+ if (((y >= yC && y <= yD) || (y >= yD && y <= yC)) &&
379
+ (dYAB === 0.0 || (y >= yA && y <= yB) || (y >= yB && y <= yA))) {
380
+ if (intersectionPointB !== null) {
381
+ let d = x - xA;
382
+ if (d < 0.0) {
383
+ d = -d;
384
+ }
385
+ if (intersectionCount === 0) {
386
+ dMin = d;
387
+ dMax = d;
388
+ xMin = x;
389
+ yMin = y;
390
+ xMax = x;
391
+ yMax = y;
392
+ if (normalRadians !== null) {
393
+ normalRadians.x = Math.atan2(yD - yC, xD - xC) - Math.PI * 0.5;
394
+ normalRadians.y = normalRadians.x;
395
+ }
396
+ }
397
+ else {
398
+ if (d < dMin) {
399
+ dMin = d;
400
+ xMin = x;
401
+ yMin = y;
402
+ if (normalRadians !== null) {
403
+ normalRadians.x =
404
+ Math.atan2(yD - yC, xD - xC) - Math.PI * 0.5;
405
+ }
406
+ }
407
+ if (d > dMax) {
408
+ dMax = d;
409
+ xMax = x;
410
+ yMax = y;
411
+ if (normalRadians !== null) {
412
+ normalRadians.y =
413
+ Math.atan2(yD - yC, xD - xC) - Math.PI * 0.5;
414
+ }
415
+ }
416
+ }
417
+ intersectionCount++;
418
+ }
419
+ else {
420
+ xMin = x;
421
+ yMin = y;
422
+ xMax = x;
423
+ yMax = y;
424
+ intersectionCount++;
425
+ if (normalRadians !== null) {
426
+ normalRadians.x = Math.atan2(yD - yC, xD - xC) - Math.PI * 0.5;
427
+ normalRadians.y = normalRadians.x;
428
+ }
429
+ break;
430
+ }
431
+ }
432
+ }
433
+ xC = xD;
434
+ yC = yD;
435
+ }
436
+ if (intersectionCount === 1) {
437
+ if (intersectionPointA !== null) {
438
+ intersectionPointA.x = xMin;
439
+ intersectionPointA.y = yMin;
440
+ }
441
+ if (intersectionPointB !== null) {
442
+ intersectionPointB.x = xMin;
443
+ intersectionPointB.y = yMin;
444
+ }
445
+ if (normalRadians !== null) {
446
+ normalRadians.y = normalRadians.x + Math.PI;
447
+ }
448
+ }
449
+ else if (intersectionCount > 1) {
450
+ intersectionCount++;
451
+ if (intersectionPointA !== null) {
452
+ intersectionPointA.x = xMin;
453
+ intersectionPointA.y = yMin;
454
+ }
455
+ if (intersectionPointB !== null) {
456
+ intersectionPointB.x = xMax;
457
+ intersectionPointB.y = yMax;
458
+ }
459
+ }
460
+ return intersectionCount;
461
+ }
462
+ _onClear() {
463
+ super._onClear();
464
+ this.type = 2 /* BoundingBoxType.Polygon */;
465
+ this.x = 0.0;
466
+ this.y = 0.0;
467
+ this.vertices.length = 0;
468
+ }
469
+ /**
470
+ * @inheritDoc
471
+ */
472
+ containsPoint(pX, pY) {
473
+ let isInSide = false;
474
+ if (pX >= this.x && pX <= this.width && pY >= this.y && pY <= this.height) {
475
+ for (let i = 0, l = this.vertices.length, iP = l - 2; i < l; i += 2) {
476
+ const yA = this.vertices[iP + 1];
477
+ const yB = this.vertices[i + 1];
478
+ if ((yB < pY && yA >= pY) || (yA < pY && yB >= pY)) {
479
+ const xA = this.vertices[iP];
480
+ const xB = this.vertices[i];
481
+ if (((pY - yB) * (xA - xB)) / (yA - yB) + xB < pX) {
482
+ isInSide = !isInSide;
483
+ }
484
+ }
485
+ iP = i;
486
+ }
487
+ }
488
+ return isInSide;
489
+ }
490
+ /**
491
+ * @inheritDoc
492
+ */
493
+ intersectsSegment(xA, yA, xB, yB, intersectionPointA = null, intersectionPointB = null, normalRadians = null) {
494
+ let intersectionCount = 0;
495
+ if (RectangleBoundingBoxData.rectangleIntersectsSegment(xA, yA, xB, yB, this.x, this.y, this.x + this.width, this.y + this.height, null, null, null) !== 0) {
496
+ intersectionCount = PolygonBoundingBoxData.polygonIntersectsSegment(xA, yA, xB, yB, this.vertices, intersectionPointA, intersectionPointB, normalRadians);
497
+ }
498
+ return intersectionCount;
499
+ }
500
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ /**
3
+ * @private
4
+ */
5
+ export declare class CanvasData extends BaseObject {
6
+ static toString(): string;
7
+ hasBackground: boolean;
8
+ color: number;
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ protected _onClear(): void;
14
+ }
15
+ //# sourceMappingURL=CanvasData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanvasData.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/model/CanvasData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;WAC1B,QAAQ,IAAI,MAAM;IAIzB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,QAAQ,IAAI,IAAI;CAQ3B"}
@@ -0,0 +1,17 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ /**
3
+ * @private
4
+ */
5
+ export class CanvasData extends BaseObject {
6
+ static toString() {
7
+ return "[class dragonBones.CanvasData]";
8
+ }
9
+ _onClear() {
10
+ this.hasBackground = false;
11
+ this.color = 0x000000;
12
+ this.x = 0;
13
+ this.y = 0;
14
+ this.width = 0;
15
+ this.height = 0;
16
+ }
17
+ }
@@ -0,0 +1,46 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ import { ConstraintType, PositionMode, SpacingMode, RotateMode } from "../core/DragonBones";
3
+ import { BoneData, SlotData } from "./ArmatureData";
4
+ import { PathDisplayData } from "./DisplayData";
5
+ /**
6
+ * @private
7
+ */
8
+ export declare abstract class ConstraintData extends BaseObject {
9
+ order: number;
10
+ name: string;
11
+ type: ConstraintType;
12
+ target: BoneData;
13
+ root: BoneData;
14
+ bone: BoneData | null;
15
+ protected _onClear(): void;
16
+ }
17
+ /**
18
+ * @internal
19
+ */
20
+ export declare class IKConstraintData extends ConstraintData {
21
+ static toString(): string;
22
+ scaleEnabled: boolean;
23
+ bendPositive: boolean;
24
+ weight: number;
25
+ protected _onClear(): void;
26
+ }
27
+ /**
28
+ * @internal
29
+ */
30
+ export declare class PathConstraintData extends ConstraintData {
31
+ static toString(): string;
32
+ pathSlot: SlotData;
33
+ pathDisplayData: PathDisplayData;
34
+ bones: Array<BoneData>;
35
+ positionMode: PositionMode;
36
+ spacingMode: SpacingMode;
37
+ rotateMode: RotateMode;
38
+ position: number;
39
+ spacing: number;
40
+ rotateOffset: number;
41
+ rotateMix: number;
42
+ translateMix: number;
43
+ protected _onClear(): void;
44
+ AddBone(value: BoneData): void;
45
+ }
46
+ //# sourceMappingURL=ConstraintData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConstraintData.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/model/ConstraintData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,8BAAsB,cAAe,SAAQ,UAAU;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE7B,SAAS,CAAC,QAAQ,IAAI,IAAI;CAQ3B;AACD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;WACpC,QAAQ,IAAI,MAAM;IAIzB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,QAAQ,IAAI,IAAI;CAO3B;AACD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;WACtC,QAAQ,IAAI,MAAM;IAIzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAM;IAE5B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IAEvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAE5B,SAAS,CAAC,QAAQ,IAAI,IAAI;IAkBnB,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAGtC"}
@@ -0,0 +1,57 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ /**
3
+ * @private
4
+ */
5
+ export class ConstraintData extends BaseObject {
6
+ _onClear() {
7
+ this.order = 0;
8
+ this.name = "";
9
+ this.type = 0 /* ConstraintType.IK */;
10
+ this.target = null; //
11
+ this.root = null; //
12
+ this.bone = null;
13
+ }
14
+ }
15
+ /**
16
+ * @internal
17
+ */
18
+ export class IKConstraintData extends ConstraintData {
19
+ static toString() {
20
+ return "[class dragonBones.IKConstraintData]";
21
+ }
22
+ _onClear() {
23
+ super._onClear();
24
+ this.scaleEnabled = false;
25
+ this.bendPositive = false;
26
+ this.weight = 1.0;
27
+ }
28
+ }
29
+ /**
30
+ * @internal
31
+ */
32
+ export class PathConstraintData extends ConstraintData {
33
+ constructor() {
34
+ super(...arguments);
35
+ this.bones = [];
36
+ }
37
+ static toString() {
38
+ return "[class dragonBones.PathConstraintData]";
39
+ }
40
+ _onClear() {
41
+ super._onClear();
42
+ this.pathSlot = null;
43
+ this.pathDisplayData = null;
44
+ this.bones.length = 0;
45
+ this.positionMode = 0 /* PositionMode.Fixed */;
46
+ this.spacingMode = 1 /* SpacingMode.Fixed */;
47
+ this.rotateMode = 1 /* RotateMode.Chain */;
48
+ this.position = 0.0;
49
+ this.spacing = 0.0;
50
+ this.rotateOffset = 0.0;
51
+ this.rotateMix = 0.0;
52
+ this.translateMix = 0.0;
53
+ }
54
+ AddBone(value) {
55
+ this.bones.push(value);
56
+ }
57
+ }