@safe-engine/pixi 8.8.2 → 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 (141) 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/dragonbones/DragonBonesComponent.d.ts +1 -1
  5. package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -1
  6. package/dist/dragonbones/DragonBonesComponent.js +1 -1
  7. package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
  8. package/dist/dragonbones/DragonBonesSystem.js +1 -1
  9. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts +59 -0
  10. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts.map +1 -0
  11. package/dist/dragonbones/db-pixi/PixiArmatureDisplay.js +180 -0
  12. package/dist/dragonbones/db-pixi/PixiFactory.d.ts +87 -0
  13. package/dist/dragonbones/db-pixi/PixiFactory.d.ts.map +1 -0
  14. package/dist/dragonbones/db-pixi/PixiFactory.js +159 -0
  15. package/dist/dragonbones/db-pixi/PixiSlot.d.ts +31 -0
  16. package/dist/dragonbones/db-pixi/PixiSlot.d.ts.map +1 -0
  17. package/dist/dragonbones/db-pixi/PixiSlot.js +332 -0
  18. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts +38 -0
  19. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts.map +1 -0
  20. package/dist/dragonbones/db-pixi/PixiTextureAtlasData.js +85 -0
  21. package/dist/dragonbones/db-pixi/index.d.ts +5 -0
  22. package/dist/dragonbones/db-pixi/index.d.ts.map +1 -0
  23. package/dist/dragonbones/db-pixi/index.js +4 -0
  24. package/dist/dragonbones/dragonBones/animation/Animation.d.ts +241 -0
  25. package/dist/dragonbones/dragonBones/animation/Animation.d.ts.map +1 -0
  26. package/dist/dragonbones/dragonBones/animation/Animation.js +692 -0
  27. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts +323 -0
  28. package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts.map +1 -0
  29. package/dist/dragonbones/dragonBones/animation/AnimationState.js +1161 -0
  30. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts +100 -0
  31. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts.map +1 -0
  32. package/dist/dragonbones/dragonBones/animation/BaseTimelineState.js +479 -0
  33. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts +38 -0
  34. package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts.map +1 -0
  35. package/dist/dragonbones/dragonBones/animation/IAnimatable.js +9 -0
  36. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts +159 -0
  37. package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts.map +1 -0
  38. package/dist/dragonbones/dragonBones/animation/TimelineState.js +998 -0
  39. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts +74 -0
  40. package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts.map +1 -0
  41. package/dist/dragonbones/dragonBones/animation/WorldClock.js +162 -0
  42. package/dist/dragonbones/dragonBones/armature/Armature.d.ts +314 -0
  43. package/dist/dragonbones/dragonBones/armature/Armature.d.ts.map +1 -0
  44. package/dist/dragonbones/dragonBones/armature/Armature.js +650 -0
  45. package/dist/dragonbones/dragonBones/armature/Bone.d.ts +123 -0
  46. package/dist/dragonbones/dragonBones/armature/Bone.d.ts.map +1 -0
  47. package/dist/dragonbones/dragonBones/armature/Bone.js +438 -0
  48. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts +99 -0
  49. package/dist/dragonbones/dragonBones/armature/Constraint.d.ts.map +1 -0
  50. package/dist/dragonbones/dragonBones/armature/Constraint.js +672 -0
  51. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts +47 -0
  52. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts.map +1 -0
  53. package/dist/dragonbones/dragonBones/armature/IArmatureProxy.js +1 -0
  54. package/dist/dragonbones/dragonBones/armature/Slot.d.ts +357 -0
  55. package/dist/dragonbones/dragonBones/armature/Slot.d.ts.map +1 -0
  56. package/dist/dragonbones/dragonBones/armature/Slot.js +1009 -0
  57. package/dist/dragonbones/dragonBones/armature/Surface.d.ts +41 -0
  58. package/dist/dragonbones/dragonBones/armature/Surface.d.ts.map +1 -0
  59. package/dist/dragonbones/dragonBones/armature/Surface.js +463 -0
  60. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts +80 -0
  61. package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts.map +1 -0
  62. package/dist/dragonbones/dragonBones/armature/TransformObject.js +77 -0
  63. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts +53 -0
  64. package/dist/dragonbones/dragonBones/core/BaseObject.d.ts.map +1 -0
  65. package/dist/dragonbones/dragonBones/core/BaseObject.js +130 -0
  66. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts +236 -0
  67. package/dist/dragonbones/dragonBones/core/DragonBones.d.ts.map +1 -0
  68. package/dist/dragonbones/dragonBones/core/DragonBones.js +61 -0
  69. package/dist/dragonbones/dragonBones/event/EventObject.d.ts +143 -0
  70. package/dist/dragonbones/dragonBones/event/EventObject.d.ts.map +1 -0
  71. package/dist/dragonbones/dragonBones/event/EventObject.js +99 -0
  72. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts +48 -0
  73. package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts.map +1 -0
  74. package/dist/dragonbones/dragonBones/event/IEventDispatcher.js +1 -0
  75. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts +292 -0
  76. package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts.map +1 -0
  77. package/dist/dragonbones/dragonBones/factory/BaseFactory.js +735 -0
  78. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts +17 -0
  79. package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts.map +1 -0
  80. package/dist/dragonbones/dragonBones/geom/ColorTransform.js +33 -0
  81. package/dist/dragonbones/dragonBones/geom/Curve.d.ts +10 -0
  82. package/dist/dragonbones/dragonBones/geom/Curve.d.ts.map +1 -0
  83. package/dist/dragonbones/dragonBones/geom/Curve.js +26 -0
  84. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts +105 -0
  85. package/dist/dragonbones/dragonBones/geom/Matrix.d.ts.map +1 -0
  86. package/dist/dragonbones/dragonBones/geom/Matrix.js +207 -0
  87. package/dist/dragonbones/dragonBones/geom/Point.d.ts +38 -0
  88. package/dist/dragonbones/dragonBones/geom/Point.d.ts.map +1 -0
  89. package/dist/dragonbones/dragonBones/geom/Point.js +31 -0
  90. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts +53 -0
  91. package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts.map +1 -0
  92. package/dist/dragonbones/dragonBones/geom/Rectangle.js +37 -0
  93. package/dist/dragonbones/dragonBones/geom/Transform.d.ts +102 -0
  94. package/dist/dragonbones/dragonBones/geom/Transform.d.ts.map +1 -0
  95. package/dist/dragonbones/dragonBones/geom/Transform.js +170 -0
  96. package/dist/dragonbones/dragonBones/index.d.ts +37 -0
  97. package/dist/dragonbones/dragonBones/index.d.ts.map +1 -0
  98. package/dist/dragonbones/dragonBones/index.js +36 -0
  99. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts +162 -0
  100. package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts.map +1 -0
  101. package/dist/dragonbones/dragonBones/model/AnimationConfig.js +81 -0
  102. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts +174 -0
  103. package/dist/dragonbones/dragonBones/model/AnimationData.d.ts.map +1 -0
  104. package/dist/dragonbones/dragonBones/model/AnimationData.js +256 -0
  105. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts +319 -0
  106. package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts.map +1 -0
  107. package/dist/dragonbones/dragonBones/model/ArmatureData.js +450 -0
  108. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts +188 -0
  109. package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts.map +1 -0
  110. package/dist/dragonbones/dragonBones/model/BoundingBoxData.js +500 -0
  111. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts +15 -0
  112. package/dist/dragonbones/dragonBones/model/CanvasData.d.ts.map +1 -0
  113. package/dist/dragonbones/dragonBones/model/CanvasData.js +17 -0
  114. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts +46 -0
  115. package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts.map +1 -0
  116. package/dist/dragonbones/dragonBones/model/ConstraintData.js +57 -0
  117. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts +98 -0
  118. package/dist/dragonbones/dragonBones/model/DisplayData.d.ts.map +1 -0
  119. package/dist/dragonbones/dragonBones/model/DisplayData.js +174 -0
  120. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts +108 -0
  121. package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts.map +1 -0
  122. package/dist/dragonbones/dragonBones/model/DragonBonesData.js +86 -0
  123. package/dist/dragonbones/dragonBones/model/SkinData.d.ts +40 -0
  124. package/dist/dragonbones/dragonBones/model/SkinData.d.ts.map +1 -0
  125. package/dist/dragonbones/dragonBones/model/SkinData.js +68 -0
  126. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts +73 -0
  127. package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts.map +1 -0
  128. package/dist/dragonbones/dragonBones/model/TextureAtlasData.js +102 -0
  129. package/dist/dragonbones/dragonBones/model/UserData.d.ts +73 -0
  130. package/dist/dragonbones/dragonBones/model/UserData.d.ts.map +1 -0
  131. package/dist/dragonbones/dragonBones/model/UserData.js +101 -0
  132. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts +29 -0
  133. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts.map +1 -0
  134. package/dist/dragonbones/dragonBones/parser/BinaryDataParser.js +356 -0
  135. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts +153 -0
  136. package/dist/dragonbones/dragonBones/parser/DataParser.d.ts.map +1 -0
  137. package/dist/dragonbones/dragonBones/parser/DataParser.js +283 -0
  138. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts +130 -0
  139. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts.map +1 -0
  140. package/dist/dragonbones/dragonBones/parser/ObjectDataParser.js +2098 -0
  141. package/package.json +1 -2
@@ -0,0 +1,102 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ import { Rectangle } from "../geom/Rectangle";
3
+ /**
4
+ * - The texture atlas data.
5
+ * @version DragonBones 3.0
6
+ * @language en_US
7
+ */
8
+ export class TextureAtlasData extends BaseObject {
9
+ constructor() {
10
+ super(...arguments);
11
+ /**
12
+ * @private
13
+ */
14
+ this.textures = {};
15
+ }
16
+ _onClear() {
17
+ for (let k in this.textures) {
18
+ this.textures[k].returnToPool();
19
+ delete this.textures[k];
20
+ }
21
+ this.autoSearch = false;
22
+ this.width = 0;
23
+ this.height = 0;
24
+ this.scale = 1.0;
25
+ // this.textures.clear();
26
+ this.name = "";
27
+ this.imagePath = "";
28
+ }
29
+ /**
30
+ * @private
31
+ */
32
+ copyFrom(value) {
33
+ this.autoSearch = value.autoSearch;
34
+ this.scale = value.scale;
35
+ this.width = value.width;
36
+ this.height = value.height;
37
+ this.name = value.name;
38
+ this.imagePath = value.imagePath;
39
+ for (let k in this.textures) {
40
+ this.textures[k].returnToPool();
41
+ delete this.textures[k];
42
+ }
43
+ // this.textures.clear();
44
+ for (let k in value.textures) {
45
+ const texture = this.createTexture();
46
+ texture.copyFrom(value.textures[k]);
47
+ this.textures[k] = texture;
48
+ }
49
+ }
50
+ /**
51
+ * @internal
52
+ */
53
+ addTexture(value) {
54
+ if (value.name in this.textures) {
55
+ console.warn("Same texture: " + value.name);
56
+ return;
57
+ }
58
+ value.parent = this;
59
+ this.textures[value.name] = value;
60
+ }
61
+ /**
62
+ * @private
63
+ */
64
+ getTexture(textureName) {
65
+ return textureName in this.textures ? this.textures[textureName] : null;
66
+ }
67
+ }
68
+ /**
69
+ * @private
70
+ */
71
+ export class TextureData extends BaseObject {
72
+ constructor() {
73
+ super(...arguments);
74
+ this.region = new Rectangle();
75
+ this.frame = null; // Initial value.
76
+ }
77
+ static createRectangle() {
78
+ return new Rectangle();
79
+ }
80
+ _onClear() {
81
+ this.rotated = false;
82
+ this.name = "";
83
+ this.region.clear();
84
+ this.parent = null; //
85
+ this.frame = null;
86
+ }
87
+ copyFrom(value) {
88
+ this.rotated = value.rotated;
89
+ this.name = value.name;
90
+ this.region.copyFrom(value.region);
91
+ this.parent = value.parent;
92
+ if (this.frame === null && value.frame !== null) {
93
+ this.frame = TextureData.createRectangle();
94
+ }
95
+ else if (this.frame !== null && value.frame === null) {
96
+ this.frame = null;
97
+ }
98
+ if (this.frame !== null && value.frame !== null) {
99
+ this.frame.copyFrom(value.frame);
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,73 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ import { ActionType } from "../core/DragonBones";
3
+ import { BoneData, SlotData } from "./ArmatureData";
4
+ /**
5
+ * - The user custom data.
6
+ * @version DragonBones 5.0
7
+ * @language en_US
8
+ */
9
+ export declare class UserData extends BaseObject {
10
+ static toString(): string;
11
+ /**
12
+ * - The custom int numbers.
13
+ * @version DragonBones 5.0
14
+ * @language en_US
15
+ */
16
+ readonly ints: Array<number>;
17
+ /**
18
+ * - The custom float numbers.
19
+ * @version DragonBones 5.0
20
+ * @language en_US
21
+ */
22
+ readonly floats: Array<number>;
23
+ /**
24
+ * - The custom strings.
25
+ * @version DragonBones 5.0
26
+ * @language en_US
27
+ */
28
+ readonly strings: Array<string>;
29
+ protected _onClear(): void;
30
+ /**
31
+ * @internal
32
+ */
33
+ addInt(value: number): void;
34
+ /**
35
+ * @internal
36
+ */
37
+ addFloat(value: number): void;
38
+ /**
39
+ * @internal
40
+ */
41
+ addString(value: string): void;
42
+ /**
43
+ * - Get the custom int number.
44
+ * @version DragonBones 5.0
45
+ * @language en_US
46
+ */
47
+ getInt(index?: number): number;
48
+ /**
49
+ * - Get the custom float number.
50
+ * @version DragonBones 5.0
51
+ * @language en_US
52
+ */
53
+ getFloat(index?: number): number;
54
+ /**
55
+ * - Get the custom string.
56
+ * @version DragonBones 5.0
57
+ * @language en_US
58
+ */
59
+ getString(index?: number): string;
60
+ }
61
+ /**
62
+ * @private
63
+ */
64
+ export declare class ActionData extends BaseObject {
65
+ static toString(): string;
66
+ type: ActionType;
67
+ name: string;
68
+ bone: BoneData | null;
69
+ slot: SlotData | null;
70
+ data: UserData | null;
71
+ protected _onClear(): void;
72
+ }
73
+ //# sourceMappingURL=UserData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserData.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/model/UserData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,UAAU;WACxB,QAAQ,IAAI,MAAM;IAGhC;;;;OAIG;IACH,SAAgB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IACzC;;;;OAIG;IACH,SAAgB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAC3C;;;;OAIG;IACH,SAAgB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAE5C,SAAS,CAAC,QAAQ,IAAI,IAAI;IAK1B;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGlC;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGpC;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGrC;;;;OAIG;IACI,MAAM,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;IAGxC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;IAG1C;;;;OAIG;IACI,SAAS,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;CAG5C;AACD;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;WAC1B,QAAQ,IAAI,MAAM;IAIzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEpC,SAAS,CAAC,QAAQ,IAAI,IAAI;CAW3B"}
@@ -0,0 +1,101 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ /**
3
+ * - The user custom data.
4
+ * @version DragonBones 5.0
5
+ * @language en_US
6
+ */
7
+ export class UserData extends BaseObject {
8
+ constructor() {
9
+ super(...arguments);
10
+ /**
11
+ * - The custom int numbers.
12
+ * @version DragonBones 5.0
13
+ * @language en_US
14
+ */
15
+ this.ints = [];
16
+ /**
17
+ * - The custom float numbers.
18
+ * @version DragonBones 5.0
19
+ * @language en_US
20
+ */
21
+ this.floats = [];
22
+ /**
23
+ * - The custom strings.
24
+ * @version DragonBones 5.0
25
+ * @language en_US
26
+ */
27
+ this.strings = [];
28
+ }
29
+ static toString() {
30
+ return "[class dragonBones.UserData]";
31
+ }
32
+ _onClear() {
33
+ this.ints.length = 0;
34
+ this.floats.length = 0;
35
+ this.strings.length = 0;
36
+ }
37
+ /**
38
+ * @internal
39
+ */
40
+ addInt(value) {
41
+ this.ints.push(value);
42
+ }
43
+ /**
44
+ * @internal
45
+ */
46
+ addFloat(value) {
47
+ this.floats.push(value);
48
+ }
49
+ /**
50
+ * @internal
51
+ */
52
+ addString(value) {
53
+ this.strings.push(value);
54
+ }
55
+ /**
56
+ * - Get the custom int number.
57
+ * @version DragonBones 5.0
58
+ * @language en_US
59
+ */
60
+ getInt(index = 0) {
61
+ return index >= 0 && index < this.ints.length ? this.ints[index] : 0;
62
+ }
63
+ /**
64
+ * - Get the custom float number.
65
+ * @version DragonBones 5.0
66
+ * @language en_US
67
+ */
68
+ getFloat(index = 0) {
69
+ return index >= 0 && index < this.floats.length ? this.floats[index] : 0.0;
70
+ }
71
+ /**
72
+ * - Get the custom string.
73
+ * @version DragonBones 5.0
74
+ * @language en_US
75
+ */
76
+ getString(index = 0) {
77
+ return index >= 0 && index < this.strings.length ? this.strings[index] : "";
78
+ }
79
+ }
80
+ /**
81
+ * @private
82
+ */
83
+ export class ActionData extends BaseObject {
84
+ constructor() {
85
+ super(...arguments);
86
+ this.data = null; //
87
+ }
88
+ static toString() {
89
+ return "[class dragonBones.ActionData]";
90
+ }
91
+ _onClear() {
92
+ if (this.data !== null) {
93
+ this.data.returnToPool();
94
+ }
95
+ this.type = 0 /* ActionType.Play */;
96
+ this.name = "";
97
+ this.bone = null;
98
+ this.slot = null;
99
+ this.data = null;
100
+ }
101
+ }
@@ -0,0 +1,29 @@
1
+ import { AnimationData } from "../model/AnimationData";
2
+ import { GeometryData } from "../model/DisplayData";
3
+ import { DragonBonesData } from "../model/DragonBonesData";
4
+ import { ObjectDataParser } from "./ObjectDataParser";
5
+ /**
6
+ * @private
7
+ */
8
+ export declare class BinaryDataParser extends ObjectDataParser {
9
+ private _binaryOffset;
10
+ private _binary;
11
+ private _intArrayBuffer;
12
+ private _frameArrayBuffer;
13
+ private _timelineArrayBuffer;
14
+ private _inRange;
15
+ private _decodeUTF8;
16
+ private _parseBinaryTimeline;
17
+ protected _parseAnimation(rawData: any): AnimationData;
18
+ protected _parseGeometry(rawData: any, geometry: GeometryData): void;
19
+ protected _parseArray(rawData: any): void;
20
+ parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null;
21
+ private static _binaryDataParserInstance;
22
+ /**
23
+ * - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.
24
+ * @deprecated
25
+ * @language en_US
26
+ */
27
+ static getInstance(): BinaryDataParser;
28
+ }
29
+ //# sourceMappingURL=BinaryDataParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryDataParser.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/parser/BinaryDataParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAuC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAAc;IAE1C,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IA4FnB,OAAO,CAAC,oBAAoB;IAiE5B,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,aAAa;IAiNtD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAsCpE,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IA0DlC,oBAAoB,CACzB,OAAO,EAAE,GAAG,EACZ,KAAK,GAAE,MAAU,GAChB,eAAe,GAAG,IAAI;IA8BzB,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAiC;IACzE;;;;OAIG;WACW,WAAW,IAAI,gBAAgB;CAO9C"}
@@ -0,0 +1,356 @@
1
+ import { BaseObject } from "../core/BaseObject";
2
+ import { AnimationData, AnimationTimelineData, TimelineData } from "../model/AnimationData";
3
+ import { WeightData } from "../model/DisplayData";
4
+ import { DataParser } from "./DataParser";
5
+ import { ObjectDataParser } from "./ObjectDataParser";
6
+ /**
7
+ * @private
8
+ */
9
+ export class BinaryDataParser extends ObjectDataParser {
10
+ _inRange(a, min, max) {
11
+ return min <= a && a <= max;
12
+ }
13
+ _decodeUTF8(data) {
14
+ const EOF_byte = -1;
15
+ const EOF_code_point = -1;
16
+ const FATAL_POINT = 0xfffd;
17
+ let pos = 0;
18
+ let result = "";
19
+ let code_point;
20
+ let utf8_code_point = 0;
21
+ let utf8_bytes_needed = 0;
22
+ let utf8_bytes_seen = 0;
23
+ let utf8_lower_boundary = 0;
24
+ while (data.length > pos) {
25
+ let _byte = data[pos++];
26
+ if (_byte === EOF_byte) {
27
+ if (utf8_bytes_needed !== 0) {
28
+ code_point = FATAL_POINT;
29
+ }
30
+ else {
31
+ code_point = EOF_code_point;
32
+ }
33
+ }
34
+ else {
35
+ if (utf8_bytes_needed === 0) {
36
+ if (this._inRange(_byte, 0x00, 0x7f)) {
37
+ code_point = _byte;
38
+ }
39
+ else {
40
+ if (this._inRange(_byte, 0xc2, 0xdf)) {
41
+ utf8_bytes_needed = 1;
42
+ utf8_lower_boundary = 0x80;
43
+ utf8_code_point = _byte - 0xc0;
44
+ }
45
+ else if (this._inRange(_byte, 0xe0, 0xef)) {
46
+ utf8_bytes_needed = 2;
47
+ utf8_lower_boundary = 0x800;
48
+ utf8_code_point = _byte - 0xe0;
49
+ }
50
+ else if (this._inRange(_byte, 0xf0, 0xf4)) {
51
+ utf8_bytes_needed = 3;
52
+ utf8_lower_boundary = 0x10000;
53
+ utf8_code_point = _byte - 0xf0;
54
+ }
55
+ else {
56
+ }
57
+ utf8_code_point = utf8_code_point * Math.pow(64, utf8_bytes_needed);
58
+ code_point = null;
59
+ }
60
+ }
61
+ else if (!this._inRange(_byte, 0x80, 0xbf)) {
62
+ utf8_code_point = 0;
63
+ utf8_bytes_needed = 0;
64
+ utf8_bytes_seen = 0;
65
+ utf8_lower_boundary = 0;
66
+ pos--;
67
+ code_point = _byte;
68
+ }
69
+ else {
70
+ utf8_bytes_seen += 1;
71
+ utf8_code_point =
72
+ utf8_code_point +
73
+ (_byte - 0x80) * Math.pow(64, utf8_bytes_needed - utf8_bytes_seen);
74
+ if (utf8_bytes_seen !== utf8_bytes_needed) {
75
+ code_point = null;
76
+ }
77
+ else {
78
+ let cp = utf8_code_point;
79
+ let lower_boundary = utf8_lower_boundary;
80
+ utf8_code_point = 0;
81
+ utf8_bytes_needed = 0;
82
+ utf8_bytes_seen = 0;
83
+ utf8_lower_boundary = 0;
84
+ if (this._inRange(cp, lower_boundary, 0x10ffff) &&
85
+ !this._inRange(cp, 0xd800, 0xdfff)) {
86
+ code_point = cp;
87
+ }
88
+ else {
89
+ code_point = _byte;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ //Decode string
95
+ if (code_point !== null && code_point !== EOF_code_point) {
96
+ if (code_point <= 0xffff) {
97
+ if (code_point > 0)
98
+ result += String.fromCharCode(code_point);
99
+ }
100
+ else {
101
+ code_point -= 0x10000;
102
+ result += String.fromCharCode(0xd800 + ((code_point >> 10) & 0x3ff));
103
+ result += String.fromCharCode(0xdc00 + (code_point & 0x3ff));
104
+ }
105
+ }
106
+ }
107
+ return result;
108
+ }
109
+ _parseBinaryTimeline(type, offset, timelineData = null) {
110
+ const timeline = timelineData !== null
111
+ ? timelineData
112
+ : BaseObject.borrowObject(TimelineData);
113
+ timeline.type = type;
114
+ timeline.offset = offset;
115
+ this._timeline = timeline;
116
+ const keyFrameCount = this._timelineArrayBuffer[timeline.offset + 2 /* BinaryOffset.TimelineKeyFrameCount */];
117
+ if (keyFrameCount === 1) {
118
+ timeline.frameIndicesOffset = -1;
119
+ }
120
+ else {
121
+ let frameIndicesOffset = 0;
122
+ const totalFrameCount = this._animation.frameCount + 1; // One more frame than animation.
123
+ const frameIndices = this._data.frameIndices;
124
+ frameIndicesOffset = frameIndices.length;
125
+ frameIndices.length += totalFrameCount;
126
+ timeline.frameIndicesOffset = frameIndicesOffset;
127
+ for (let i = 0, iK = 0, frameStart = 0, frameCount = 0; i < totalFrameCount; ++i) {
128
+ if (frameStart + frameCount <= i && iK < keyFrameCount) {
129
+ frameStart =
130
+ this._frameArrayBuffer[this._animation.frameOffset +
131
+ this._timelineArrayBuffer[timeline.offset + 5 /* BinaryOffset.TimelineFrameOffset */ + iK]];
132
+ if (iK === keyFrameCount - 1) {
133
+ frameCount = this._animation.frameCount - frameStart;
134
+ }
135
+ else {
136
+ frameCount =
137
+ this._frameArrayBuffer[this._animation.frameOffset +
138
+ this._timelineArrayBuffer[timeline.offset + 5 /* BinaryOffset.TimelineFrameOffset */ + iK + 1]] - frameStart;
139
+ }
140
+ iK++;
141
+ }
142
+ frameIndices[frameIndicesOffset + i] = iK - 1;
143
+ }
144
+ }
145
+ this._timeline = null; //
146
+ return timeline;
147
+ }
148
+ _parseAnimation(rawData) {
149
+ const animation = BaseObject.borrowObject(AnimationData);
150
+ animation.blendType = DataParser._getAnimationBlendType(ObjectDataParser._getString(rawData, DataParser.BLEND_TYPE, ""));
151
+ animation.frameCount = ObjectDataParser._getNumber(rawData, DataParser.DURATION, 0);
152
+ animation.playTimes = ObjectDataParser._getNumber(rawData, DataParser.PLAY_TIMES, 1);
153
+ animation.duration = animation.frameCount / this._armature.frameRate; // float
154
+ animation.fadeInTime = ObjectDataParser._getNumber(rawData, DataParser.FADE_IN_TIME, 0.0);
155
+ animation.scale = ObjectDataParser._getNumber(rawData, DataParser.SCALE, 1.0);
156
+ animation.name = ObjectDataParser._getString(rawData, DataParser.NAME, DataParser.DEFAULT_NAME);
157
+ if (animation.name.length === 0) {
158
+ animation.name = DataParser.DEFAULT_NAME;
159
+ }
160
+ // Offsets.
161
+ const offsets = rawData[DataParser.OFFSET];
162
+ animation.frameIntOffset = offsets[0];
163
+ animation.frameFloatOffset = offsets[1];
164
+ animation.frameOffset = offsets[2];
165
+ this._animation = animation;
166
+ if (DataParser.ACTION in rawData) {
167
+ animation.actionTimeline = this._parseBinaryTimeline(0 /* TimelineType.Action */, rawData[DataParser.ACTION]);
168
+ }
169
+ if (DataParser.Z_ORDER in rawData) {
170
+ animation.zOrderTimeline = this._parseBinaryTimeline(1 /* TimelineType.ZOrder */, rawData[DataParser.Z_ORDER]);
171
+ }
172
+ if (DataParser.BONE in rawData) {
173
+ const rawTimeliness = rawData[DataParser.BONE];
174
+ for (let k in rawTimeliness) {
175
+ const rawTimelines = rawTimeliness[k];
176
+ const bone = this._armature.getBone(k);
177
+ if (bone === null) {
178
+ continue;
179
+ }
180
+ for (let i = 0, l = rawTimelines.length; i < l; i += 2) {
181
+ const timelineType = rawTimelines[i];
182
+ const timelineOffset = rawTimelines[i + 1];
183
+ const timeline = this._parseBinaryTimeline(timelineType, timelineOffset);
184
+ this._animation.addBoneTimeline(bone.name, timeline);
185
+ }
186
+ }
187
+ }
188
+ if (DataParser.SLOT in rawData) {
189
+ const rawTimeliness = rawData[DataParser.SLOT];
190
+ for (let k in rawTimeliness) {
191
+ const rawTimelines = rawTimeliness[k];
192
+ const slot = this._armature.getSlot(k);
193
+ if (slot === null) {
194
+ continue;
195
+ }
196
+ for (let i = 0, l = rawTimelines.length; i < l; i += 2) {
197
+ const timelineType = rawTimelines[i];
198
+ const timelineOffset = rawTimelines[i + 1];
199
+ const timeline = this._parseBinaryTimeline(timelineType, timelineOffset);
200
+ this._animation.addSlotTimeline(slot.name, timeline);
201
+ }
202
+ }
203
+ }
204
+ if (DataParser.CONSTRAINT in rawData) {
205
+ const rawTimeliness = rawData[DataParser.CONSTRAINT];
206
+ for (let k in rawTimeliness) {
207
+ const rawTimelines = rawTimeliness[k];
208
+ const constraint = this._armature.getConstraint(k);
209
+ if (constraint === null) {
210
+ continue;
211
+ }
212
+ for (let i = 0, l = rawTimelines.length; i < l; i += 2) {
213
+ const timelineType = rawTimelines[i];
214
+ const timelineOffset = rawTimelines[i + 1];
215
+ const timeline = this._parseBinaryTimeline(timelineType, timelineOffset);
216
+ this._animation.addConstraintTimeline(constraint.name, timeline);
217
+ }
218
+ }
219
+ }
220
+ if (DataParser.TIMELINE in rawData) {
221
+ const rawTimelines = rawData[DataParser.TIMELINE];
222
+ for (const rawTimeline of rawTimelines) {
223
+ const timelineOffset = ObjectDataParser._getNumber(rawTimeline, DataParser.OFFSET, 0);
224
+ if (timelineOffset >= 0) {
225
+ const timelineType = ObjectDataParser._getNumber(rawTimeline, DataParser.TYPE, 0 /* TimelineType.Action */);
226
+ const timelineName = ObjectDataParser._getString(rawTimeline, DataParser.NAME, "");
227
+ let timeline = null;
228
+ if (timelineType === 40 /* TimelineType.AnimationProgress */ &&
229
+ animation.blendType !== 0 /* AnimationBlendType.None */) {
230
+ timeline = BaseObject.borrowObject(AnimationTimelineData);
231
+ const animaitonTimeline = timeline;
232
+ animaitonTimeline.x = ObjectDataParser._getNumber(rawTimeline, DataParser.X, 0.0);
233
+ animaitonTimeline.y = ObjectDataParser._getNumber(rawTimeline, DataParser.Y, 0.0);
234
+ }
235
+ timeline = this._parseBinaryTimeline(timelineType, timelineOffset, timeline);
236
+ switch (timelineType) {
237
+ case 0 /* TimelineType.Action */:
238
+ // TODO
239
+ break;
240
+ case 1 /* TimelineType.ZOrder */:
241
+ // TODO
242
+ break;
243
+ case 11 /* TimelineType.BoneTranslate */:
244
+ case 12 /* TimelineType.BoneRotate */:
245
+ case 13 /* TimelineType.BoneScale */:
246
+ case 50 /* TimelineType.Surface */:
247
+ case 60 /* TimelineType.BoneAlpha */:
248
+ this._animation.addBoneTimeline(timelineName, timeline);
249
+ break;
250
+ case 20 /* TimelineType.SlotDisplay */:
251
+ case 21 /* TimelineType.SlotColor */:
252
+ case 22 /* TimelineType.SlotDeform */:
253
+ case 23 /* TimelineType.SlotZIndex */:
254
+ case 24 /* TimelineType.SlotAlpha */:
255
+ this._animation.addSlotTimeline(timelineName, timeline);
256
+ break;
257
+ case 30 /* TimelineType.IKConstraint */:
258
+ this._animation.addConstraintTimeline(timelineName, timeline);
259
+ break;
260
+ case 40 /* TimelineType.AnimationProgress */:
261
+ case 41 /* TimelineType.AnimationWeight */:
262
+ case 42 /* TimelineType.AnimationParameter */:
263
+ this._animation.addAnimationTimeline(timelineName, timeline);
264
+ break;
265
+ }
266
+ }
267
+ }
268
+ }
269
+ this._animation = null;
270
+ return animation;
271
+ }
272
+ _parseGeometry(rawData, geometry) {
273
+ geometry.offset = rawData[DataParser.OFFSET];
274
+ geometry.data = this._data;
275
+ const weightOffset = this._intArrayBuffer[geometry.offset + 3 /* BinaryOffset.GeometryWeightOffset */];
276
+ if (weightOffset >= 0) {
277
+ const weight = BaseObject.borrowObject(WeightData);
278
+ const vertexCount = this._intArrayBuffer[geometry.offset + 0 /* BinaryOffset.GeometryVertexCount */];
279
+ const boneCount = this._intArrayBuffer[weightOffset + 0 /* BinaryOffset.WeigthBoneCount */];
280
+ weight.offset = weightOffset;
281
+ for (let i = 0; i < boneCount; ++i) {
282
+ const boneIndex = this._intArrayBuffer[weightOffset + 2 /* BinaryOffset.WeigthBoneIndices */ + i];
283
+ weight.addBone(this._rawBones[boneIndex]);
284
+ }
285
+ let boneIndicesOffset = weightOffset + 2 /* BinaryOffset.WeigthBoneIndices */ + boneCount;
286
+ let weightCount = 0;
287
+ for (let i = 0, l = vertexCount; i < l; ++i) {
288
+ const vertexBoneCount = this._intArrayBuffer[boneIndicesOffset++];
289
+ weightCount += vertexBoneCount;
290
+ boneIndicesOffset += vertexBoneCount;
291
+ }
292
+ weight.count = weightCount;
293
+ geometry.weight = weight;
294
+ }
295
+ }
296
+ _parseArray(rawData) {
297
+ const offsets = rawData[DataParser.OFFSET];
298
+ const l1 = offsets[1];
299
+ const l2 = offsets[3];
300
+ const l3 = offsets[5];
301
+ const l4 = offsets[7];
302
+ const l5 = offsets[9];
303
+ const l6 = offsets[11];
304
+ const l7 = offsets.length > 12 ? offsets[13] : 0; // Color.
305
+ const intArray = new Uint16Array(this._binary, this._binaryOffset + offsets[0], l1 / Uint16Array.BYTES_PER_ELEMENT);
306
+ const floatArray = new Float32Array(this._binary, this._binaryOffset + offsets[2], l2 / Float32Array.BYTES_PER_ELEMENT);
307
+ const frameIntArray = new Int16Array(this._binary, this._binaryOffset + offsets[4], l3 / Int16Array.BYTES_PER_ELEMENT);
308
+ const frameFloatArray = new Float32Array(this._binary, this._binaryOffset + offsets[6], l4 / Float32Array.BYTES_PER_ELEMENT);
309
+ const frameArray = new Int16Array(this._binary, this._binaryOffset + offsets[8], l5 / Int16Array.BYTES_PER_ELEMENT);
310
+ const timelineArray = new Uint16Array(this._binary, this._binaryOffset + offsets[10], l6 / Uint16Array.BYTES_PER_ELEMENT);
311
+ const colorArray = l7 > 0
312
+ ? new Uint16Array(this._binary, this._binaryOffset + offsets[12], l7 / Uint16Array.BYTES_PER_ELEMENT)
313
+ : intArray; // Color.
314
+ this._data.binary = this._binary;
315
+ this._data.intArray = this._intArrayBuffer = intArray;
316
+ this._data.floatArray = floatArray;
317
+ this._data.frameIntArray = frameIntArray;
318
+ this._data.frameFloatArray = frameFloatArray;
319
+ this._data.frameArray = this._frameArrayBuffer = frameArray;
320
+ this._data.timelineArray = this._timelineArrayBuffer = timelineArray;
321
+ this._data.colorArray = colorArray;
322
+ }
323
+ parseDragonBonesData(rawData, scale = 1) {
324
+ console.assert(rawData !== null &&
325
+ rawData !== undefined &&
326
+ rawData instanceof ArrayBuffer, "Data error.");
327
+ const tag = new Uint8Array(rawData, 0, 8);
328
+ if (tag[0] !== "D".charCodeAt(0) ||
329
+ tag[1] !== "B".charCodeAt(0) ||
330
+ tag[2] !== "D".charCodeAt(0) ||
331
+ tag[3] !== "T".charCodeAt(0)) {
332
+ console.assert(false, "Nonsupport data.");
333
+ return null;
334
+ }
335
+ const headerLength = new Uint32Array(rawData, 8, 1)[0];
336
+ const headerBytes = new Uint8Array(rawData, 8 + 4, headerLength);
337
+ const headerString = this._decodeUTF8(headerBytes);
338
+ const header = JSON.parse(headerString);
339
+ //
340
+ this._binaryOffset = 8 + 4 + headerLength;
341
+ this._binary = rawData;
342
+ return super.parseDragonBonesData(header, scale);
343
+ }
344
+ /**
345
+ * - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.
346
+ * @deprecated
347
+ * @language en_US
348
+ */
349
+ static getInstance() {
350
+ if (BinaryDataParser._binaryDataParserInstance === null) {
351
+ BinaryDataParser._binaryDataParserInstance = new BinaryDataParser();
352
+ }
353
+ return BinaryDataParser._binaryDataParserInstance;
354
+ }
355
+ }
356
+ BinaryDataParser._binaryDataParserInstance = null;