@xmov/avatar 2.0.0-alpha.38

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 (160) hide show
  1. package/README.md +139 -0
  2. package/dist/agent/__tests__/agent.test.d.ts +1 -0
  3. package/dist/agent/audio-debug.d.ts +3 -0
  4. package/dist/agent/audio-uplink.d.ts +62 -0
  5. package/dist/agent/avatar.cjs +2 -0
  6. package/dist/agent/avatar.cjs.map +1 -0
  7. package/dist/agent/avatar.modern.js +2 -0
  8. package/dist/agent/avatar.modern.js.map +1 -0
  9. package/dist/agent/avatar.module.js +2 -0
  10. package/dist/agent/avatar.module.js.map +1 -0
  11. package/dist/agent/avatar.umd.js +2 -0
  12. package/dist/agent/avatar.umd.js.map +1 -0
  13. package/dist/agent/e2e-client.d.ts +32 -0
  14. package/dist/agent/fixed-audio-track.d.ts +48 -0
  15. package/dist/agent/index.cjs +5 -0
  16. package/dist/agent/index.d.ts +104 -0
  17. package/dist/agent/index.umd.js +10 -0
  18. package/dist/agent/microphone.d.ts +49 -0
  19. package/dist/agent/types.d.ts +153 -0
  20. package/dist/baseRender/AudioRenderer.d.ts +46 -0
  21. package/dist/baseRender/AudioWorklet.d.ts +78 -0
  22. package/dist/baseRender/AvatarRenderer.d.ts +226 -0
  23. package/dist/baseRender/MSEAudioPlayer.d.ts +51 -0
  24. package/dist/baseRender/UIRenderer.d.ts +39 -0
  25. package/dist/baseRender/pcm-audio-processor.d.ts +63 -0
  26. package/dist/control/APIForwarder.d.ts +23 -0
  27. package/dist/control/DataCacheQueue.d.ts +69 -0
  28. package/dist/control/EventDispatcher.d.ts +35 -0
  29. package/dist/control/RenderScheduler.d.ts +162 -0
  30. package/dist/control/SaveAndDownload.d.ts +14 -0
  31. package/dist/control/StreamingClient.d.ts +33 -0
  32. package/dist/control/VideoPlayer.d.ts +47 -0
  33. package/dist/control/ttsa.d.ts +111 -0
  34. package/dist/encoding/media-recorder-encoder.d.ts +33 -0
  35. package/dist/encoding/pcm-webm-encoder.d.ts +13 -0
  36. package/dist/encoding/webcodec-opus-encoder.d.ts +41 -0
  37. package/dist/encoding/webm-muxer.d.ts +90 -0
  38. package/dist/index.cjs +2 -0
  39. package/dist/index.cjs.map +1 -0
  40. package/dist/index.d.ts +231 -0
  41. package/dist/index.modern.js +2 -0
  42. package/dist/index.modern.js.map +1 -0
  43. package/dist/index.module.js +2 -0
  44. package/dist/index.module.js.map +1 -0
  45. package/dist/index.umd.js +2 -0
  46. package/dist/index.umd.js.map +1 -0
  47. package/dist/modules/Composition.d.ts +28 -0
  48. package/dist/modules/ResourceManager.d.ts +295 -0
  49. package/dist/modules/TrackRenderer/base-track.d.ts +4 -0
  50. package/dist/modules/TrackRenderer/index.d.ts +12 -0
  51. package/dist/modules/TrackRenderer/render-implements.d.ts +19 -0
  52. package/dist/modules/TrackRenderer/track-pic.d.ts +8 -0
  53. package/dist/modules/TrackRenderer/track-subtitle.d.ts +8 -0
  54. package/dist/modules/cache-manager.d.ts +5 -0
  55. package/dist/modules/decoder.d.ts +84 -0
  56. package/dist/modules/error-handle.d.ts +17 -0
  57. package/dist/modules/network.d.ts +21 -0
  58. package/dist/proto/face_data_pb.d.ts +0 -0
  59. package/dist/types/capability.d.ts +15 -0
  60. package/dist/types/error.d.ts +70 -0
  61. package/dist/types/event.d.ts +25 -0
  62. package/dist/types/frame-data.d.ts +107 -0
  63. package/dist/types/index.d.ts +187 -0
  64. package/dist/types/render.d.ts +18 -0
  65. package/dist/utils/DataInterface.d.ts +113 -0
  66. package/dist/utils/GLDevice.d.ts +46 -0
  67. package/dist/utils/GLPipeline.d.ts +84 -0
  68. package/dist/utils/GLPipelineDebugTools.d.ts +5 -0
  69. package/dist/utils/Math.d.ts +21 -0
  70. package/dist/utils/__tests__/capability-checker.test.d.ts +1 -0
  71. package/dist/utils/audio-session.d.ts +11 -0
  72. package/dist/utils/audio.d.ts +1 -0
  73. package/dist/utils/capability-checker.d.ts +23 -0
  74. package/dist/utils/encodeToken.d.ts +7 -0
  75. package/dist/utils/face.d.ts +1 -0
  76. package/dist/utils/float32-decoder.d.ts +26 -0
  77. package/dist/utils/fpsTracker.d.ts +27 -0
  78. package/dist/utils/index.d.ts +22 -0
  79. package/dist/utils/logger.d.ts +9 -0
  80. package/dist/utils/media-recorder-timestamp.d.ts +15 -0
  81. package/dist/utils/pcmAnalyzer.d.ts +40 -0
  82. package/dist/utils/perfermance.d.ts +15 -0
  83. package/dist/utils/request.d.ts +19 -0
  84. package/dist/utils/requestAnimateFrames.d.ts +31 -0
  85. package/dist/utils/time.d.ts +9 -0
  86. package/dist/view/DebugOverlay.d.ts +54 -0
  87. package/dist/worker/streaming-video.d.ts +1 -0
  88. package/package.json +82 -0
  89. package/src/agent/__tests__/agent.test.ts +3787 -0
  90. package/src/agent/audio-debug.ts +36 -0
  91. package/src/agent/audio-uplink.ts +392 -0
  92. package/src/agent/e2e-client.ts +215 -0
  93. package/src/agent/fixed-audio-track.ts +547 -0
  94. package/src/agent/index.ts +1393 -0
  95. package/src/agent/microphone.ts +534 -0
  96. package/src/agent/types.ts +197 -0
  97. package/src/baseRender/AudioRenderer.ts +317 -0
  98. package/src/baseRender/AudioWorklet.ts +776 -0
  99. package/src/baseRender/AvatarRenderer.ts +1559 -0
  100. package/src/baseRender/MSEAudioPlayer.ts +243 -0
  101. package/src/baseRender/UIRenderer.ts +195 -0
  102. package/src/baseRender/pcm-audio-processor.js +267 -0
  103. package/src/control/APIForwarder.ts +67 -0
  104. package/src/control/DataCacheQueue.ts +372 -0
  105. package/src/control/EventDispatcher.ts +106 -0
  106. package/src/control/RenderScheduler.ts +945 -0
  107. package/src/control/SaveAndDownload.js +77 -0
  108. package/src/control/StreamingClient.ts +138 -0
  109. package/src/control/VideoPlayer.ts +306 -0
  110. package/src/control/ttsa.ts +676 -0
  111. package/src/encoding/media-recorder-encoder.ts +175 -0
  112. package/src/encoding/pcm-webm-encoder.ts +72 -0
  113. package/src/encoding/webcodec-opus-encoder.ts +258 -0
  114. package/src/encoding/webm-muxer.ts +337 -0
  115. package/src/global.d.ts +105 -0
  116. package/src/index.ts +1920 -0
  117. package/src/modules/Composition.ts +79 -0
  118. package/src/modules/ResourceManager.ts +899 -0
  119. package/src/modules/TrackRenderer/base-track.ts +7 -0
  120. package/src/modules/TrackRenderer/index.ts +40 -0
  121. package/src/modules/TrackRenderer/render-implements.ts +269 -0
  122. package/src/modules/TrackRenderer/track-pic.ts +19 -0
  123. package/src/modules/TrackRenderer/track-subtitle.ts +16 -0
  124. package/src/modules/cache-manager.ts +10 -0
  125. package/src/modules/decoder.ts +515 -0
  126. package/src/modules/error-handle.ts +20 -0
  127. package/src/modules/network.ts +71 -0
  128. package/src/proto/face_data.proto +45 -0
  129. package/src/proto/face_data_pb.js +1297 -0
  130. package/src/proto/protobuf.min.js +8 -0
  131. package/src/types/capability.ts +23 -0
  132. package/src/types/error.ts +211 -0
  133. package/src/types/event.ts +38 -0
  134. package/src/types/frame-data.ts +121 -0
  135. package/src/types/index.ts +207 -0
  136. package/src/types/render.ts +18 -0
  137. package/src/utils/DataInterface.ts +746 -0
  138. package/src/utils/GLDevice.ts +286 -0
  139. package/src/utils/GLPipeline.ts +1293 -0
  140. package/src/utils/GLPipelineDebugTools.ts +174 -0
  141. package/src/utils/Math.ts +266 -0
  142. package/src/utils/__tests__/capability-checker.test.ts +159 -0
  143. package/src/utils/audio-session.ts +144 -0
  144. package/src/utils/audio.ts +44 -0
  145. package/src/utils/blueimp-md5.d.ts +3 -0
  146. package/src/utils/capability-checker.ts +379 -0
  147. package/src/utils/encodeToken.ts +100 -0
  148. package/src/utils/face.ts +29 -0
  149. package/src/utils/float32-decoder.js +130 -0
  150. package/src/utils/fpsTracker.ts +100 -0
  151. package/src/utils/index.ts +182 -0
  152. package/src/utils/logger.js +36 -0
  153. package/src/utils/media-recorder-timestamp.ts +79 -0
  154. package/src/utils/pcmAnalyzer.ts +154 -0
  155. package/src/utils/perfermance.ts +141 -0
  156. package/src/utils/request.ts +95 -0
  157. package/src/utils/requestAnimateFrames.ts +195 -0
  158. package/src/utils/time.ts +32 -0
  159. package/src/view/DebugOverlay.ts +404 -0
  160. package/src/worker/streaming-video.ts +4647 -0
@@ -0,0 +1,1297 @@
1
+ /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
2
+ (function($protobuf) {
3
+ "use strict";
4
+
5
+ // Common aliases
6
+ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
7
+
8
+ // Exported root namespace
9
+ var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
10
+
11
+ $root.MeshData = (function() {
12
+
13
+ /**
14
+ * Properties of a MeshData.
15
+ * @exports IMeshData
16
+ * @interface IMeshData
17
+ * @property {number|null} [index] MeshData index
18
+ * @property {Array.<number>|null} [weights] MeshData weights
19
+ */
20
+
21
+ /**
22
+ * Constructs a new MeshData.
23
+ * @exports MeshData
24
+ * @classdesc Represents a MeshData.
25
+ * @implements IMeshData
26
+ * @constructor
27
+ * @param {IMeshData=} [properties] Properties to set
28
+ */
29
+ function MeshData(properties) {
30
+ this.weights = [];
31
+ if (properties)
32
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
33
+ if (properties[keys[i]] != null)
34
+ this[keys[i]] = properties[keys[i]];
35
+ }
36
+
37
+ /**
38
+ * MeshData index.
39
+ * @member {number} index
40
+ * @memberof MeshData
41
+ * @instance
42
+ */
43
+ MeshData.prototype.index = 0;
44
+
45
+ /**
46
+ * MeshData weights.
47
+ * @member {Array.<number>} weights
48
+ * @memberof MeshData
49
+ * @instance
50
+ */
51
+ MeshData.prototype.weights = $util.emptyArray;
52
+
53
+ /**
54
+ * Creates a new MeshData instance using the specified properties.
55
+ * @function create
56
+ * @memberof MeshData
57
+ * @static
58
+ * @param {IMeshData=} [properties] Properties to set
59
+ * @returns {MeshData} MeshData instance
60
+ */
61
+ MeshData.create = function create(properties) {
62
+ return new MeshData(properties);
63
+ };
64
+
65
+ /**
66
+ * Encodes the specified MeshData message. Does not implicitly {@link MeshData.verify|verify} messages.
67
+ * @function encode
68
+ * @memberof MeshData
69
+ * @static
70
+ * @param {IMeshData} message MeshData message or plain object to encode
71
+ * @param {$protobuf.Writer} [writer] Writer to encode to
72
+ * @returns {$protobuf.Writer} Writer
73
+ */
74
+ MeshData.encode = function encode(message, writer) {
75
+ if (!writer)
76
+ writer = $Writer.create();
77
+ if (message.index != null && Object.hasOwnProperty.call(message, "index"))
78
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.index);
79
+ if (message.weights != null && message.weights.length) {
80
+ writer.uint32(/* id 2, wireType 2 =*/18).fork();
81
+ for (var i = 0; i < message.weights.length; ++i)
82
+ writer.float(message.weights[i]);
83
+ writer.ldelim();
84
+ }
85
+ return writer;
86
+ };
87
+
88
+ /**
89
+ * Encodes the specified MeshData message, length delimited. Does not implicitly {@link MeshData.verify|verify} messages.
90
+ * @function encodeDelimited
91
+ * @memberof MeshData
92
+ * @static
93
+ * @param {IMeshData} message MeshData message or plain object to encode
94
+ * @param {$protobuf.Writer} [writer] Writer to encode to
95
+ * @returns {$protobuf.Writer} Writer
96
+ */
97
+ MeshData.encodeDelimited = function encodeDelimited(message, writer) {
98
+ return this.encode(message, writer).ldelim();
99
+ };
100
+
101
+ /**
102
+ * Decodes a MeshData message from the specified reader or buffer.
103
+ * @function decode
104
+ * @memberof MeshData
105
+ * @static
106
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
107
+ * @param {number} [length] Message length if known beforehand
108
+ * @returns {MeshData} MeshData
109
+ * @throws {Error} If the payload is not a reader or valid buffer
110
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
111
+ */
112
+ MeshData.decode = function decode(reader, length, error) {
113
+ if (!(reader instanceof $Reader))
114
+ reader = $Reader.create(reader);
115
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.MeshData();
116
+ while (reader.pos < end) {
117
+ var tag = reader.uint32();
118
+ if (tag === error)
119
+ break;
120
+ switch (tag >>> 3) {
121
+ case 1: {
122
+ message.index = reader.int32();
123
+ break;
124
+ }
125
+ case 2: {
126
+ if (!(message.weights && message.weights.length))
127
+ message.weights = [];
128
+ if ((tag & 7) === 2) {
129
+ var end2 = reader.uint32() + reader.pos;
130
+ while (reader.pos < end2)
131
+ message.weights.push(reader.float());
132
+ } else
133
+ message.weights.push(reader.float());
134
+ break;
135
+ }
136
+ default:
137
+ reader.skipType(tag & 7);
138
+ break;
139
+ }
140
+ }
141
+ return message;
142
+ };
143
+
144
+ /**
145
+ * Decodes a MeshData message from the specified reader or buffer, length delimited.
146
+ * @function decodeDelimited
147
+ * @memberof MeshData
148
+ * @static
149
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
150
+ * @returns {MeshData} MeshData
151
+ * @throws {Error} If the payload is not a reader or valid buffer
152
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
153
+ */
154
+ MeshData.decodeDelimited = function decodeDelimited(reader) {
155
+ if (!(reader instanceof $Reader))
156
+ reader = new $Reader(reader);
157
+ return this.decode(reader, reader.uint32());
158
+ };
159
+
160
+ /**
161
+ * Verifies a MeshData message.
162
+ * @function verify
163
+ * @memberof MeshData
164
+ * @static
165
+ * @param {Object.<string,*>} message Plain object to verify
166
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
167
+ */
168
+ MeshData.verify = function verify(message) {
169
+ if (typeof message !== "object" || message === null)
170
+ return "object expected";
171
+ if (message.index != null && message.hasOwnProperty("index"))
172
+ if (!$util.isInteger(message.index))
173
+ return "index: integer expected";
174
+ if (message.weights != null && message.hasOwnProperty("weights")) {
175
+ if (!Array.isArray(message.weights))
176
+ return "weights: array expected";
177
+ for (var i = 0; i < message.weights.length; ++i)
178
+ if (typeof message.weights[i] !== "number")
179
+ return "weights: number[] expected";
180
+ }
181
+ return null;
182
+ };
183
+
184
+ /**
185
+ * Creates a MeshData message from a plain object. Also converts values to their respective internal types.
186
+ * @function fromObject
187
+ * @memberof MeshData
188
+ * @static
189
+ * @param {Object.<string,*>} object Plain object
190
+ * @returns {MeshData} MeshData
191
+ */
192
+ MeshData.fromObject = function fromObject(object) {
193
+ if (object instanceof $root.MeshData)
194
+ return object;
195
+ var message = new $root.MeshData();
196
+ if (object.index != null)
197
+ message.index = object.index | 0;
198
+ if (object.weights) {
199
+ if (!Array.isArray(object.weights))
200
+ throw TypeError(".MeshData.weights: array expected");
201
+ message.weights = [];
202
+ for (var i = 0; i < object.weights.length; ++i)
203
+ message.weights[i] = Number(object.weights[i]);
204
+ }
205
+ return message;
206
+ };
207
+
208
+ /**
209
+ * Creates a plain object from a MeshData message. Also converts values to other types if specified.
210
+ * @function toObject
211
+ * @memberof MeshData
212
+ * @static
213
+ * @param {MeshData} message MeshData
214
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
215
+ * @returns {Object.<string,*>} Plain object
216
+ */
217
+ MeshData.toObject = function toObject(message, options) {
218
+ if (!options)
219
+ options = {};
220
+ var object = {};
221
+ if (options.arrays || options.defaults)
222
+ object.weights = [];
223
+ if (options.defaults)
224
+ object.index = 0;
225
+ if (message.index != null && message.hasOwnProperty("index"))
226
+ object.index = message.index;
227
+ if (message.weights && message.weights.length) {
228
+ object.weights = [];
229
+ for (var j = 0; j < message.weights.length; ++j)
230
+ object.weights[j] = options.json && !isFinite(message.weights[j]) ? String(message.weights[j]) : message.weights[j];
231
+ }
232
+ return object;
233
+ };
234
+
235
+ /**
236
+ * Converts this MeshData to JSON.
237
+ * @function toJSON
238
+ * @memberof MeshData
239
+ * @instance
240
+ * @returns {Object.<string,*>} JSON object
241
+ */
242
+ MeshData.prototype.toJSON = function toJSON() {
243
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
244
+ };
245
+
246
+ /**
247
+ * Gets the default type url for MeshData
248
+ * @function getTypeUrl
249
+ * @memberof MeshData
250
+ * @static
251
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
252
+ * @returns {string} The default type url
253
+ */
254
+ MeshData.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
255
+ if (typeUrlPrefix === undefined) {
256
+ typeUrlPrefix = "type.googleapis.com";
257
+ }
258
+ return typeUrlPrefix + "/MeshData";
259
+ };
260
+
261
+ return MeshData;
262
+ })();
263
+
264
+ $root.JointData = (function() {
265
+
266
+ /**
267
+ * Properties of a JointData.
268
+ * @exports IJointData
269
+ * @interface IJointData
270
+ * @property {Array.<number>|null} [translate] JointData translate
271
+ * @property {Uint8Array|null} [rotate] JointData rotate
272
+ */
273
+
274
+ /**
275
+ * Constructs a new JointData.
276
+ * @exports JointData
277
+ * @classdesc Represents a JointData.
278
+ * @implements IJointData
279
+ * @constructor
280
+ * @param {IJointData=} [properties] Properties to set
281
+ */
282
+ function JointData(properties) {
283
+ this.translate = [];
284
+ if (properties)
285
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
286
+ if (properties[keys[i]] != null)
287
+ this[keys[i]] = properties[keys[i]];
288
+ }
289
+
290
+ /**
291
+ * JointData translate.
292
+ * @member {Array.<number>} translate
293
+ * @memberof JointData
294
+ * @instance
295
+ */
296
+ JointData.prototype.translate = $util.emptyArray;
297
+
298
+ /**
299
+ * JointData rotate.
300
+ * @member {Uint8Array} rotate
301
+ * @memberof JointData
302
+ * @instance
303
+ */
304
+ JointData.prototype.rotate = $util.newBuffer([]);
305
+
306
+ /**
307
+ * Creates a new JointData instance using the specified properties.
308
+ * @function create
309
+ * @memberof JointData
310
+ * @static
311
+ * @param {IJointData=} [properties] Properties to set
312
+ * @returns {JointData} JointData instance
313
+ */
314
+ JointData.create = function create(properties) {
315
+ return new JointData(properties);
316
+ };
317
+
318
+ /**
319
+ * Encodes the specified JointData message. Does not implicitly {@link JointData.verify|verify} messages.
320
+ * @function encode
321
+ * @memberof JointData
322
+ * @static
323
+ * @param {IJointData} message JointData message or plain object to encode
324
+ * @param {$protobuf.Writer} [writer] Writer to encode to
325
+ * @returns {$protobuf.Writer} Writer
326
+ */
327
+ JointData.encode = function encode(message, writer) {
328
+ if (!writer)
329
+ writer = $Writer.create();
330
+ if (message.translate != null && message.translate.length) {
331
+ writer.uint32(/* id 1, wireType 2 =*/10).fork();
332
+ for (var i = 0; i < message.translate.length; ++i)
333
+ writer.float(message.translate[i]);
334
+ writer.ldelim();
335
+ }
336
+ if (message.rotate != null && Object.hasOwnProperty.call(message, "rotate"))
337
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.rotate);
338
+ return writer;
339
+ };
340
+
341
+ /**
342
+ * Encodes the specified JointData message, length delimited. Does not implicitly {@link JointData.verify|verify} messages.
343
+ * @function encodeDelimited
344
+ * @memberof JointData
345
+ * @static
346
+ * @param {IJointData} message JointData message or plain object to encode
347
+ * @param {$protobuf.Writer} [writer] Writer to encode to
348
+ * @returns {$protobuf.Writer} Writer
349
+ */
350
+ JointData.encodeDelimited = function encodeDelimited(message, writer) {
351
+ return this.encode(message, writer).ldelim();
352
+ };
353
+
354
+ /**
355
+ * Decodes a JointData message from the specified reader or buffer.
356
+ * @function decode
357
+ * @memberof JointData
358
+ * @static
359
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
360
+ * @param {number} [length] Message length if known beforehand
361
+ * @returns {JointData} JointData
362
+ * @throws {Error} If the payload is not a reader or valid buffer
363
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
364
+ */
365
+ JointData.decode = function decode(reader, length, error) {
366
+ if (!(reader instanceof $Reader))
367
+ reader = $Reader.create(reader);
368
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.JointData();
369
+ while (reader.pos < end) {
370
+ var tag = reader.uint32();
371
+ if (tag === error)
372
+ break;
373
+ switch (tag >>> 3) {
374
+ case 1: {
375
+ if (!(message.translate && message.translate.length))
376
+ message.translate = [];
377
+ if ((tag & 7) === 2) {
378
+ var end2 = reader.uint32() + reader.pos;
379
+ while (reader.pos < end2)
380
+ message.translate.push(reader.float());
381
+ } else
382
+ message.translate.push(reader.float());
383
+ break;
384
+ }
385
+ case 2: {
386
+ message.rotate = reader.bytes();
387
+ break;
388
+ }
389
+ default:
390
+ reader.skipType(tag & 7);
391
+ break;
392
+ }
393
+ }
394
+ return message;
395
+ };
396
+
397
+ /**
398
+ * Decodes a JointData message from the specified reader or buffer, length delimited.
399
+ * @function decodeDelimited
400
+ * @memberof JointData
401
+ * @static
402
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
403
+ * @returns {JointData} JointData
404
+ * @throws {Error} If the payload is not a reader or valid buffer
405
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
406
+ */
407
+ JointData.decodeDelimited = function decodeDelimited(reader) {
408
+ if (!(reader instanceof $Reader))
409
+ reader = new $Reader(reader);
410
+ return this.decode(reader, reader.uint32());
411
+ };
412
+
413
+ /**
414
+ * Verifies a JointData message.
415
+ * @function verify
416
+ * @memberof JointData
417
+ * @static
418
+ * @param {Object.<string,*>} message Plain object to verify
419
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
420
+ */
421
+ JointData.verify = function verify(message) {
422
+ if (typeof message !== "object" || message === null)
423
+ return "object expected";
424
+ if (message.translate != null && message.hasOwnProperty("translate")) {
425
+ if (!Array.isArray(message.translate))
426
+ return "translate: array expected";
427
+ for (var i = 0; i < message.translate.length; ++i)
428
+ if (typeof message.translate[i] !== "number")
429
+ return "translate: number[] expected";
430
+ }
431
+ if (message.rotate != null && message.hasOwnProperty("rotate"))
432
+ if (!(message.rotate && typeof message.rotate.length === "number" || $util.isString(message.rotate)))
433
+ return "rotate: buffer expected";
434
+ return null;
435
+ };
436
+
437
+ /**
438
+ * Creates a JointData message from a plain object. Also converts values to their respective internal types.
439
+ * @function fromObject
440
+ * @memberof JointData
441
+ * @static
442
+ * @param {Object.<string,*>} object Plain object
443
+ * @returns {JointData} JointData
444
+ */
445
+ JointData.fromObject = function fromObject(object) {
446
+ if (object instanceof $root.JointData)
447
+ return object;
448
+ var message = new $root.JointData();
449
+ if (object.translate) {
450
+ if (!Array.isArray(object.translate))
451
+ throw TypeError(".JointData.translate: array expected");
452
+ message.translate = [];
453
+ for (var i = 0; i < object.translate.length; ++i)
454
+ message.translate[i] = Number(object.translate[i]);
455
+ }
456
+ if (object.rotate != null)
457
+ if (typeof object.rotate === "string")
458
+ $util.base64.decode(object.rotate, message.rotate = $util.newBuffer($util.base64.length(object.rotate)), 0);
459
+ else if (object.rotate.length >= 0)
460
+ message.rotate = object.rotate;
461
+ return message;
462
+ };
463
+
464
+ /**
465
+ * Creates a plain object from a JointData message. Also converts values to other types if specified.
466
+ * @function toObject
467
+ * @memberof JointData
468
+ * @static
469
+ * @param {JointData} message JointData
470
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
471
+ * @returns {Object.<string,*>} Plain object
472
+ */
473
+ JointData.toObject = function toObject(message, options) {
474
+ if (!options)
475
+ options = {};
476
+ var object = {};
477
+ if (options.arrays || options.defaults)
478
+ object.translate = [];
479
+ if (options.defaults)
480
+ if (options.bytes === String)
481
+ object.rotate = "";
482
+ else {
483
+ object.rotate = [];
484
+ if (options.bytes !== Array)
485
+ object.rotate = $util.newBuffer(object.rotate);
486
+ }
487
+ if (message.translate && message.translate.length) {
488
+ object.translate = [];
489
+ for (var j = 0; j < message.translate.length; ++j)
490
+ object.translate[j] = options.json && !isFinite(message.translate[j]) ? String(message.translate[j]) : message.translate[j];
491
+ }
492
+ if (message.rotate != null && message.hasOwnProperty("rotate"))
493
+ object.rotate = options.bytes === String ? $util.base64.encode(message.rotate, 0, message.rotate.length) : options.bytes === Array ? Array.prototype.slice.call(message.rotate) : message.rotate;
494
+ return object;
495
+ };
496
+
497
+ /**
498
+ * Converts this JointData to JSON.
499
+ * @function toJSON
500
+ * @memberof JointData
501
+ * @instance
502
+ * @returns {Object.<string,*>} JSON object
503
+ */
504
+ JointData.prototype.toJSON = function toJSON() {
505
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
506
+ };
507
+
508
+ /**
509
+ * Gets the default type url for JointData
510
+ * @function getTypeUrl
511
+ * @memberof JointData
512
+ * @static
513
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
514
+ * @returns {string} The default type url
515
+ */
516
+ JointData.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
517
+ if (typeUrlPrefix === undefined) {
518
+ typeUrlPrefix = "type.googleapis.com";
519
+ }
520
+ return typeUrlPrefix + "/JointData";
521
+ };
522
+
523
+ return JointData;
524
+ })();
525
+
526
+ $root.FaceFrameData = (function() {
527
+
528
+ /**
529
+ * Properties of a FaceFrameData.
530
+ * @exports IFaceFrameData
531
+ * @interface IFaceFrameData
532
+ * @property {number|null} [id] FaceFrameData id
533
+ * @property {string|null} [s] FaceFrameData s
534
+ * @property {number|null} [sf] FaceFrameData sf
535
+ * @property {number|null} [ef] FaceFrameData ef
536
+ * @property {Uint8Array|null} [bsw] FaceFrameData bsw
537
+ * @property {Uint8Array|null} [cs] FaceFrameData cs
538
+ * @property {Array.<IJointData>|null} [js] FaceFrameData js
539
+ * @property {Array.<IMeshData>|null} [ms] FaceFrameData ms
540
+ * @property {number|null} [bodyId] FaceFrameData bodyId
541
+ * @property {number|null} [faceFrameType] FaceFrameData faceFrameType
542
+ * @property {number|null} [asf] FaceFrameData asf
543
+ * @property {number|null} [aef] FaceFrameData aef
544
+ * @property {string|null} [n] FaceFrameData n
545
+ */
546
+
547
+ /**
548
+ * Constructs a new FaceFrameData.
549
+ * @exports FaceFrameData
550
+ * @classdesc Represents a FaceFrameData.
551
+ * @implements IFaceFrameData
552
+ * @constructor
553
+ * @param {IFaceFrameData=} [properties] Properties to set
554
+ */
555
+ function FaceFrameData(properties) {
556
+ this.js = [];
557
+ this.ms = [];
558
+ if (properties)
559
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
560
+ if (properties[keys[i]] != null)
561
+ this[keys[i]] = properties[keys[i]];
562
+ }
563
+
564
+ /**
565
+ * FaceFrameData id.
566
+ * @member {number} id
567
+ * @memberof FaceFrameData
568
+ * @instance
569
+ */
570
+ FaceFrameData.prototype.id = 0;
571
+
572
+ /**
573
+ * FaceFrameData s.
574
+ * @member {string} s
575
+ * @memberof FaceFrameData
576
+ * @instance
577
+ */
578
+ FaceFrameData.prototype.s = "";
579
+
580
+ /**
581
+ * FaceFrameData sf.
582
+ * @member {number} sf
583
+ * @memberof FaceFrameData
584
+ * @instance
585
+ */
586
+ FaceFrameData.prototype.sf = 0;
587
+
588
+ /**
589
+ * FaceFrameData ef.
590
+ * @member {number} ef
591
+ * @memberof FaceFrameData
592
+ * @instance
593
+ */
594
+ FaceFrameData.prototype.ef = 0;
595
+
596
+ /**
597
+ * FaceFrameData bsw.
598
+ * @member {Uint8Array} bsw
599
+ * @memberof FaceFrameData
600
+ * @instance
601
+ */
602
+ FaceFrameData.prototype.bsw = $util.newBuffer([]);
603
+
604
+ /**
605
+ * FaceFrameData cs.
606
+ * @member {Uint8Array} cs
607
+ * @memberof FaceFrameData
608
+ * @instance
609
+ */
610
+ FaceFrameData.prototype.cs = $util.newBuffer([]);
611
+
612
+ /**
613
+ * FaceFrameData js.
614
+ * @member {Array.<IJointData>} js
615
+ * @memberof FaceFrameData
616
+ * @instance
617
+ */
618
+ FaceFrameData.prototype.js = $util.emptyArray;
619
+
620
+ /**
621
+ * FaceFrameData ms.
622
+ * @member {Array.<IMeshData>} ms
623
+ * @memberof FaceFrameData
624
+ * @instance
625
+ */
626
+ FaceFrameData.prototype.ms = $util.emptyArray;
627
+
628
+ /**
629
+ * FaceFrameData bodyId.
630
+ * @member {number} bodyId
631
+ * @memberof FaceFrameData
632
+ * @instance
633
+ */
634
+ FaceFrameData.prototype.bodyId = 0;
635
+
636
+ /**
637
+ * FaceFrameData faceFrameType.
638
+ * @member {number} faceFrameType
639
+ * @memberof FaceFrameData
640
+ * @instance
641
+ */
642
+ FaceFrameData.prototype.faceFrameType = 0;
643
+
644
+ /**
645
+ * FaceFrameData asf.
646
+ * @member {number} asf
647
+ * @memberof FaceFrameData
648
+ * @instance
649
+ */
650
+ FaceFrameData.prototype.asf = 0;
651
+
652
+ /**
653
+ * FaceFrameData aef.
654
+ * @member {number} aef
655
+ * @memberof FaceFrameData
656
+ * @instance
657
+ */
658
+ FaceFrameData.prototype.aef = 0;
659
+
660
+ /**
661
+ * FaceFrameData n.
662
+ * @member {string} n
663
+ * @memberof FaceFrameData
664
+ * @instance
665
+ */
666
+ FaceFrameData.prototype.n = "";
667
+
668
+ /**
669
+ * Creates a new FaceFrameData instance using the specified properties.
670
+ * @function create
671
+ * @memberof FaceFrameData
672
+ * @static
673
+ * @param {IFaceFrameData=} [properties] Properties to set
674
+ * @returns {FaceFrameData} FaceFrameData instance
675
+ */
676
+ FaceFrameData.create = function create(properties) {
677
+ return new FaceFrameData(properties);
678
+ };
679
+
680
+ /**
681
+ * Encodes the specified FaceFrameData message. Does not implicitly {@link FaceFrameData.verify|verify} messages.
682
+ * @function encode
683
+ * @memberof FaceFrameData
684
+ * @static
685
+ * @param {IFaceFrameData} message FaceFrameData message or plain object to encode
686
+ * @param {$protobuf.Writer} [writer] Writer to encode to
687
+ * @returns {$protobuf.Writer} Writer
688
+ */
689
+ FaceFrameData.encode = function encode(message, writer) {
690
+ if (!writer)
691
+ writer = $Writer.create();
692
+ if (message.id != null && Object.hasOwnProperty.call(message, "id"))
693
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);
694
+ if (message.s != null && Object.hasOwnProperty.call(message, "s"))
695
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.s);
696
+ if (message.sf != null && Object.hasOwnProperty.call(message, "sf"))
697
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.sf);
698
+ if (message.ef != null && Object.hasOwnProperty.call(message, "ef"))
699
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.ef);
700
+ if (message.bsw != null && Object.hasOwnProperty.call(message, "bsw"))
701
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.bsw);
702
+ if (message.cs != null && Object.hasOwnProperty.call(message, "cs"))
703
+ writer.uint32(/* id 11, wireType 2 =*/90).bytes(message.cs);
704
+ if (message.js != null && message.js.length)
705
+ for (var i = 0; i < message.js.length; ++i)
706
+ $root.JointData.encode(message.js[i], writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();
707
+ if (message.ms != null && message.ms.length)
708
+ for (var i = 0; i < message.ms.length; ++i)
709
+ $root.MeshData.encode(message.ms[i], writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim();
710
+ if (message.bodyId != null && Object.hasOwnProperty.call(message, "bodyId"))
711
+ writer.uint32(/* id 14, wireType 0 =*/112).int32(message.bodyId);
712
+ if (message.faceFrameType != null && Object.hasOwnProperty.call(message, "faceFrameType"))
713
+ writer.uint32(/* id 15, wireType 0 =*/120).int32(message.faceFrameType);
714
+ if (message.asf != null && Object.hasOwnProperty.call(message, "asf"))
715
+ writer.uint32(/* id 16, wireType 0 =*/128).int32(message.asf);
716
+ if (message.aef != null && Object.hasOwnProperty.call(message, "aef"))
717
+ writer.uint32(/* id 17, wireType 0 =*/136).int32(message.aef);
718
+ if (message.n != null && Object.hasOwnProperty.call(message, "n"))
719
+ writer.uint32(/* id 18, wireType 2 =*/146).string(message.n);
720
+ return writer;
721
+ };
722
+
723
+ /**
724
+ * Encodes the specified FaceFrameData message, length delimited. Does not implicitly {@link FaceFrameData.verify|verify} messages.
725
+ * @function encodeDelimited
726
+ * @memberof FaceFrameData
727
+ * @static
728
+ * @param {IFaceFrameData} message FaceFrameData message or plain object to encode
729
+ * @param {$protobuf.Writer} [writer] Writer to encode to
730
+ * @returns {$protobuf.Writer} Writer
731
+ */
732
+ FaceFrameData.encodeDelimited = function encodeDelimited(message, writer) {
733
+ return this.encode(message, writer).ldelim();
734
+ };
735
+
736
+ /**
737
+ * Decodes a FaceFrameData message from the specified reader or buffer.
738
+ * @function decode
739
+ * @memberof FaceFrameData
740
+ * @static
741
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
742
+ * @param {number} [length] Message length if known beforehand
743
+ * @returns {FaceFrameData} FaceFrameData
744
+ * @throws {Error} If the payload is not a reader or valid buffer
745
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
746
+ */
747
+ FaceFrameData.decode = function decode(reader, length, error) {
748
+ if (!(reader instanceof $Reader))
749
+ reader = $Reader.create(reader);
750
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.FaceFrameData();
751
+ while (reader.pos < end) {
752
+ var tag = reader.uint32();
753
+ if (tag === error)
754
+ break;
755
+ switch (tag >>> 3) {
756
+ case 1: {
757
+ message.id = reader.int32();
758
+ break;
759
+ }
760
+ case 2: {
761
+ message.s = reader.string();
762
+ break;
763
+ }
764
+ case 3: {
765
+ message.sf = reader.int32();
766
+ break;
767
+ }
768
+ case 4: {
769
+ message.ef = reader.int32();
770
+ break;
771
+ }
772
+ case 5: {
773
+ message.bsw = reader.bytes();
774
+ break;
775
+ }
776
+ case 11: {
777
+ message.cs = reader.bytes();
778
+ break;
779
+ }
780
+ case 12: {
781
+ if (!(message.js && message.js.length))
782
+ message.js = [];
783
+ message.js.push($root.JointData.decode(reader, reader.uint32()));
784
+ break;
785
+ }
786
+ case 13: {
787
+ if (!(message.ms && message.ms.length))
788
+ message.ms = [];
789
+ message.ms.push($root.MeshData.decode(reader, reader.uint32()));
790
+ break;
791
+ }
792
+ case 14: {
793
+ message.bodyId = reader.int32();
794
+ break;
795
+ }
796
+ case 15: {
797
+ message.faceFrameType = reader.int32();
798
+ break;
799
+ }
800
+ case 16: {
801
+ message.asf = reader.int32();
802
+ break;
803
+ }
804
+ case 17: {
805
+ message.aef = reader.int32();
806
+ break;
807
+ }
808
+ case 18: {
809
+ message.n = reader.string();
810
+ break;
811
+ }
812
+ default:
813
+ reader.skipType(tag & 7);
814
+ break;
815
+ }
816
+ }
817
+ return message;
818
+ };
819
+
820
+ /**
821
+ * Decodes a FaceFrameData message from the specified reader or buffer, length delimited.
822
+ * @function decodeDelimited
823
+ * @memberof FaceFrameData
824
+ * @static
825
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
826
+ * @returns {FaceFrameData} FaceFrameData
827
+ * @throws {Error} If the payload is not a reader or valid buffer
828
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
829
+ */
830
+ FaceFrameData.decodeDelimited = function decodeDelimited(reader) {
831
+ if (!(reader instanceof $Reader))
832
+ reader = new $Reader(reader);
833
+ return this.decode(reader, reader.uint32());
834
+ };
835
+
836
+ /**
837
+ * Verifies a FaceFrameData message.
838
+ * @function verify
839
+ * @memberof FaceFrameData
840
+ * @static
841
+ * @param {Object.<string,*>} message Plain object to verify
842
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
843
+ */
844
+ FaceFrameData.verify = function verify(message) {
845
+ if (typeof message !== "object" || message === null)
846
+ return "object expected";
847
+ if (message.id != null && message.hasOwnProperty("id"))
848
+ if (!$util.isInteger(message.id))
849
+ return "id: integer expected";
850
+ if (message.s != null && message.hasOwnProperty("s"))
851
+ if (!$util.isString(message.s))
852
+ return "s: string expected";
853
+ if (message.sf != null && message.hasOwnProperty("sf"))
854
+ if (!$util.isInteger(message.sf))
855
+ return "sf: integer expected";
856
+ if (message.ef != null && message.hasOwnProperty("ef"))
857
+ if (!$util.isInteger(message.ef))
858
+ return "ef: integer expected";
859
+ if (message.bsw != null && message.hasOwnProperty("bsw"))
860
+ if (!(message.bsw && typeof message.bsw.length === "number" || $util.isString(message.bsw)))
861
+ return "bsw: buffer expected";
862
+ if (message.cs != null && message.hasOwnProperty("cs"))
863
+ if (!(message.cs && typeof message.cs.length === "number" || $util.isString(message.cs)))
864
+ return "cs: buffer expected";
865
+ if (message.js != null && message.hasOwnProperty("js")) {
866
+ if (!Array.isArray(message.js))
867
+ return "js: array expected";
868
+ for (var i = 0; i < message.js.length; ++i) {
869
+ var error = $root.JointData.verify(message.js[i]);
870
+ if (error)
871
+ return "js." + error;
872
+ }
873
+ }
874
+ if (message.ms != null && message.hasOwnProperty("ms")) {
875
+ if (!Array.isArray(message.ms))
876
+ return "ms: array expected";
877
+ for (var i = 0; i < message.ms.length; ++i) {
878
+ var error = $root.MeshData.verify(message.ms[i]);
879
+ if (error)
880
+ return "ms." + error;
881
+ }
882
+ }
883
+ if (message.bodyId != null && message.hasOwnProperty("bodyId"))
884
+ if (!$util.isInteger(message.bodyId))
885
+ return "bodyId: integer expected";
886
+ if (message.faceFrameType != null && message.hasOwnProperty("faceFrameType"))
887
+ if (!$util.isInteger(message.faceFrameType))
888
+ return "faceFrameType: integer expected";
889
+ if (message.asf != null && message.hasOwnProperty("asf"))
890
+ if (!$util.isInteger(message.asf))
891
+ return "asf: integer expected";
892
+ if (message.aef != null && message.hasOwnProperty("aef"))
893
+ if (!$util.isInteger(message.aef))
894
+ return "aef: integer expected";
895
+ if (message.n != null && message.hasOwnProperty("n"))
896
+ if (!$util.isString(message.n))
897
+ return "n: string expected";
898
+ return null;
899
+ };
900
+
901
+ /**
902
+ * Creates a FaceFrameData message from a plain object. Also converts values to their respective internal types.
903
+ * @function fromObject
904
+ * @memberof FaceFrameData
905
+ * @static
906
+ * @param {Object.<string,*>} object Plain object
907
+ * @returns {FaceFrameData} FaceFrameData
908
+ */
909
+ FaceFrameData.fromObject = function fromObject(object) {
910
+ if (object instanceof $root.FaceFrameData)
911
+ return object;
912
+ var message = new $root.FaceFrameData();
913
+ if (object.id != null)
914
+ message.id = object.id | 0;
915
+ if (object.s != null)
916
+ message.s = String(object.s);
917
+ if (object.sf != null)
918
+ message.sf = object.sf | 0;
919
+ if (object.ef != null)
920
+ message.ef = object.ef | 0;
921
+ if (object.bsw != null)
922
+ if (typeof object.bsw === "string")
923
+ $util.base64.decode(object.bsw, message.bsw = $util.newBuffer($util.base64.length(object.bsw)), 0);
924
+ else if (object.bsw.length >= 0)
925
+ message.bsw = object.bsw;
926
+ if (object.cs != null)
927
+ if (typeof object.cs === "string")
928
+ $util.base64.decode(object.cs, message.cs = $util.newBuffer($util.base64.length(object.cs)), 0);
929
+ else if (object.cs.length >= 0)
930
+ message.cs = object.cs;
931
+ if (object.js) {
932
+ if (!Array.isArray(object.js))
933
+ throw TypeError(".FaceFrameData.js: array expected");
934
+ message.js = [];
935
+ for (var i = 0; i < object.js.length; ++i) {
936
+ if (typeof object.js[i] !== "object")
937
+ throw TypeError(".FaceFrameData.js: object expected");
938
+ message.js[i] = $root.JointData.fromObject(object.js[i]);
939
+ }
940
+ }
941
+ if (object.ms) {
942
+ if (!Array.isArray(object.ms))
943
+ throw TypeError(".FaceFrameData.ms: array expected");
944
+ message.ms = [];
945
+ for (var i = 0; i < object.ms.length; ++i) {
946
+ if (typeof object.ms[i] !== "object")
947
+ throw TypeError(".FaceFrameData.ms: object expected");
948
+ message.ms[i] = $root.MeshData.fromObject(object.ms[i]);
949
+ }
950
+ }
951
+ if (object.bodyId != null)
952
+ message.bodyId = object.bodyId | 0;
953
+ if (object.faceFrameType != null)
954
+ message.faceFrameType = object.faceFrameType | 0;
955
+ if (object.asf != null)
956
+ message.asf = object.asf | 0;
957
+ if (object.aef != null)
958
+ message.aef = object.aef | 0;
959
+ if (object.n != null)
960
+ message.n = String(object.n);
961
+ return message;
962
+ };
963
+
964
+ /**
965
+ * Creates a plain object from a FaceFrameData message. Also converts values to other types if specified.
966
+ * @function toObject
967
+ * @memberof FaceFrameData
968
+ * @static
969
+ * @param {FaceFrameData} message FaceFrameData
970
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
971
+ * @returns {Object.<string,*>} Plain object
972
+ */
973
+ FaceFrameData.toObject = function toObject(message, options) {
974
+ if (!options)
975
+ options = {};
976
+ var object = {};
977
+ if (options.arrays || options.defaults) {
978
+ object.js = [];
979
+ object.ms = [];
980
+ }
981
+ if (options.defaults) {
982
+ object.id = 0;
983
+ object.s = "";
984
+ object.sf = 0;
985
+ object.ef = 0;
986
+ if (options.bytes === String)
987
+ object.bsw = "";
988
+ else {
989
+ object.bsw = [];
990
+ if (options.bytes !== Array)
991
+ object.bsw = $util.newBuffer(object.bsw);
992
+ }
993
+ if (options.bytes === String)
994
+ object.cs = "";
995
+ else {
996
+ object.cs = [];
997
+ if (options.bytes !== Array)
998
+ object.cs = $util.newBuffer(object.cs);
999
+ }
1000
+ object.bodyId = 0;
1001
+ object.faceFrameType = 0;
1002
+ object.asf = 0;
1003
+ object.aef = 0;
1004
+ object.n = "";
1005
+ }
1006
+ if (message.id != null && message.hasOwnProperty("id"))
1007
+ object.id = message.id;
1008
+ if (message.s != null && message.hasOwnProperty("s"))
1009
+ object.s = message.s;
1010
+ if (message.sf != null && message.hasOwnProperty("sf"))
1011
+ object.sf = message.sf;
1012
+ if (message.ef != null && message.hasOwnProperty("ef"))
1013
+ object.ef = message.ef;
1014
+ if (message.bsw != null && message.hasOwnProperty("bsw"))
1015
+ object.bsw = options.bytes === String ? $util.base64.encode(message.bsw, 0, message.bsw.length) : options.bytes === Array ? Array.prototype.slice.call(message.bsw) : message.bsw;
1016
+ if (message.cs != null && message.hasOwnProperty("cs"))
1017
+ object.cs = options.bytes === String ? $util.base64.encode(message.cs, 0, message.cs.length) : options.bytes === Array ? Array.prototype.slice.call(message.cs) : message.cs;
1018
+ if (message.js && message.js.length) {
1019
+ object.js = [];
1020
+ for (var j = 0; j < message.js.length; ++j)
1021
+ object.js[j] = $root.JointData.toObject(message.js[j], options);
1022
+ }
1023
+ if (message.ms && message.ms.length) {
1024
+ object.ms = [];
1025
+ for (var j = 0; j < message.ms.length; ++j)
1026
+ object.ms[j] = $root.MeshData.toObject(message.ms[j], options);
1027
+ }
1028
+ if (message.bodyId != null && message.hasOwnProperty("bodyId"))
1029
+ object.bodyId = message.bodyId;
1030
+ if (message.faceFrameType != null && message.hasOwnProperty("faceFrameType"))
1031
+ object.faceFrameType = message.faceFrameType;
1032
+ if (message.asf != null && message.hasOwnProperty("asf"))
1033
+ object.asf = message.asf;
1034
+ if (message.aef != null && message.hasOwnProperty("aef"))
1035
+ object.aef = message.aef;
1036
+ if (message.n != null && message.hasOwnProperty("n"))
1037
+ object.n = message.n;
1038
+ return object;
1039
+ };
1040
+
1041
+ /**
1042
+ * Converts this FaceFrameData to JSON.
1043
+ * @function toJSON
1044
+ * @memberof FaceFrameData
1045
+ * @instance
1046
+ * @returns {Object.<string,*>} JSON object
1047
+ */
1048
+ FaceFrameData.prototype.toJSON = function toJSON() {
1049
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1050
+ };
1051
+
1052
+ /**
1053
+ * Gets the default type url for FaceFrameData
1054
+ * @function getTypeUrl
1055
+ * @memberof FaceFrameData
1056
+ * @static
1057
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1058
+ * @returns {string} The default type url
1059
+ */
1060
+ FaceFrameData.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1061
+ if (typeUrlPrefix === undefined) {
1062
+ typeUrlPrefix = "type.googleapis.com";
1063
+ }
1064
+ return typeUrlPrefix + "/FaceFrameData";
1065
+ };
1066
+
1067
+ return FaceFrameData;
1068
+ })();
1069
+
1070
+ $root.FaceFrameDataList = (function() {
1071
+
1072
+ /**
1073
+ * Properties of a FaceFrameDataList.
1074
+ * @exports IFaceFrameDataList
1075
+ * @interface IFaceFrameDataList
1076
+ * @property {Array.<IFaceFrameData>|null} [data] FaceFrameDataList data
1077
+ */
1078
+
1079
+ /**
1080
+ * Constructs a new FaceFrameDataList.
1081
+ * @exports FaceFrameDataList
1082
+ * @classdesc Represents a FaceFrameDataList.
1083
+ * @implements IFaceFrameDataList
1084
+ * @constructor
1085
+ * @param {IFaceFrameDataList=} [properties] Properties to set
1086
+ */
1087
+ function FaceFrameDataList(properties) {
1088
+ this.data = [];
1089
+ if (properties)
1090
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
1091
+ if (properties[keys[i]] != null)
1092
+ this[keys[i]] = properties[keys[i]];
1093
+ }
1094
+
1095
+ /**
1096
+ * FaceFrameDataList data.
1097
+ * @member {Array.<IFaceFrameData>} data
1098
+ * @memberof FaceFrameDataList
1099
+ * @instance
1100
+ */
1101
+ FaceFrameDataList.prototype.data = $util.emptyArray;
1102
+
1103
+ /**
1104
+ * Creates a new FaceFrameDataList instance using the specified properties.
1105
+ * @function create
1106
+ * @memberof FaceFrameDataList
1107
+ * @static
1108
+ * @param {IFaceFrameDataList=} [properties] Properties to set
1109
+ * @returns {FaceFrameDataList} FaceFrameDataList instance
1110
+ */
1111
+ FaceFrameDataList.create = function create(properties) {
1112
+ return new FaceFrameDataList(properties);
1113
+ };
1114
+
1115
+ /**
1116
+ * Encodes the specified FaceFrameDataList message. Does not implicitly {@link FaceFrameDataList.verify|verify} messages.
1117
+ * @function encode
1118
+ * @memberof FaceFrameDataList
1119
+ * @static
1120
+ * @param {IFaceFrameDataList} message FaceFrameDataList message or plain object to encode
1121
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1122
+ * @returns {$protobuf.Writer} Writer
1123
+ */
1124
+ FaceFrameDataList.encode = function encode(message, writer) {
1125
+ if (!writer)
1126
+ writer = $Writer.create();
1127
+ if (message.data != null && message.data.length)
1128
+ for (var i = 0; i < message.data.length; ++i)
1129
+ $root.FaceFrameData.encode(message.data[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
1130
+ return writer;
1131
+ };
1132
+
1133
+ /**
1134
+ * Encodes the specified FaceFrameDataList message, length delimited. Does not implicitly {@link FaceFrameDataList.verify|verify} messages.
1135
+ * @function encodeDelimited
1136
+ * @memberof FaceFrameDataList
1137
+ * @static
1138
+ * @param {IFaceFrameDataList} message FaceFrameDataList message or plain object to encode
1139
+ * @param {$protobuf.Writer} [writer] Writer to encode to
1140
+ * @returns {$protobuf.Writer} Writer
1141
+ */
1142
+ FaceFrameDataList.encodeDelimited = function encodeDelimited(message, writer) {
1143
+ return this.encode(message, writer).ldelim();
1144
+ };
1145
+
1146
+ /**
1147
+ * Decodes a FaceFrameDataList message from the specified reader or buffer.
1148
+ * @function decode
1149
+ * @memberof FaceFrameDataList
1150
+ * @static
1151
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1152
+ * @param {number} [length] Message length if known beforehand
1153
+ * @returns {FaceFrameDataList} FaceFrameDataList
1154
+ * @throws {Error} If the payload is not a reader or valid buffer
1155
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1156
+ */
1157
+ FaceFrameDataList.decode = function decode(reader, length, error) {
1158
+ if (!(reader instanceof $Reader))
1159
+ reader = $Reader.create(reader);
1160
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.FaceFrameDataList();
1161
+ while (reader.pos < end) {
1162
+ var tag = reader.uint32();
1163
+ if (tag === error)
1164
+ break;
1165
+ switch (tag >>> 3) {
1166
+ case 1: {
1167
+ if (!(message.data && message.data.length))
1168
+ message.data = [];
1169
+ message.data.push($root.FaceFrameData.decode(reader, reader.uint32()));
1170
+ break;
1171
+ }
1172
+ default:
1173
+ reader.skipType(tag & 7);
1174
+ break;
1175
+ }
1176
+ }
1177
+ return message;
1178
+ };
1179
+
1180
+ /**
1181
+ * Decodes a FaceFrameDataList message from the specified reader or buffer, length delimited.
1182
+ * @function decodeDelimited
1183
+ * @memberof FaceFrameDataList
1184
+ * @static
1185
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
1186
+ * @returns {FaceFrameDataList} FaceFrameDataList
1187
+ * @throws {Error} If the payload is not a reader or valid buffer
1188
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
1189
+ */
1190
+ FaceFrameDataList.decodeDelimited = function decodeDelimited(reader) {
1191
+ if (!(reader instanceof $Reader))
1192
+ reader = new $Reader(reader);
1193
+ return this.decode(reader, reader.uint32());
1194
+ };
1195
+
1196
+ /**
1197
+ * Verifies a FaceFrameDataList message.
1198
+ * @function verify
1199
+ * @memberof FaceFrameDataList
1200
+ * @static
1201
+ * @param {Object.<string,*>} message Plain object to verify
1202
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
1203
+ */
1204
+ FaceFrameDataList.verify = function verify(message) {
1205
+ if (typeof message !== "object" || message === null)
1206
+ return "object expected";
1207
+ if (message.data != null && message.hasOwnProperty("data")) {
1208
+ if (!Array.isArray(message.data))
1209
+ return "data: array expected";
1210
+ for (var i = 0; i < message.data.length; ++i) {
1211
+ var error = $root.FaceFrameData.verify(message.data[i]);
1212
+ if (error)
1213
+ return "data." + error;
1214
+ }
1215
+ }
1216
+ return null;
1217
+ };
1218
+
1219
+ /**
1220
+ * Creates a FaceFrameDataList message from a plain object. Also converts values to their respective internal types.
1221
+ * @function fromObject
1222
+ * @memberof FaceFrameDataList
1223
+ * @static
1224
+ * @param {Object.<string,*>} object Plain object
1225
+ * @returns {FaceFrameDataList} FaceFrameDataList
1226
+ */
1227
+ FaceFrameDataList.fromObject = function fromObject(object) {
1228
+ if (object instanceof $root.FaceFrameDataList)
1229
+ return object;
1230
+ var message = new $root.FaceFrameDataList();
1231
+ if (object.data) {
1232
+ if (!Array.isArray(object.data))
1233
+ throw TypeError(".FaceFrameDataList.data: array expected");
1234
+ message.data = [];
1235
+ for (var i = 0; i < object.data.length; ++i) {
1236
+ if (typeof object.data[i] !== "object")
1237
+ throw TypeError(".FaceFrameDataList.data: object expected");
1238
+ message.data[i] = $root.FaceFrameData.fromObject(object.data[i]);
1239
+ }
1240
+ }
1241
+ return message;
1242
+ };
1243
+
1244
+ /**
1245
+ * Creates a plain object from a FaceFrameDataList message. Also converts values to other types if specified.
1246
+ * @function toObject
1247
+ * @memberof FaceFrameDataList
1248
+ * @static
1249
+ * @param {FaceFrameDataList} message FaceFrameDataList
1250
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
1251
+ * @returns {Object.<string,*>} Plain object
1252
+ */
1253
+ FaceFrameDataList.toObject = function toObject(message, options) {
1254
+ if (!options)
1255
+ options = {};
1256
+ var object = {};
1257
+ if (options.arrays || options.defaults)
1258
+ object.data = [];
1259
+ if (message.data && message.data.length) {
1260
+ object.data = [];
1261
+ for (var j = 0; j < message.data.length; ++j)
1262
+ object.data[j] = $root.FaceFrameData.toObject(message.data[j], options);
1263
+ }
1264
+ return object;
1265
+ };
1266
+
1267
+ /**
1268
+ * Converts this FaceFrameDataList to JSON.
1269
+ * @function toJSON
1270
+ * @memberof FaceFrameDataList
1271
+ * @instance
1272
+ * @returns {Object.<string,*>} JSON object
1273
+ */
1274
+ FaceFrameDataList.prototype.toJSON = function toJSON() {
1275
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
1276
+ };
1277
+
1278
+ /**
1279
+ * Gets the default type url for FaceFrameDataList
1280
+ * @function getTypeUrl
1281
+ * @memberof FaceFrameDataList
1282
+ * @static
1283
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
1284
+ * @returns {string} The default type url
1285
+ */
1286
+ FaceFrameDataList.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
1287
+ if (typeUrlPrefix === undefined) {
1288
+ typeUrlPrefix = "type.googleapis.com";
1289
+ }
1290
+ return typeUrlPrefix + "/FaceFrameDataList";
1291
+ };
1292
+
1293
+ return FaceFrameDataList;
1294
+ })();
1295
+
1296
+ return $root;
1297
+ })(protobuf);