@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.
- package/dist/app.d.ts +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +20 -1
- package/dist/core/NodePool.d.ts +1 -1
- package/dist/core/Size.d.ts +0 -1
- package/dist/core/Size.d.ts.map +1 -1
- package/dist/dragonbones/DragonBonesComponent.d.ts +1 -1
- package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -1
- package/dist/dragonbones/DragonBonesComponent.js +1 -1
- package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
- package/dist/dragonbones/DragonBonesSystem.js +1 -1
- package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts +59 -0
- package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiArmatureDisplay.js +180 -0
- package/dist/dragonbones/db-pixi/PixiFactory.d.ts +87 -0
- package/dist/dragonbones/db-pixi/PixiFactory.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiFactory.js +159 -0
- package/dist/dragonbones/db-pixi/PixiSlot.d.ts +31 -0
- package/dist/dragonbones/db-pixi/PixiSlot.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiSlot.js +332 -0
- package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts +38 -0
- package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiTextureAtlasData.js +85 -0
- package/dist/dragonbones/db-pixi/index.d.ts +5 -0
- package/dist/dragonbones/db-pixi/index.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/index.js +4 -0
- package/dist/dragonbones/dragonBones/animation/Animation.d.ts +241 -0
- package/dist/dragonbones/dragonBones/animation/Animation.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/Animation.js +692 -0
- package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts +323 -0
- package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/AnimationState.js +1161 -0
- package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts +100 -0
- package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/BaseTimelineState.js +479 -0
- package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts +38 -0
- package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/IAnimatable.js +9 -0
- package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts +159 -0
- package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/TimelineState.js +998 -0
- package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts +74 -0
- package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/WorldClock.js +162 -0
- package/dist/dragonbones/dragonBones/armature/Armature.d.ts +314 -0
- package/dist/dragonbones/dragonBones/armature/Armature.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Armature.js +650 -0
- package/dist/dragonbones/dragonBones/armature/Bone.d.ts +123 -0
- package/dist/dragonbones/dragonBones/armature/Bone.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Bone.js +438 -0
- package/dist/dragonbones/dragonBones/armature/Constraint.d.ts +99 -0
- package/dist/dragonbones/dragonBones/armature/Constraint.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Constraint.js +672 -0
- package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts +47 -0
- package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/IArmatureProxy.js +1 -0
- package/dist/dragonbones/dragonBones/armature/Slot.d.ts +357 -0
- package/dist/dragonbones/dragonBones/armature/Slot.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Slot.js +1009 -0
- package/dist/dragonbones/dragonBones/armature/Surface.d.ts +41 -0
- package/dist/dragonbones/dragonBones/armature/Surface.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Surface.js +463 -0
- package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts +80 -0
- package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/TransformObject.js +77 -0
- package/dist/dragonbones/dragonBones/core/BaseObject.d.ts +53 -0
- package/dist/dragonbones/dragonBones/core/BaseObject.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/core/BaseObject.js +130 -0
- package/dist/dragonbones/dragonBones/core/DragonBones.d.ts +236 -0
- package/dist/dragonbones/dragonBones/core/DragonBones.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/core/DragonBones.js +61 -0
- package/dist/dragonbones/dragonBones/event/EventObject.d.ts +143 -0
- package/dist/dragonbones/dragonBones/event/EventObject.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/event/EventObject.js +99 -0
- package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts +48 -0
- package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/event/IEventDispatcher.js +1 -0
- package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts +292 -0
- package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/factory/BaseFactory.js +735 -0
- package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts +17 -0
- package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/ColorTransform.js +33 -0
- package/dist/dragonbones/dragonBones/geom/Curve.d.ts +10 -0
- package/dist/dragonbones/dragonBones/geom/Curve.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Curve.js +26 -0
- package/dist/dragonbones/dragonBones/geom/Matrix.d.ts +105 -0
- package/dist/dragonbones/dragonBones/geom/Matrix.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Matrix.js +207 -0
- package/dist/dragonbones/dragonBones/geom/Point.d.ts +38 -0
- package/dist/dragonbones/dragonBones/geom/Point.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Point.js +31 -0
- package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts +53 -0
- package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Rectangle.js +37 -0
- package/dist/dragonbones/dragonBones/geom/Transform.d.ts +102 -0
- package/dist/dragonbones/dragonBones/geom/Transform.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Transform.js +170 -0
- package/dist/dragonbones/dragonBones/index.d.ts +37 -0
- package/dist/dragonbones/dragonBones/index.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/index.js +36 -0
- package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts +162 -0
- package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/AnimationConfig.js +81 -0
- package/dist/dragonbones/dragonBones/model/AnimationData.d.ts +174 -0
- package/dist/dragonbones/dragonBones/model/AnimationData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/AnimationData.js +256 -0
- package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts +319 -0
- package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/ArmatureData.js +450 -0
- package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts +188 -0
- package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/BoundingBoxData.js +500 -0
- package/dist/dragonbones/dragonBones/model/CanvasData.d.ts +15 -0
- package/dist/dragonbones/dragonBones/model/CanvasData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/CanvasData.js +17 -0
- package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts +46 -0
- package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/ConstraintData.js +57 -0
- package/dist/dragonbones/dragonBones/model/DisplayData.d.ts +98 -0
- package/dist/dragonbones/dragonBones/model/DisplayData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/DisplayData.js +174 -0
- package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts +108 -0
- package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/DragonBonesData.js +86 -0
- package/dist/dragonbones/dragonBones/model/SkinData.d.ts +40 -0
- package/dist/dragonbones/dragonBones/model/SkinData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/SkinData.js +68 -0
- package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts +73 -0
- package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/TextureAtlasData.js +102 -0
- package/dist/dragonbones/dragonBones/model/UserData.d.ts +73 -0
- package/dist/dragonbones/dragonBones/model/UserData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/UserData.js +101 -0
- package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts +29 -0
- package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/parser/BinaryDataParser.js +356 -0
- package/dist/dragonbones/dragonBones/parser/DataParser.d.ts +153 -0
- package/dist/dragonbones/dragonBones/parser/DataParser.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/parser/DataParser.js +283 -0
- package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts +130 -0
- package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/parser/ObjectDataParser.js +2098 -0
- package/dist/dragonbones/index.js +1 -1
- package/dist/helper/utils.js +1 -1
- 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
|
+
}
|