@markandre13/usd.js 0.0.4 → 0.0.5

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 (153) hide show
  1. package/dist/compression/compress.js +5 -2
  2. package/dist/compression/compress.js.map +1 -1
  3. package/dist/compression/integers.js +11 -0
  4. package/dist/compression/integers.js.map +1 -1
  5. package/dist/compression/lz4.d.ts +18 -1
  6. package/dist/compression/lz4.js +100 -17
  7. package/dist/compression/lz4.js.map +1 -1
  8. package/dist/crate/BootStrap.js +2 -0
  9. package/dist/crate/BootStrap.js.map +1 -1
  10. package/dist/crate/Crate.d.ts +8 -1
  11. package/dist/crate/Crate.js +49 -4
  12. package/dist/crate/Crate.js.map +1 -1
  13. package/dist/crate/Fields.d.ts +1 -1
  14. package/dist/crate/Fields.js +26 -1
  15. package/dist/crate/Fields.js.map +1 -1
  16. package/dist/crate/Paths.d.ts +1 -1
  17. package/dist/crate/Paths.js +16 -2
  18. package/dist/crate/Paths.js.map +1 -1
  19. package/dist/crate/Reader.js +3 -3
  20. package/dist/crate/Reader.js.map +1 -1
  21. package/dist/crate/SpecType.d.ts +3 -3
  22. package/dist/crate/SpecType.js +2 -0
  23. package/dist/crate/SpecType.js.map +1 -1
  24. package/dist/crate/Specifier.d.ts +1 -1
  25. package/dist/crate/Specs.js +1 -0
  26. package/dist/crate/Specs.js.map +1 -1
  27. package/dist/crate/Stage.d.ts +1 -1
  28. package/dist/crate/Stage.js +1 -0
  29. package/dist/crate/Stage.js.map +1 -1
  30. package/dist/crate/Strings.js +5 -0
  31. package/dist/crate/Strings.js.map +1 -1
  32. package/dist/crate/Tokens.js +47 -1
  33. package/dist/crate/Tokens.js.map +1 -1
  34. package/dist/crate/ValueRep.d.ts +1 -1
  35. package/dist/crate/ValueRep.js +27 -3
  36. package/dist/crate/ValueRep.js.map +1 -1
  37. package/dist/crate/Variability.d.ts +1 -1
  38. package/dist/crate/Writer.d.ts +3 -0
  39. package/dist/crate/Writer.js +21 -0
  40. package/dist/crate/Writer.js.map +1 -1
  41. package/dist/detail/hexdump.js +1 -0
  42. package/dist/detail/hexdump.js.map +1 -1
  43. package/dist/nodes/attributes/AssetPathAttr.d.ts +1 -1
  44. package/dist/nodes/attributes/AssetPathAttr.js +1 -1
  45. package/dist/nodes/attributes/AssetPathAttr.js.map +1 -1
  46. package/dist/nodes/attributes/Attribute.d.ts +1 -1
  47. package/dist/nodes/attributes/Attribute.js +1 -1
  48. package/dist/nodes/attributes/Attribute.js.map +1 -1
  49. package/dist/nodes/attributes/BooleanAttr.d.ts +1 -1
  50. package/dist/nodes/attributes/BooleanAttr.js +1 -1
  51. package/dist/nodes/attributes/BooleanAttr.js.map +1 -1
  52. package/dist/nodes/attributes/Color3fAttr.d.ts +3 -3
  53. package/dist/nodes/attributes/Color3fAttr.js +1 -1
  54. package/dist/nodes/attributes/Color3fAttr.js.map +1 -1
  55. package/dist/nodes/attributes/FloatAttr.d.ts +1 -1
  56. package/dist/nodes/attributes/FloatAttr.js +1 -1
  57. package/dist/nodes/attributes/FloatAttr.js.map +1 -1
  58. package/dist/nodes/attributes/IntArrayAttr.d.ts +1 -1
  59. package/dist/nodes/attributes/IntArrayAttr.js +1 -1
  60. package/dist/nodes/attributes/IntArrayAttr.js.map +1 -1
  61. package/dist/nodes/attributes/Relationship.d.ts +1 -1
  62. package/dist/nodes/attributes/Relationship.js +1 -1
  63. package/dist/nodes/attributes/Relationship.js.map +1 -1
  64. package/dist/nodes/attributes/StringAttr.d.ts +1 -1
  65. package/dist/nodes/attributes/StringAttr.js +1 -1
  66. package/dist/nodes/attributes/StringAttr.js.map +1 -1
  67. package/dist/nodes/attributes/TokenAttr.d.ts +1 -1
  68. package/dist/nodes/attributes/TokenAttr.js +1 -1
  69. package/dist/nodes/attributes/TokenAttr.js.map +1 -1
  70. package/dist/nodes/attributes/VariabilityAttr.d.ts +1 -1
  71. package/dist/nodes/attributes/VariabilityAttr.js +1 -1
  72. package/dist/nodes/attributes/VariabilityAttr.js.map +1 -1
  73. package/dist/nodes/attributes/Vec2fArrayAttr.d.ts +1 -1
  74. package/dist/nodes/attributes/Vec2fArrayAttr.js +1 -1
  75. package/dist/nodes/attributes/Vec2fArrayAttr.js.map +1 -1
  76. package/dist/nodes/attributes/Vec3fArrayAttr.d.ts +1 -1
  77. package/dist/nodes/attributes/Vec3fArrayAttr.js +1 -1
  78. package/dist/nodes/attributes/Vec3fArrayAttr.js.map +1 -1
  79. package/dist/nodes/geometry/Boundable.d.ts +6 -0
  80. package/dist/nodes/geometry/Boundable.js +6 -0
  81. package/dist/nodes/geometry/Boundable.js.map +1 -1
  82. package/dist/nodes/geometry/Camera.d.ts +7 -2
  83. package/dist/nodes/geometry/Camera.js +36 -0
  84. package/dist/nodes/geometry/Camera.js.map +1 -1
  85. package/dist/nodes/geometry/GeomSubset.d.ts +1 -1
  86. package/dist/nodes/geometry/GeomSubset.js +1 -1
  87. package/dist/nodes/geometry/GeomSubset.js.map +1 -1
  88. package/dist/nodes/geometry/Gprim.d.ts +28 -0
  89. package/dist/nodes/geometry/Gprim.js +30 -0
  90. package/dist/nodes/geometry/Gprim.js.map +1 -1
  91. package/dist/nodes/geometry/Imageable.d.ts +9 -0
  92. package/dist/nodes/geometry/Imageable.js +9 -0
  93. package/dist/nodes/geometry/Imageable.js.map +1 -1
  94. package/dist/nodes/geometry/Mesh.d.ts +69 -7
  95. package/dist/nodes/geometry/Mesh.js +100 -10
  96. package/dist/nodes/geometry/Mesh.js.map +1 -1
  97. package/dist/nodes/geometry/PointBased.d.ts +19 -2
  98. package/dist/nodes/geometry/PointBased.js +24 -12
  99. package/dist/nodes/geometry/PointBased.js.map +1 -1
  100. package/dist/nodes/geometry/Scope.d.ts +9 -1
  101. package/dist/nodes/geometry/Scope.js +8 -0
  102. package/dist/nodes/geometry/Scope.js.map +1 -1
  103. package/dist/nodes/geometry/SkelBindingAPI.d.ts +53 -0
  104. package/dist/nodes/geometry/SkelBindingAPI.js +2 -0
  105. package/dist/nodes/geometry/SkelBindingAPI.js.map +1 -0
  106. package/dist/nodes/geometry/Xform.d.ts +6 -1
  107. package/dist/nodes/geometry/Xform.js +5 -0
  108. package/dist/nodes/geometry/Xform.js.map +1 -1
  109. package/dist/nodes/geometry/Xformable.d.ts +9 -3
  110. package/dist/nodes/geometry/Xformable.js +6 -0
  111. package/dist/nodes/geometry/Xformable.js.map +1 -1
  112. package/dist/nodes/lux/BoundableLightBase.d.ts +8 -0
  113. package/dist/nodes/lux/BoundableLightBase.js +8 -0
  114. package/dist/nodes/lux/BoundableLightBase.js.map +1 -1
  115. package/dist/nodes/lux/DomeLight.d.ts +11 -1
  116. package/dist/nodes/lux/DomeLight.js +10 -0
  117. package/dist/nodes/lux/DomeLight.js.map +1 -1
  118. package/dist/nodes/lux/NonboundableLightBase.d.ts +1 -1
  119. package/dist/nodes/lux/NonboundableLightBase.js +10 -1
  120. package/dist/nodes/lux/NonboundableLightBase.js.map +1 -1
  121. package/dist/nodes/lux/SphereLight.d.ts +9 -1
  122. package/dist/nodes/lux/SphereLight.js +8 -0
  123. package/dist/nodes/lux/SphereLight.js.map +1 -1
  124. package/dist/nodes/shader/Material.d.ts +7 -1
  125. package/dist/nodes/shader/Material.js +6 -0
  126. package/dist/nodes/shader/Material.js.map +1 -1
  127. package/dist/nodes/shader/NodeGraph.d.ts +7 -0
  128. package/dist/nodes/shader/NodeGraph.js +7 -0
  129. package/dist/nodes/shader/NodeGraph.js.map +1 -1
  130. package/dist/nodes/shader/Shader.d.ts +9 -1
  131. package/dist/nodes/shader/Shader.js +8 -0
  132. package/dist/nodes/shader/Shader.js.map +1 -1
  133. package/dist/nodes/skeleton/SkelRoot.d.ts +6 -1
  134. package/dist/nodes/skeleton/SkelRoot.js +5 -0
  135. package/dist/nodes/skeleton/SkelRoot.js.map +1 -1
  136. package/dist/nodes/skeleton/Skeleton.d.ts +41 -4
  137. package/dist/nodes/skeleton/Skeleton.js +37 -0
  138. package/dist/nodes/skeleton/Skeleton.js.map +1 -1
  139. package/dist/nodes/usd/PseudoRoot.d.ts +1 -1
  140. package/dist/nodes/usd/PseudoRoot.js +21 -1
  141. package/dist/nodes/usd/PseudoRoot.js.map +1 -1
  142. package/dist/nodes/usd/SchemaBase.d.ts +1 -1
  143. package/dist/nodes/usd/SchemaBase.js +1 -1
  144. package/dist/nodes/usd/SchemaBase.js.map +1 -1
  145. package/dist/nodes/usd/Typed.d.ts +10 -0
  146. package/dist/nodes/usd/Typed.js +10 -0
  147. package/dist/nodes/usd/Typed.js.map +1 -1
  148. package/dist/{crate → nodes/usd}/UsdNode.d.ts +18 -9
  149. package/dist/{crate → nodes/usd}/UsdNode.js +35 -2
  150. package/dist/nodes/usd/UsdNode.js.map +1 -0
  151. package/package.json +8 -8
  152. package/dist/crate/UsdNode.js.map +0 -1
  153. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -5,7 +5,7 @@ import { compressBound } from "../compression/lz4";
5
5
  import { Reader } from "./Reader.js";
6
6
  import { kMinCompressedArraySize, ValueRep } from "./ValueRep";
7
7
  import { Writer } from "./Writer.js";
8
- import { UsdNode } from "./UsdNode.js";
8
+ import { UsdNode } from "../nodes/usd/UsdNode.js";
9
9
  const IsArrayBit_ = 128;
10
10
  const IsInlinedBit = 64;
11
11
  const IsCompressedBit = 32;
@@ -18,6 +18,7 @@ export class Fields {
18
18
  const reader = tokensOrReader;
19
19
  const numFields = reader.getUint64();
20
20
  const indices = reader.getCompressedIntegers(numFields);
21
+ // ValueReps
21
22
  const compressedSize = reader.getUint64();
22
23
  const uncompressedSize = numFields * 8;
23
24
  const compressed = new Uint8Array(reader._dataview.buffer, reader.offset, compressedSize);
@@ -25,11 +26,18 @@ export class Fields {
25
26
  if (uncompressedSize !== decompressFromBuffer(compressed, uncompressed)) {
26
27
  throw Error("Failed to read Fields ValueRep data.");
27
28
  }
29
+ // create fields
28
30
  const dataview = new DataView(uncompressed.buffer);
29
31
  this.fields = new Array(numFields);
30
32
  for (let field = 0; field < numFields; ++field) {
31
33
  this.fields[field] = new Field(indices[field], new ValueRep(dataview, field * 8));
32
34
  }
35
+ // for (let i = 0; i < numFields; ++i) {
36
+ // console.log(`fields[${i}] = ${this.fields[i].toString(this.tokens)}`)
37
+ // }
38
+ // if (section.start + section.size !== reader.offset) {
39
+ // throw Error(`FIELDS: not at end: expected end at ${section.start + section.size} but reader is at ${reader.offset}`)
40
+ // }
33
41
  }
34
42
  else {
35
43
  this.tokens = tokensOrReader;
@@ -149,7 +157,11 @@ export class Fields {
149
157
  return this.__setDictionary(this.valueReps, this.data, value);
150
158
  }
151
159
  __setDictionary(writer0, writer1, value) {
160
+ // console.log(`SET DICTIONARY: %o`, value)
152
161
  const idx = writer0.tell() / 8;
162
+ // console.log(`${writer0.name}@${writer0.tell()}: dict -> offset ${writer1.tell()}`)
163
+ // console.log(`__setDictionary() IN : writer0 valuerep @ ${writer0.tell()}`)
164
+ // just in case writer0 and writer1 are the same, advance writer0 to find out where writer1 will begin
153
165
  const offset0 = writer0.tell();
154
166
  writer0.skip(8);
155
167
  const offset1 = writer1.tell();
@@ -160,10 +172,13 @@ export class Fields {
160
172
  writer0.writeUint8(0);
161
173
  const names = Object.getOwnPropertyNames(value);
162
174
  writer1.writeUint64(names.length);
175
+ // console.log(`encode dict at ${offset0} of size ${names.length}, offset ${offset1.toString(16).padStart(4, '0')}`)
163
176
  const oldPos = writer1.tell();
164
177
  writer1.skip(names.length * (4 + 8));
178
+ // write values at back
165
179
  const offsets = [];
166
180
  for (const name of names) {
181
+ // console.log(`${writer1.name}@0x${writer1.tell().toString(16).padStart(4, '0')} value ${name}`)
167
182
  offsets.push(writer1.tell());
168
183
  const v = value[name];
169
184
  switch (typeof v) {
@@ -177,6 +192,7 @@ export class Fields {
177
192
  throw Error(`yikes: type ${typeof v} not implemented yet`);
178
193
  }
179
194
  }
195
+ // write names and offset at front
180
196
  const offsetEnd = writer1.tell();
181
197
  writer1.seek(oldPos);
182
198
  for (const name of names) {
@@ -196,11 +212,15 @@ export class Fields {
196
212
  const idx = this.valueReps.tell() / 8;
197
213
  this.tokenIndices.push(this.tokens.add(name));
198
214
  const offset = this.data.tell();
215
+ // if (value.explicit && value.explicit[0] instanceof UsdNode) {
216
+ // console.log(`ValueRep(): write ListOp<UsdNode> @ ${offset}`)
217
+ // }
199
218
  this.valueReps.writeUint32(this.data.tell());
200
219
  this.valueReps.skip(2);
201
220
  this.valueReps.writeUint8(type);
202
221
  this.valueReps.writeUint8(0);
203
222
  const hdr = new ListOpHeader(this.data, value);
223
+ // console.log(hdr.toString())
204
224
  const write = (list) => {
205
225
  if (list === undefined) {
206
226
  return;
@@ -217,8 +237,10 @@ export class Fields {
217
237
  case "object":
218
238
  const o = v;
219
239
  if (o instanceof UsdNode) {
240
+ // console.log(`_setListOp(${name}, ${o.index} %o)`, o.toJSON())
220
241
  if (o.index === -1) {
221
242
  throw Error(`Fields._setListOp("${name}", ...): object ${o.getFullPathName()} has no index yet`);
243
+ // console.log(`Fields._setListOp("${name}", ...): object ${o.getFullPathName()} has no index yet`)
222
244
  }
223
245
  this.data.writeUint32(o.index);
224
246
  }
@@ -246,6 +268,7 @@ export class Fields {
246
268
  this.valueReps.writeUint8(IsInlinedBit);
247
269
  return idx;
248
270
  }
271
+ // TODO: this can be stored as compressed
249
272
  setIntArray(name, value) {
250
273
  const idx = this.valueReps.tell() / 8;
251
274
  this.tokenIndices.push(this.tokens.add(name));
@@ -402,6 +425,8 @@ export class Fields {
402
425
  return idx;
403
426
  }
404
427
  serialize(writer) {
428
+ // const numFields = this.tokenIndices.length
429
+ // writer.writeUint64(numFields) // done in writeCompresedInt
405
430
  writer.writeCompressedIntegers(this.tokenIndices);
406
431
  const compressed = new Uint8Array(compressBound(this.valueReps.buffer.byteLength) + 1);
407
432
  const compresedSize = compressToBuffer(new Uint8Array(this.valueReps.buffer), compressed);
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../../src/crate/Fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,WAAW,GAAG,GAAG,CAAA;AACvB,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,eAAe,GAAG,EAAE,CAAA;AAY1B,MAAM,OAAO,MAAM;IAaf,YAAY,cAA+B,EAAE,OAAiB,EAAE,IAAa;QAZ7E,iBAAY,GAAa,EAAE,CAAA;QAI3B,cAAS,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAC7C,WAAM,GAAG,CAAC,CAAA;QAQN,IAAI,cAAc,YAAY,MAAM,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,cAAc,CAAA;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAEpC,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAGvD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YACzC,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAA;YACtC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YACzF,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAA;YACrD,IAAI,gBAAgB,KAAK,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;gBACtE,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAA;YACvD,CAAC;YAGD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;YAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;YACrF,CAAC;QAQL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,cAAc,CAAA;YAC5B,IAAI,CAAC,OAAO,GAAG,OAAQ,CAAA;YACvB,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;QACrB,CAAC;IACL,CAAC;IACD,MAAM,CAAC,IAAY,EAAE,KAAa;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,QAAQ,CAAC,IAAY,EAAE,KAAa;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,UAAU,CAAC,IAAY,EAAE,KAAc;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,WAAW,CAAC,KAAc;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACnD,CAAC;IACD,YAAY,CAAC,MAAc,EAAE,KAAc;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACd,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC/B,OAAO,GAAG,CAAA;IACd,CAAC;IACD,SAAS,CAAC,IAAY,EAAE,KAAa;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,KAAkB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,QAAQ,CAAC,IAAY,EAAE,KAAa;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,YAAY,CAAC,IAAY,EAAE,KAAa;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,KAAe;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAE5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,KAAe;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,YAAY,CAAC,IAAY,EAAE,KAAgB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,KAAU;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IACD,cAAc,CAAC,KAAU;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC;IACD,eAAe,CAAC,OAAe,EAAE,OAAe,EAAE,KAAU;QAGxD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAK9B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAErB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC5C,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAErB,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAIjC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAGpC,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAEvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,QAAQ,OAAO,CAAC,EAAE,CAAC;gBACf,KAAK,SAAS;oBACV,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;oBAC7B,MAAK;gBACT,KAAK,QAAQ;oBACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;oBACzC,MAAK;gBACT;oBACI,MAAM,KAAK,CAAC,eAAe,OAAO,CAAC,sBAAsB,CAAC,CAAA;YAClE,CAAC;QACL,CAAC;QAGD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAChC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvB,OAAO,GAAG,CAAA;IACd,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,KAAqB;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAClE,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,KAAsB;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACjE,CAAC;IACD,UAAU,CAAC,IAAY,EAAE,KAAwC,EAAE,IAAmB;QAClF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAI/B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAE5B,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAG9C,MAAM,KAAK,GAAG,CAAC,IAAoC,EAAE,EAAE;YACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,OAAM;YACV,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,QAAQ,OAAO,CAAC,EAAE,CAAC;oBACf,KAAK,QAAQ;wBACT,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;wBACzC,MAAK;oBACT,KAAK,QAAQ;wBACT,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;wBACxB,MAAK;oBACT,KAAK,QAAQ;wBACT,MAAM,CAAC,GAAG,CAAW,CAAA;wBACrB,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;4BAEvB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gCACjB,MAAM,KAAK,CAAC,sBAAsB,IAAI,mBAAmB,CAAC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;4BAEpG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;wBAClC,CAAC;6BAAM,CAAC;4BACJ,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;wBACD,MAAK;gBACb,CAAC;YACL,CAAC;QACL,CAAC,CAAA;QAED,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACrB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,GAAG,CAAA;IACd,CAAC;IACD,SAAS,CAAC,IAAY,EAAE,KAAa;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACvC,OAAO,GAAG,CAAA;IACd,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,KAAwB;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAClC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,CAAA;YACxD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,QAAQ,CAAC,IAAY,EAAE,KAAwB;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,QAAQ,CAAC,IAAY,EAAE,KAAwB;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,QAAQ,CAAC,IAAY,EAAE,KAAwB;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7D,CAAC;IACO,QAAQ,CAAC,IAAY,EAAE,KAAwB,EAAE,IAAmB,EAAE,CAAS;QACnF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,uCAAuC,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAE7C,IAAI,SAAS,GAAG,IAAI,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;gBACzE,SAAS,GAAG,KAAK,CAAA;gBACjB,MAAK;YACT,CAAC;QACL,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAChC,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,QAAQ,CAAC,IAAY,EAAE,KAAwB;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC,aAAa,IAAI,uCAAuC,CAAC,CAAA;QACzE,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;eAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;eAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,WAAW,CAAC,IAAY,EAAE,KAAwB;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,gBAAgB,CAAC,IAAY,EAAE,KAAwB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,KAAwB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,KAAwB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,KAAwB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,SAAS,CAAC,MAAc;QAIpB,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEjD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACtF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAA;QACzF,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QACjC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,aAAa,CAAC,CAAA;IACpD,CAAC;CACJ"}
1
+ {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../../src/crate/Fields.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Reader } from "./Reader.js";
2
2
  import type { Tokens } from "./Tokens";
3
- import { UsdNode } from "./UsdNode";
3
+ import { UsdNode } from "../nodes/usd/UsdNode";
4
4
  import type { Writer } from "./Writer";
5
5
  export declare const JUMP_NO_CHILD_NO_SIBLINGS = -2;
6
6
  export declare const JUMP_NEXT_IS_CHILD_NO_SIBLINGS = -1;
@@ -8,6 +8,7 @@ export class Paths {
8
8
  if (reader instanceof Reader) {
9
9
  this.num_nodes = reader.getUint64();
10
10
  const numEncodedPaths = reader.getUint64();
11
+ // console.log(`Paths(reader): num_nodes = ${this.num_nodes}, numEncodedPaths = ${numEncodedPaths}`)
11
12
  this.pathIndexes = reader.getCompressedIntegers(numEncodedPaths);
12
13
  this.tokenIndexes = reader.getCompressedIntegers(numEncodedPaths);
13
14
  this.jumps = reader.getCompressedIntegers(numEncodedPaths);
@@ -16,9 +17,11 @@ export class Paths {
16
17
  encode(tokens, root) {
17
18
  this._nodes = new Array(root.numberOfNodes());
18
19
  const numEncodedPaths = this._nodes.length;
20
+ // console.log(`numEncodedPaths = ${numEncodedPaths}`)
19
21
  this.pathIndexes = new Array(numEncodedPaths);
20
22
  this.tokenIndexes = new Array(numEncodedPaths);
21
23
  this.jumps = new Array(numEncodedPaths);
24
+ // TODO: do this earlier to fill up the tokens
22
25
  const arg = {
23
26
  tokens,
24
27
  thisIndex: 0,
@@ -28,10 +31,21 @@ export class Paths {
28
31
  depth: 0
29
32
  };
30
33
  root.flatten(arg);
34
+ // this.print()
31
35
  }
32
36
  serialize(writer) {
33
- writer.writeUint64(this._nodes.length);
34
- writer.writeUint64(this._nodes.length);
37
+ // for(let i=0; i<numEncodedPaths; ++i) {
38
+ // const n = this._nodes[i]
39
+ // console.log(`[${i}] = token ${arg.tokenIndexes[i]} ${n.name}, jump ${arg.jumps[i]}`)
40
+ // }
41
+ // console.log('PATH WRITE')
42
+ // console.log(`numNodes : ${this._nodes.length}`)
43
+ // console.log(`numEncodedPaths: ${numEncodedPaths}`)
44
+ // console.log(`pathIndices : ${arg.pathIndexes}`)
45
+ // console.log(`tokenIndexes : ${arg.tokenIndexes}`)
46
+ // console.log(`jumps : ${arg.jumps}`)
47
+ writer.writeUint64(this._nodes.length); // number of nodes
48
+ writer.writeUint64(this._nodes.length); // number of paths
35
49
  writer.writeCompressedIntWithoutSize(this.pathIndexes);
36
50
  writer.writeCompressedIntWithoutSize(this.tokenIndexes);
37
51
  writer.writeCompressedIntWithoutSize(this.jumps);
@@ -1 +1 @@
1
- {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../src/crate/Paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMpC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,CAAA;AAC3C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAA;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,CAAA;AAErD,MAAM,OAAO,KAAK;IAQd,YAAY,MAAe;QACvB,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YACnC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAI1C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;YAChE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;YACjE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;QAC9D,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,IAAa;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAG1C,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAS,eAAe,CAAC,CAAA;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAS,eAAe,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAS,eAAe,CAAC,CAAA;QAG/C,MAAM,GAAG,GAAyB;YAC9B,MAAM;YACN,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,CAAC;SACX,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAErB,CAAC;IAED,SAAS,CAAC,MAAc;QAapB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACvD,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpD,CAAC;CACJ"}
1
+ {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../src/crate/Paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMpC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,CAAA;AAC3C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAA;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,CAAA;AAErD,MAAM,OAAO,KAAK;IAQd,YAAY,MAAe;QACvB,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YACnC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAE1C,oGAAoG;YAEpG,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;YAChE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;YACjE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAA;QAC9D,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,IAAa;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAC1C,sDAAsD;QAEtD,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAS,eAAe,CAAC,CAAA;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAS,eAAe,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAS,eAAe,CAAC,CAAA;QAE/C,8CAA8C;QAC9C,MAAM,GAAG,GAAyB;YAC9B,MAAM;YACN,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,CAAC;SACX,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACjB,eAAe;IACnB,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,yCAAyC;QACzC,+BAA+B;QAC/B,2FAA2F;QAC3F,IAAI;QAEJ,4BAA4B;QAC5B,wDAAwD;QACxD,qDAAqD;QACrD,qDAAqD;QACrD,sDAAsD;QACtD,+CAA+C;QAE/C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAA,CAAC,kBAAkB;QAC1D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAA,CAAC,kBAAkB;QAC1D,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACvD,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpD,CAAC;CACJ"}
@@ -71,9 +71,9 @@ export class Reader {
71
71
  const compressedSize = this.getUint64();
72
72
  const compressed = new Uint8Array(this._dataview.buffer, this.offset, compressedSize);
73
73
  this.offset += compressedSize;
74
- const workingSpaceSize = 4
75
- + Math.floor((numberOfInts * 2 + 7) / 8)
76
- + numberOfInts * 4;
74
+ const workingSpaceSize = 4 // common value uint32
75
+ + Math.floor((numberOfInts * 2 + 7) / 8) // number of code bytes
76
+ + numberOfInts * 4; // max. space for uint32
77
77
  const workingSpace = new Uint8Array(workingSpaceSize);
78
78
  const decompSz = decompressFromBuffer(compressed, workingSpace);
79
79
  const xxx = new Uint8Array(workingSpace.buffer, 0, decompSz);
@@ -1 +1 @@
1
- {"version":3,"file":"Reader.js","sourceRoot":"","sources":["../../src/crate/Reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reader.js","sourceRoot":"","sources":["../../src/crate/Reader.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  export declare enum SpecType {
2
2
  Unknown = 0,
3
- Attribute = 1,
3
+ Attribute = 1,// is a property
4
4
  Connection = 2,
5
5
  Expression = 3,
6
6
  Mapper = 4,
7
7
  MapperArg = 5,
8
8
  Prim = 6,
9
- PseudoRoot = 7,
10
- Relationship = 8,
9
+ PseudoRoot = 7,// is a prim
10
+ Relationship = 8,// is a property
11
11
  RelationshipTarget = 9,
12
12
  Variant = 10,
13
13
  VariantSet = 11,
@@ -1,3 +1,5 @@
1
+ // SpecType enum must be same order with pxrUSD's SdfSpecType(since enum value
2
+ // is stored in Crate directly)
1
3
  export var SpecType;
2
4
  (function (SpecType) {
3
5
  SpecType[SpecType["Unknown"] = 0] = "Unknown";
@@ -1 +1 @@
1
- {"version":3,"file":"SpecType.js","sourceRoot":"","sources":["../../src/crate/SpecType.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,QAcX;AAdD,WAAY,QAAQ;IAChB,6CAAO,CAAA;IACP,iDAAS,CAAA;IACT,mDAAU,CAAA;IACV,mDAAU,CAAA;IACV,2CAAM,CAAA;IACN,iDAAS,CAAA;IACT,uCAAI,CAAA;IACJ,mDAAU,CAAA;IACV,uDAAY,CAAA;IACZ,mEAAkB,CAAA;IAClB,8CAAO,CAAA;IACP,oDAAU,CAAA;IACV,8CAAO,CAAA;AACX,CAAC,EAdW,QAAQ,KAAR,QAAQ,QAcnB;AAED,MAAM,UAAU,MAAM,CAAC,IAAc;IACjC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ,CAAC,UAAU,CAAC;QACzB,KAAK,QAAQ,CAAC,IAAI;YACd,OAAO,IAAI,CAAA;QACf,KAAK,QAAQ,CAAC,SAAS,CAAC;QACxB,KAAK,QAAQ,CAAC,YAAY;YACtB,OAAO,KAAK,CAAA;QAChB;YACI,MAAM,KAAK,CAAC,2BAA2B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACjF,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"SpecType.js","sourceRoot":"","sources":["../../src/crate/SpecType.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+BAA+B;AAE/B,MAAM,CAAN,IAAY,QAcX;AAdD,WAAY,QAAQ;IAChB,6CAAO,CAAA;IACP,iDAAS,CAAA;IACT,mDAAU,CAAA;IACV,mDAAU,CAAA;IACV,2CAAM,CAAA;IACN,iDAAS,CAAA;IACT,uCAAI,CAAA;IACJ,mDAAU,CAAA;IACV,uDAAY,CAAA;IACZ,mEAAkB,CAAA;IAClB,8CAAO,CAAA;IACP,oDAAU,CAAA;IACV,8CAAO,CAAA;AACX,CAAC,EAdW,QAAQ,KAAR,QAAQ,QAcnB;AAED,MAAM,UAAU,MAAM,CAAC,IAAc;IACjC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ,CAAC,UAAU,CAAC;QACzB,KAAK,QAAQ,CAAC,IAAI;YACd,OAAO,IAAI,CAAA;QACf,KAAK,QAAQ,CAAC,SAAS,CAAC;QACxB,KAAK,QAAQ,CAAC,YAAY;YACtB,OAAO,KAAK,CAAA;QAChB;YACI,MAAM,KAAK,CAAC,2BAA2B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACjF,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export declare enum Specifier {
2
- Def = 0,
2
+ Def = 0,// 0
3
3
  Over = 1,
4
4
  Class = 2,
5
5
  Invalid = 3
@@ -2,6 +2,7 @@ export class Specs {
2
2
  constructor(reader) {
3
3
  if (reader !== undefined) {
4
4
  const num_specs = reader.getUint64();
5
+ // console.log(`Specs(reader): num_specs = ${num_specs}`)
5
6
  this.pathIndexes = reader.getCompressedIntegers(num_specs);
6
7
  this.fieldsetIndexes = reader.getCompressedIntegers(num_specs);
7
8
  this.specTypeIndexes = reader.getCompressedIntegers(num_specs);
@@ -1 +1 @@
1
- {"version":3,"file":"Specs.js","sourceRoot":"","sources":["../../src/crate/Specs.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,KAAK;IAKd,YAAY,MAAe;QACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAIpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAC1D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAC9D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QAClE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;YACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QAC7B,CAAC;IACL,CAAC;IACD,SAAS,CAAC,MAAc;QACpB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM;YACvD,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1D,MAAM,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC1D,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC9D,CAAC;CACJ"}
1
+ {"version":3,"file":"Specs.js","sourceRoot":"","sources":["../../src/crate/Specs.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,KAAK;IAKd,YAAY,MAAe;QACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAEpC,yDAAyD;YAEzD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAC1D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAC9D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QAClE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;YACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QAC7B,CAAC;IACL,CAAC;IACD,SAAS,CAAC,MAAc;QACpB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM;YACvD,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1D,MAAM,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC1D,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC9D,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import { Crate } from "./Crate.js";
2
- import type { UsdNode } from "./UsdNode";
2
+ import type { UsdNode } from "../nodes/usd/UsdNode.js";
3
3
  export declare class Stage {
4
4
  _crate: Crate;
5
5
  constructor(buffer?: Buffer);
@@ -13,6 +13,7 @@ export class Stage {
13
13
  throw Error('only absolute paths are implemented');
14
14
  }
15
15
  const pathSegments = path.split('/').splice(1);
16
+ // console.log(`TRAVERSE %o (${path})`, s)
16
17
  let parent;
17
18
  let node = this._crate.paths._nodes[0];
18
19
  for (const segment of pathSegments) {
@@ -1 +1 @@
1
- {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../src/crate/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,MAAM,OAAO,KAAK;IAEd,YAAY,MAAe;QACvB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;YACxG,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,IAAY;QACtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACtD,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAE9C,IAAI,MAA2B,CAAA;QAC/B,IAAI,IAAI,GAAwB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3D,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAK;YACT,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAK;YACT,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC,SAAS,IAAI,mBAAmB,MAAM,EAAE,eAAe,EAAE,2BAA2B,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrJ,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
1
+ {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../src/crate/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,MAAM,OAAO,KAAK;IAEd,YAAY,MAAe;QACvB,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;YACxG,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,IAAY;QACtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACtD,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9C,0CAA0C;QAC1C,IAAI,MAA2B,CAAA;QAC/B,IAAI,IAAI,GAAwB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3D,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAK;YACT,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAK;YACT,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC,SAAS,IAAI,mBAAmB,MAAM,EAAE,eAAe,EAAE,2BAA2B,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrJ,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -1,4 +1,5 @@
1
1
  import { Reader } from "./Reader.js";
2
+ // WHUT? these are stored as a _non-compressed_ list of integers???
2
3
  export class Strings {
3
4
  constructor(readerOrTokens, tokens) {
4
5
  if (readerOrTokens instanceof Reader) {
@@ -8,6 +9,9 @@ export class Strings {
8
9
  for (let i = 0; i < n; ++i) {
9
10
  this.strings[i] = readerOrTokens.getUint32();
10
11
  }
12
+ // if (section.start + section.size !== reader.offset) {
13
+ // throw Error(`STRINGS: not at end: expected end at ${section.start + section.size} but reader is at ${reader.offset}`)
14
+ // }
11
15
  }
12
16
  else {
13
17
  this.tokens = readerOrTokens;
@@ -33,6 +37,7 @@ export class Strings {
33
37
  let index = this._strings.get(value);
34
38
  if (index === undefined) {
35
39
  index = this.strings.length;
40
+ // TODO: do this during serialize to place strings at the end
36
41
  const token = this.tokens.add(value);
37
42
  this.strings.push(token);
38
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../src/crate/Strings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,MAAM,OAAO,OAAO;IAOhB,YAAY,cAA+B,EAAE,MAAe;QACxD,IAAI,cAAc,YAAY,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,MAAO,CAAA;YACrB,MAAM,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAA;YACpC,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAA;YAChD,CAAC;QAIL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,cAAc,CAAA;YAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACrB,CAAC;IACL,CAAC;IACD,SAAS,CAAC,MAAc;QACpB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvC,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;IACL,CAAC;IACD,GAAG,CAAC,KAAa;QACb,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC,gBAAgB,KAAK,kBAAkB,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,GAAG,CAAC,KAAa;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QAC7B,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;YAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ"}
1
+ {"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../src/crate/Strings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,mEAAmE;AACnE,MAAM,OAAO,OAAO;IAOhB,YAAY,cAA+B,EAAE,MAAe;QACxD,IAAI,cAAc,YAAY,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,MAAO,CAAA;YACrB,MAAM,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAA;YACpC,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAA;YAChD,CAAC;YACD,wDAAwD;YACxD,4HAA4H;YAC5H,IAAI;QACR,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,cAAc,CAAA;YAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACrB,CAAC;IACL,CAAC;IACD,SAAS,CAAC,MAAc;QACpB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvC,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;IACL,CAAC;IACD,GAAG,CAAC,KAAa;QACb,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC,gBAAgB,KAAK,kBAAkB,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,GAAG,CAAC,KAAa;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QAC7B,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;YAC3B,6DAA6D;YAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ"}
@@ -1,4 +1,45 @@
1
1
  import { compressToBuffer, decompressFromBuffer } from "../compression/compress";
2
+ import { compressBound } from "../compression/lz4";
3
+ // https://docs.nvidia.com/learn-openusd/latest/stage-setting/index.html
4
+ // stage, layer
5
+ // the tree of nodes contains prim and attribute
6
+ // nodes have fields: fieldset, field
7
+ // stage.DefinePrim(path, prim_type)
8
+ // UsdGeom.Xform.Define(stage, path)
9
+ // prim.GetChildren()
10
+ // prim.GetTypeName()
11
+ // prim.GetProperties()
12
+ // stage: Usd.Stage = Usd.Stage.CreateNew("_assets/prims.usda")
13
+ // # Define a new primitive at the path "/hello" on the current stage:
14
+ // stage.definePrim("/hello")
15
+ // # Define a new primitive at the path "/world" on the current stage with the prim type, Sphere.
16
+ // stage.definePrim("/world", "Sphere")
17
+ // stage.save()
18
+ // #usda 1.0
19
+ // def "hello"
20
+ // {
21
+ // }
22
+ // def Sphere "world"
23
+ // {
24
+ // }
25
+ // from pxr import Usd, UsdGeom
26
+ // file_path = "_assets/sphere_prim.usda"
27
+ // stage: Usd.Stage = Usd.Stage.CreateNew(file_path)
28
+ // # Define a prim of type `Sphere` at path `/hello`:
29
+ // sphere: UsdGeom.Sphere = UsdGeom.Sphere.Define(stage, "/hello")
30
+ // sphere.CreateRadiusAttr().Set(2)
31
+ // # Save the stage:
32
+ // stage.Save()
33
+ // #usda 1.0
34
+ // def Sphere "hello"
35
+ // {
36
+ // double radius = 2
37
+ // }
38
+ // blender/source/blender/io/usd/intern/usd_capi_export.cc:
39
+ // pxr::UsdStageRefPtr usd_stage = pxr::UsdStage::CreateNew(filepath);
40
+ // both of the following end up as fields...
41
+ // usd_stage->SetMetadata(pxr::UsdGeomTokens->metersPerUnit, double(scene->unit.scale_length));
42
+ // usd_stage->GetRootLayer()->SetDocumentation(std::string("Blender v") + BKE_blender_version_string());
2
43
  export class Tokens {
3
44
  constructor(reader) {
4
45
  this.tokens = [];
@@ -6,6 +47,10 @@ export class Tokens {
6
47
  const numTokens = reader.getUint64();
7
48
  const uncompressedSize = reader.getUint64();
8
49
  const compressedSize = reader.getUint64();
50
+ // console.log(`TOKENS: numTokens = ${numTokens}, uncompressedSize = ${uncompressedSize}, compressedSize = ${compressedSize}`)
51
+ // if (compressedSize > section.size - 24) {
52
+ // throw Error(`TOKENS section: compressed size exceeds section`)
53
+ // }
9
54
  const compressed = new Uint8Array(reader._dataview.buffer, reader.offset, compressedSize);
10
55
  const uncompressed = new Uint8Array(uncompressedSize);
11
56
  const n = decompressFromBuffer(compressed, uncompressed);
@@ -21,6 +66,7 @@ export class Tokens {
21
66
  if (tokenIndex >= numTokens) {
22
67
  throw Error(`too many tokens`);
23
68
  }
69
+ // console.log(`TOKEN ${tokenIndex} = '${name}'`)
24
70
  this.tokens[tokenIndex] = name;
25
71
  ++tokenIndex;
26
72
  name = "";
@@ -58,7 +104,7 @@ export class Tokens {
58
104
  uncompressedSize += token.length + 1;
59
105
  }
60
106
  const src = new Uint8Array(uncompressedSize);
61
- const dst = new Uint8Array(uncompressedSize + 32);
107
+ const dst = new Uint8Array(compressBound(uncompressedSize) + 1);
62
108
  let offset = 0;
63
109
  for (const token of this.tokens) {
64
110
  for (let i = 0; i < token.length; ++i) {
@@ -1 +1 @@
1
- {"version":3,"file":"Tokens.js","sourceRoot":"","sources":["../../src/crate/Tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tokens.js","sourceRoot":"","sources":["../../src/crate/Tokens.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { CrateDataType } from "./CrateDataType";
2
2
  import type { Crate } from "./Crate";
3
- import { UsdNode } from "./UsdNode.js";
3
+ import { UsdNode } from "../nodes/usd/UsdNode.js";
4
4
  export declare const kMinCompressedArraySize = 16;
5
5
  export declare class ValueRep {
6
6
  private _buffer;
@@ -1,11 +1,20 @@
1
+ // 8 octets
2
+ // Value in file representation. Consists of a 2 bytes of type information
3
+ // (type enum value, array bit, and inlined-value bit) and 6 bytes of data.
4
+ // If possible, we attempt to store certain values directly in the local
5
+ // data, such as ints, floats, enums, and special-case values of other types
6
+ // (zero vectors, identity matrices, etc). For values that aren't stored
7
+ // inline, the 6 data bytes are the offset from the start of the file to the
1
8
  import { hexdump } from "../detail/hexdump";
2
9
  import { decodeIntegers } from "../compression/integers";
3
10
  import { CrateDataType, ListOpHeader } from "./CrateDataType";
4
11
  import { Specifier } from "./Specifier";
5
- import { UsdNode } from "./UsdNode.js";
12
+ import { UsdNode } from "../nodes/usd/UsdNode.js";
6
13
  import { Variability } from "./Variability.js";
7
14
  import { decompressFromBuffer } from "../compression/compress";
8
15
  export const kMinCompressedArraySize = 16;
16
+ // value's location.
17
+ // FIXME: last two bytes are type info
9
18
  export class ValueRep {
10
19
  constructor(buffer, offset) {
11
20
  this._buffer = buffer;
@@ -29,13 +38,18 @@ export class ValueRep {
29
38
  value: v
30
39
  };
31
40
  }
41
+ // NOTE: tinyusdz has most of it's unpack code in bool CrateReader::UnpackValueRep(const crate::ValueRep &rep, crate::CrateValue *value)
32
42
  getValue(crate) {
33
43
  const reader = crate.reader;
44
+ // if (reader === undefined) {
45
+ // console.log('ValueRep.getValue(): create.reader === undefined')
46
+ // }
34
47
  switch (this.getType()) {
35
48
  case CrateDataType.Bool:
36
49
  if (this.isInlined() && !this.isArray() && !this.isCompressed()) {
37
50
  return this.getBool();
38
51
  }
52
+ // ValueRep.getValue(): for default not implemented yet: type: Bool, array: true, inline: false, compressed: true
39
53
  break;
40
54
  case CrateDataType.Float:
41
55
  if (this.isInlined() && !this.isArray() && !this.isCompressed()) {
@@ -244,12 +258,15 @@ export class ValueRep {
244
258
  if (!this.isArray() && !this.isInlined() && !this.isCompressed()) {
245
259
  reader.offset = this.getIndex();
246
260
  const sz = reader.getUint64();
261
+ // console.log(`decode dict at ${this._offset} of size ${sz}, offset ${reader.offset.toString(16).padStart(4, '0')}`)
247
262
  const result = {};
248
263
  for (let i = 0; i < sz; ++i) {
249
264
  const key = crate.strings.get(reader.getUint32());
250
265
  const offset = reader.getUint64();
251
266
  const value = new ValueRep(reader._dataview, reader.offset + offset - 8);
252
267
  result[key] = value.getValue(crate);
268
+ // console.log(`dict[${key}] = ${result[key]}`)
269
+ // console.log(value.getType())
253
270
  }
254
271
  return result;
255
272
  }
@@ -292,14 +309,18 @@ export class ValueRep {
292
309
  }
293
310
  break;
294
311
  case CrateDataType.PathListOp:
312
+ // TODO: type might be number, string or UsdNode
295
313
  if (!this.isArray() && !this.isInlined() && !this.isCompressed()) {
296
314
  reader.offset = this.getIndex();
297
315
  const hdr = new ListOpHeader(reader);
316
+ // console.log(`ValueRep(): read PathListOp @ ${reader.offset}, ${hdr}`)
298
317
  const read = () => {
299
318
  const n = reader.getUint64();
319
+ // console.log(` n = ${n}`)
300
320
  const arr = new Array(n);
301
321
  for (let i = 0; i < n; ++i) {
302
322
  arr[i] = crate.paths._nodes[reader.getUint32()].getFullPathName();
323
+ // console.log(` arr[${i}] = %o`, arr[i])
303
324
  }
304
325
  return arr;
305
326
  };
@@ -332,6 +353,7 @@ export class ValueRep {
332
353
  return undefined;
333
354
  }
334
355
  getType() {
356
+ // console.log(`getType @ offset = ${this._offset}`)
335
357
  return this._buffer.getUint8(this._offset + 6);
336
358
  }
337
359
  isArray() { return (this._buffer.getUint8(this._offset + 7) & 128) !== 0; }
@@ -342,10 +364,11 @@ export class ValueRep {
342
364
  }
343
365
  getPayload() {
344
366
  const d = new DataView(this._buffer.buffer, this._buffer.byteOffset);
345
- const value = d.getBigUint64(this._offset, true);
367
+ const value = d.getBigUint64(this._offset, true); // & 0xffffffffffffn
346
368
  console.log(`value rep @ ${this._offset} = ${value}`);
347
369
  return value;
348
370
  }
371
+ // TODO: rename the following to inline? or merge them with the general ones
349
372
  getBool() {
350
373
  return this._buffer.getUint8(this._offset) !== 0;
351
374
  }
@@ -356,8 +379,9 @@ export class ValueRep {
356
379
  return this._buffer.getFloat32(this._offset, true);
357
380
  }
358
381
  getDouble() {
359
- return this._buffer.getFloat32(this._offset, true);
382
+ return this._buffer.getFloat32(this._offset, true); // FIXME: Float64 from 6 octets???
360
383
  }
384
+ // TODO: signed or unsigned?
361
385
  getVec3f() {
362
386
  return [this._buffer.getInt8(this._offset), this._buffer.getInt8(this._offset + 1), this._buffer.getInt8(this._offset + 2)];
363
387
  }