@markandre13/usd.js 0.0.1

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 (239) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +5 -0
  3. package/dist/compression/compress.d.ts +7 -0
  4. package/dist/compression/compress.d.ts.map +1 -0
  5. package/dist/compression/compress.js +28 -0
  6. package/dist/compression/compress.js.map +1 -0
  7. package/dist/compression/integers.d.ts +3 -0
  8. package/dist/compression/integers.d.ts.map +1 -0
  9. package/dist/compression/integers.js +159 -0
  10. package/dist/compression/integers.js.map +1 -0
  11. package/dist/compression/lz4.d.ts +4 -0
  12. package/dist/compression/lz4.d.ts.map +1 -0
  13. package/dist/compression/lz4.js +163 -0
  14. package/dist/compression/lz4.js.map +1 -0
  15. package/dist/crate/BootStrap.d.ts +17 -0
  16. package/dist/crate/BootStrap.d.ts.map +1 -0
  17. package/dist/crate/BootStrap.js +47 -0
  18. package/dist/crate/BootStrap.js.map +1 -0
  19. package/dist/crate/Crate.d.ts +30 -0
  20. package/dist/crate/Crate.d.ts.map +1 -0
  21. package/dist/crate/Crate.js +203 -0
  22. package/dist/crate/Crate.js.map +1 -0
  23. package/dist/crate/CrateDataType.d.ts +78 -0
  24. package/dist/crate/CrateDataType.d.ts.map +1 -0
  25. package/dist/crate/CrateDataType.js +119 -0
  26. package/dist/crate/CrateDataType.js.map +1 -0
  27. package/dist/crate/Field.d.ts +9 -0
  28. package/dist/crate/Field.d.ts.map +1 -0
  29. package/dist/crate/Field.js +12 -0
  30. package/dist/crate/Field.js.map +1 -0
  31. package/dist/crate/FieldSets.d.ts +8 -0
  32. package/dist/crate/FieldSets.d.ts.map +1 -0
  33. package/dist/crate/FieldSets.js +16 -0
  34. package/dist/crate/FieldSets.js.map +1 -0
  35. package/dist/crate/Fields.d.ts +61 -0
  36. package/dist/crate/Fields.d.ts.map +1 -0
  37. package/dist/crate/Fields.js +416 -0
  38. package/dist/crate/Fields.js.map +1 -0
  39. package/dist/crate/Paths.d.ts +19 -0
  40. package/dist/crate/Paths.d.ts.map +1 -0
  41. package/dist/crate/Paths.js +47 -0
  42. package/dist/crate/Paths.js.map +1 -0
  43. package/dist/crate/Reader.d.ts +18 -0
  44. package/dist/crate/Reader.d.ts.map +1 -0
  45. package/dist/crate/Reader.js +86 -0
  46. package/dist/crate/Reader.js.map +1 -0
  47. package/dist/crate/Section.d.ts +16 -0
  48. package/dist/crate/Section.d.ts.map +1 -0
  49. package/dist/crate/Section.js +24 -0
  50. package/dist/crate/Section.js.map +1 -0
  51. package/dist/crate/SectionName.d.ts +9 -0
  52. package/dist/crate/SectionName.d.ts.map +1 -0
  53. package/dist/crate/SectionName.js +10 -0
  54. package/dist/crate/SectionName.js.map +1 -0
  55. package/dist/crate/SpecType.d.ts +17 -0
  56. package/dist/crate/SpecType.d.ts.map +1 -0
  57. package/dist/crate/SpecType.js +29 -0
  58. package/dist/crate/SpecType.js.map +1 -0
  59. package/dist/crate/Specifier.d.ts +7 -0
  60. package/dist/crate/Specifier.d.ts.map +1 -0
  61. package/dist/crate/Specifier.js +8 -0
  62. package/dist/crate/Specifier.js.map +1 -0
  63. package/dist/crate/Specs.d.ts +11 -0
  64. package/dist/crate/Specs.d.ts.map +1 -0
  65. package/dist/crate/Specs.js +29 -0
  66. package/dist/crate/Specs.js.map +1 -0
  67. package/dist/crate/Stage.d.ts +8 -0
  68. package/dist/crate/Stage.d.ts.map +1 -0
  69. package/dist/crate/Stage.js +35 -0
  70. package/dist/crate/Stage.js.map +1 -0
  71. package/dist/crate/Strings.d.ts +14 -0
  72. package/dist/crate/Strings.d.ts.map +1 -0
  73. package/dist/crate/Strings.js +45 -0
  74. package/dist/crate/Strings.js.map +1 -0
  75. package/dist/crate/TableOfContents.d.ts +13 -0
  76. package/dist/crate/TableOfContents.d.ts.map +1 -0
  77. package/dist/crate/TableOfContents.js +32 -0
  78. package/dist/crate/TableOfContents.js.map +1 -0
  79. package/dist/crate/Tokens.d.ts +11 -0
  80. package/dist/crate/Tokens.d.ts.map +1 -0
  81. package/dist/crate/Tokens.js +78 -0
  82. package/dist/crate/Tokens.js.map +1 -0
  83. package/dist/crate/UsdNode.d.ts +64 -0
  84. package/dist/crate/UsdNode.d.ts.map +1 -0
  85. package/dist/crate/UsdNode.js +283 -0
  86. package/dist/crate/UsdNode.js.map +1 -0
  87. package/dist/crate/ValueRep.d.ts +31 -0
  88. package/dist/crate/ValueRep.d.ts.map +1 -0
  89. package/dist/crate/ValueRep.js +379 -0
  90. package/dist/crate/ValueRep.js.map +1 -0
  91. package/dist/crate/Variability.d.ts +7 -0
  92. package/dist/crate/Variability.d.ts.map +1 -0
  93. package/dist/crate/Variability.js +8 -0
  94. package/dist/crate/Variability.js.map +1 -0
  95. package/dist/crate/Writer.d.ts +56 -0
  96. package/dist/crate/Writer.d.ts.map +1 -0
  97. package/dist/crate/Writer.js +214 -0
  98. package/dist/crate/Writer.js.map +1 -0
  99. package/dist/detail/hexdump.d.ts +3 -0
  100. package/dist/detail/hexdump.d.ts.map +1 -0
  101. package/dist/detail/hexdump.js +41 -0
  102. package/dist/detail/hexdump.js.map +1 -0
  103. package/dist/nodes/attributes/AssetPathAttr.d.ts +7 -0
  104. package/dist/nodes/attributes/AssetPathAttr.d.ts.map +1 -0
  105. package/dist/nodes/attributes/AssetPathAttr.js +17 -0
  106. package/dist/nodes/attributes/AssetPathAttr.js.map +1 -0
  107. package/dist/nodes/attributes/Attribute.d.ts +7 -0
  108. package/dist/nodes/attributes/Attribute.d.ts.map +1 -0
  109. package/dist/nodes/attributes/Attribute.js +15 -0
  110. package/dist/nodes/attributes/Attribute.js.map +1 -0
  111. package/dist/nodes/attributes/BooleanAttr.d.ts +13 -0
  112. package/dist/nodes/attributes/BooleanAttr.d.ts.map +1 -0
  113. package/dist/nodes/attributes/BooleanAttr.js +22 -0
  114. package/dist/nodes/attributes/BooleanAttr.js.map +1 -0
  115. package/dist/nodes/attributes/Color3fAttr.d.ts +7 -0
  116. package/dist/nodes/attributes/Color3fAttr.d.ts.map +1 -0
  117. package/dist/nodes/attributes/Color3fAttr.js +17 -0
  118. package/dist/nodes/attributes/Color3fAttr.js.map +1 -0
  119. package/dist/nodes/attributes/FloatAttr.d.ts +7 -0
  120. package/dist/nodes/attributes/FloatAttr.d.ts.map +1 -0
  121. package/dist/nodes/attributes/FloatAttr.js +17 -0
  122. package/dist/nodes/attributes/FloatAttr.js.map +1 -0
  123. package/dist/nodes/attributes/IntArrayAttr.d.ts +7 -0
  124. package/dist/nodes/attributes/IntArrayAttr.d.ts.map +1 -0
  125. package/dist/nodes/attributes/IntArrayAttr.js +17 -0
  126. package/dist/nodes/attributes/IntArrayAttr.js.map +1 -0
  127. package/dist/nodes/attributes/Relationship.d.ts +8 -0
  128. package/dist/nodes/attributes/Relationship.d.ts.map +1 -0
  129. package/dist/nodes/attributes/Relationship.js +18 -0
  130. package/dist/nodes/attributes/Relationship.js.map +1 -0
  131. package/dist/nodes/attributes/StringAttr.d.ts +10 -0
  132. package/dist/nodes/attributes/StringAttr.d.ts.map +1 -0
  133. package/dist/nodes/attributes/StringAttr.js +19 -0
  134. package/dist/nodes/attributes/StringAttr.js.map +1 -0
  135. package/dist/nodes/attributes/TokenAttr.d.ts +9 -0
  136. package/dist/nodes/attributes/TokenAttr.d.ts.map +1 -0
  137. package/dist/nodes/attributes/TokenAttr.js +24 -0
  138. package/dist/nodes/attributes/TokenAttr.js.map +1 -0
  139. package/dist/nodes/attributes/VariabilityAttr.d.ts +9 -0
  140. package/dist/nodes/attributes/VariabilityAttr.d.ts.map +1 -0
  141. package/dist/nodes/attributes/VariabilityAttr.js +20 -0
  142. package/dist/nodes/attributes/VariabilityAttr.js.map +1 -0
  143. package/dist/nodes/attributes/Vec2fArrayAttr.d.ts +10 -0
  144. package/dist/nodes/attributes/Vec2fArrayAttr.d.ts.map +1 -0
  145. package/dist/nodes/attributes/Vec2fArrayAttr.js +23 -0
  146. package/dist/nodes/attributes/Vec2fArrayAttr.js.map +1 -0
  147. package/dist/nodes/attributes/Vec3fArrayAttr.d.ts +9 -0
  148. package/dist/nodes/attributes/Vec3fArrayAttr.d.ts.map +1 -0
  149. package/dist/nodes/attributes/Vec3fArrayAttr.js +23 -0
  150. package/dist/nodes/attributes/Vec3fArrayAttr.js.map +1 -0
  151. package/dist/nodes/geometry/Boundable.d.ts +5 -0
  152. package/dist/nodes/geometry/Boundable.d.ts.map +1 -0
  153. package/dist/nodes/geometry/Boundable.js +11 -0
  154. package/dist/nodes/geometry/Boundable.js.map +1 -0
  155. package/dist/nodes/geometry/Camera.d.ts +12 -0
  156. package/dist/nodes/geometry/Camera.d.ts.map +1 -0
  157. package/dist/nodes/geometry/Camera.js +55 -0
  158. package/dist/nodes/geometry/Camera.js.map +1 -0
  159. package/dist/nodes/geometry/GeomSubset.d.ts +6 -0
  160. package/dist/nodes/geometry/GeomSubset.d.ts.map +1 -0
  161. package/dist/nodes/geometry/GeomSubset.js +19 -0
  162. package/dist/nodes/geometry/GeomSubset.js.map +1 -0
  163. package/dist/nodes/geometry/Gprim.d.ts +5 -0
  164. package/dist/nodes/geometry/Gprim.d.ts.map +1 -0
  165. package/dist/nodes/geometry/Gprim.js +12 -0
  166. package/dist/nodes/geometry/Gprim.js.map +1 -0
  167. package/dist/nodes/geometry/Imageable.d.ts +4 -0
  168. package/dist/nodes/geometry/Imageable.d.ts.map +1 -0
  169. package/dist/nodes/geometry/Imageable.js +4 -0
  170. package/dist/nodes/geometry/Imageable.js.map +1 -0
  171. package/dist/nodes/geometry/Mesh.d.ts +26 -0
  172. package/dist/nodes/geometry/Mesh.d.ts.map +1 -0
  173. package/dist/nodes/geometry/Mesh.js +110 -0
  174. package/dist/nodes/geometry/Mesh.js.map +1 -0
  175. package/dist/nodes/geometry/PointBased.d.ts +13 -0
  176. package/dist/nodes/geometry/PointBased.d.ts.map +1 -0
  177. package/dist/nodes/geometry/PointBased.js +36 -0
  178. package/dist/nodes/geometry/PointBased.js.map +1 -0
  179. package/dist/nodes/geometry/Scope.d.ts +6 -0
  180. package/dist/nodes/geometry/Scope.d.ts.map +1 -0
  181. package/dist/nodes/geometry/Scope.js +12 -0
  182. package/dist/nodes/geometry/Scope.js.map +1 -0
  183. package/dist/nodes/geometry/Xform.d.ts +6 -0
  184. package/dist/nodes/geometry/Xform.d.ts.map +1 -0
  185. package/dist/nodes/geometry/Xform.js +12 -0
  186. package/dist/nodes/geometry/Xform.js.map +1 -0
  187. package/dist/nodes/geometry/Xformable.d.ts +11 -0
  188. package/dist/nodes/geometry/Xformable.d.ts.map +1 -0
  189. package/dist/nodes/geometry/Xformable.js +46 -0
  190. package/dist/nodes/geometry/Xformable.js.map +1 -0
  191. package/dist/nodes/lux/BoundableLightBase.d.ts +8 -0
  192. package/dist/nodes/lux/BoundableLightBase.d.ts.map +1 -0
  193. package/dist/nodes/lux/BoundableLightBase.js +39 -0
  194. package/dist/nodes/lux/BoundableLightBase.js.map +1 -0
  195. package/dist/nodes/lux/DomeLight.d.ts +8 -0
  196. package/dist/nodes/lux/DomeLight.d.ts.map +1 -0
  197. package/dist/nodes/lux/DomeLight.js +23 -0
  198. package/dist/nodes/lux/DomeLight.js.map +1 -0
  199. package/dist/nodes/lux/NonboundableLightBase.d.ts +6 -0
  200. package/dist/nodes/lux/NonboundableLightBase.d.ts.map +1 -0
  201. package/dist/nodes/lux/NonboundableLightBase.js +23 -0
  202. package/dist/nodes/lux/NonboundableLightBase.js.map +1 -0
  203. package/dist/nodes/lux/SphereLight.d.ts +7 -0
  204. package/dist/nodes/lux/SphereLight.d.ts.map +1 -0
  205. package/dist/nodes/lux/SphereLight.js +22 -0
  206. package/dist/nodes/lux/SphereLight.js.map +1 -0
  207. package/dist/nodes/shader/Material.d.ts +7 -0
  208. package/dist/nodes/shader/Material.d.ts.map +1 -0
  209. package/dist/nodes/shader/Material.js +19 -0
  210. package/dist/nodes/shader/Material.js.map +1 -0
  211. package/dist/nodes/shader/NodeGraph.d.ts +4 -0
  212. package/dist/nodes/shader/NodeGraph.d.ts.map +1 -0
  213. package/dist/nodes/shader/NodeGraph.js +4 -0
  214. package/dist/nodes/shader/NodeGraph.js.map +1 -0
  215. package/dist/nodes/shader/Shader.d.ts +7 -0
  216. package/dist/nodes/shader/Shader.d.ts.map +1 -0
  217. package/dist/nodes/shader/Shader.js +19 -0
  218. package/dist/nodes/shader/Shader.js.map +1 -0
  219. package/dist/nodes/skeleton/SkelRoot.d.ts +6 -0
  220. package/dist/nodes/skeleton/SkelRoot.d.ts.map +1 -0
  221. package/dist/nodes/skeleton/SkelRoot.js +12 -0
  222. package/dist/nodes/skeleton/SkelRoot.js.map +1 -0
  223. package/dist/nodes/skeleton/Skeleton.d.ts +12 -0
  224. package/dist/nodes/skeleton/Skeleton.d.ts.map +1 -0
  225. package/dist/nodes/skeleton/Skeleton.js +68 -0
  226. package/dist/nodes/skeleton/Skeleton.js.map +1 -0
  227. package/dist/nodes/usd/PseudoRoot.d.ts +11 -0
  228. package/dist/nodes/usd/PseudoRoot.d.ts.map +1 -0
  229. package/dist/nodes/usd/PseudoRoot.js +20 -0
  230. package/dist/nodes/usd/PseudoRoot.js.map +1 -0
  231. package/dist/nodes/usd/SchemaBase.d.ts +4 -0
  232. package/dist/nodes/usd/SchemaBase.d.ts.map +1 -0
  233. package/dist/nodes/usd/SchemaBase.js +4 -0
  234. package/dist/nodes/usd/SchemaBase.js.map +1 -0
  235. package/dist/nodes/usd/Typed.d.ts +8 -0
  236. package/dist/nodes/usd/Typed.d.ts.map +1 -0
  237. package/dist/nodes/usd/Typed.js +11 -0
  238. package/dist/nodes/usd/Typed.js.map +1 -0
  239. package/package.json +39 -0
@@ -0,0 +1,28 @@
1
+ import { compressBlock, compressBound, decompressBlock } from "./lz4.js";
2
+ export function decompressFromBuffer(src, dst) {
3
+ const nChunks = src.at(0);
4
+ if (nChunks > 127) {
5
+ throw Error(`too many chunks`);
6
+ }
7
+ if (nChunks === 0) {
8
+ const n = decompressBlock(src, dst, 1, src.byteLength - 1, 0);
9
+ if (n < 0) {
10
+ throw Error("Failed to decompress data, possibly corrupt?");
11
+ }
12
+ return n;
13
+ }
14
+ throw Error("decompressFromBuffer(): chunks are not implemented yet");
15
+ }
16
+ export function compressToBuffer(src, dst) {
17
+ const LZ4_MAX_INPUT_SIZE = 0x7E000000;
18
+ if (src.length < LZ4_MAX_INPUT_SIZE) {
19
+ if (dst.length < compressBound(src.length) + 1) {
20
+ throw Error(`compressToBuffer(): dst has ${dst.length} octets but at least ${compressBound(src.length) + 1} are needed`);
21
+ }
22
+ const skipFirstByte = new Uint8Array(dst.buffer, 1, dst.buffer.maxByteLength - 1);
23
+ const n = compressBlock(src, skipFirstByte, 0, src.byteLength);
24
+ return n + 1;
25
+ }
26
+ throw Error("compressToBuffer(): chunks are not implemented yet");
27
+ }
28
+ //# sourceMappingURL=compress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../src/compression/compress.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQxE,MAAM,UAAU,oBAAoB,CAAC,GAAe,EAAE,GAAe;IACjE,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IAC1B,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACR,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IACD,MAAM,KAAK,CAAC,wDAAwD,CAAC,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAe,EAAE,GAAe;IAC7D,MAAM,kBAAkB,GAAG,UAAU,CAAA;IACrC,IAAI,GAAG,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,wBAAwB,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC5H,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,GAAC,CAAC,CAAC,CAAA;QAC/E,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,CAAA;IAChB,CAAC;IACD,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAA;AACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function encodeIntegers(input: ArrayLike<number>, output: DataView): number;
2
+ export declare function decodeIntegers(src: DataView, numInts: number): number[];
3
+ //# sourceMappingURL=integers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integers.d.ts","sourceRoot":"","sources":["../../src/compression/integers.ts"],"names":[],"mappings":"AAqDA,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,UA+DxE;AAwCD,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBvE"}
@@ -0,0 +1,159 @@
1
+ var Code;
2
+ (function (Code) {
3
+ Code[Code["Common"] = 0] = "Common";
4
+ Code[Code["Int8"] = 1] = "Int8";
5
+ Code[Code["Int16"] = 2] = "Int16";
6
+ Code[Code["Int32"] = 3] = "Int32";
7
+ })(Code || (Code = {}));
8
+ ;
9
+ function encodeNHelper(N, arg) {
10
+ const getCode = (x) => {
11
+ if (x === arg.commonValue) {
12
+ return Code.Common;
13
+ }
14
+ if (x >= -128 && x <= 127) {
15
+ return Code.Int8;
16
+ }
17
+ if (x >= -32768 && x <= 32767) {
18
+ return Code.Int16;
19
+ }
20
+ return Code.Int32;
21
+ };
22
+ let codeByte = 0;
23
+ for (let i = 0; i != N; ++i) {
24
+ let val = arg.input[arg.cur] - arg.prevVal;
25
+ arg.prevVal = arg.input[arg.cur++];
26
+ const code = getCode(val);
27
+ codeByte |= (code << (2 * i));
28
+ switch (code) {
29
+ default:
30
+ case Code.Common:
31
+ break;
32
+ case Code.Int8:
33
+ arg.output.setInt8(arg.vintsOut, val);
34
+ arg.vintsOut += 1;
35
+ break;
36
+ case Code.Int16:
37
+ arg.output.setInt16(arg.vintsOut, val, true);
38
+ arg.vintsOut += 2;
39
+ break;
40
+ case Code.Int32:
41
+ arg.output.setInt32(arg.vintsOut, val, true);
42
+ arg.vintsOut += 4;
43
+ break;
44
+ }
45
+ ;
46
+ }
47
+ arg.output.setUint8(arg.codesOut, codeByte);
48
+ ++arg.codesOut;
49
+ }
50
+ export function encodeIntegers(input, output) {
51
+ if (input.length === 0) {
52
+ return 0;
53
+ }
54
+ let commonValue = 0;
55
+ {
56
+ let commonCount = 0;
57
+ const counts = new Map();
58
+ let prevVal = 0;
59
+ for (let cur = 0; cur < input.length; ++cur) {
60
+ let val = input[cur] - prevVal;
61
+ let count = counts.get(val);
62
+ if (count === undefined) {
63
+ count = 1;
64
+ }
65
+ else {
66
+ ++count;
67
+ }
68
+ counts.set(val, count);
69
+ if (count > commonCount) {
70
+ commonValue = val;
71
+ commonCount = count;
72
+ }
73
+ else if (count == commonCount && val > commonValue) {
74
+ commonValue = val;
75
+ }
76
+ prevVal = input[cur];
77
+ }
78
+ }
79
+ output.setInt32(0, commonValue, true);
80
+ let numInts = input.length;
81
+ const arg = {
82
+ input,
83
+ output,
84
+ cur: 0,
85
+ commonValue,
86
+ prevVal: 0,
87
+ codesOut: 4,
88
+ vintsOut: Math.floor(4 + (input.length * 2 + 7) / 8)
89
+ };
90
+ while (numInts >= 4) {
91
+ encodeNHelper(4, arg);
92
+ numInts -= 4;
93
+ }
94
+ switch (numInts) {
95
+ case 0:
96
+ default: break;
97
+ case 1:
98
+ encodeNHelper(1, arg);
99
+ break;
100
+ case 2:
101
+ encodeNHelper(2, arg);
102
+ break;
103
+ case 3:
104
+ encodeNHelper(3, arg);
105
+ break;
106
+ }
107
+ ;
108
+ return arg.vintsOut;
109
+ }
110
+ function decodeNHelper(N, arg) {
111
+ const codeByte = arg.src.getUint8(arg.codesIn++);
112
+ for (let i = 0; i != N; ++i) {
113
+ const x = (codeByte & (3 << (2 * i))) >> (2 * i);
114
+ switch (x) {
115
+ default:
116
+ case Code.Common:
117
+ arg.prevVal += arg.commonValue;
118
+ break;
119
+ case Code.Int8:
120
+ arg.prevVal += arg.src.getInt8(arg.vintsIn);
121
+ arg.vintsIn += 1;
122
+ break;
123
+ case Code.Int16:
124
+ arg.prevVal += arg.src.getInt16(arg.vintsIn, true);
125
+ arg.vintsIn += 2;
126
+ break;
127
+ case Code.Int32:
128
+ arg.prevVal += arg.src.getInt32(arg.vintsIn, true);
129
+ arg.vintsIn += 4;
130
+ break;
131
+ }
132
+ arg.prevVal &= 0xffffffff;
133
+ arg.result[arg.output++] = arg.prevVal;
134
+ }
135
+ }
136
+ export function decodeIntegers(src, numInts) {
137
+ const commonValue = src.getInt32(0, true);
138
+ const numCodesBytes = Math.floor((numInts * 2 + 7) / 8);
139
+ let prevVal = 0;
140
+ let intsLeft = numInts;
141
+ const arg = {
142
+ src,
143
+ result: new Array(numInts),
144
+ output: 0,
145
+ codesIn: 4,
146
+ vintsIn: 4 + numCodesBytes,
147
+ commonValue,
148
+ prevVal
149
+ };
150
+ while (intsLeft >= 4) {
151
+ decodeNHelper(4, arg);
152
+ intsLeft -= 4;
153
+ }
154
+ if (intsLeft > 0) {
155
+ decodeNHelper(intsLeft, arg);
156
+ }
157
+ return arg.result;
158
+ }
159
+ //# sourceMappingURL=integers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integers.js","sourceRoot":"","sources":["../../src/compression/integers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function decompressBlock(src: Uint8Array, dst: Uint8Array, sIndex: number, sLength: number, dIndex: number): number;
2
+ export declare function compressBound(n: number): number;
3
+ export declare function compressBlock(src: Uint8Array, dst: Uint8Array, sIndex: number, sLength: number): number;
4
+ //# sourceMappingURL=lz4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lz4.d.ts","sourceRoot":"","sources":["../../src/compression/lz4.ts"],"names":[],"mappings":"AAgDA,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UA+EhH;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,UAEtC;AAWD,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UA8H9F"}
@@ -0,0 +1,163 @@
1
+ const LZ4_MIN_MATCH = 4;
2
+ const LZ4_MIN_LENGTH = 13;
3
+ const LZ4_SEARCH_LIMIT = 5;
4
+ const LZ4_SKIP_TRIGGER = 6;
5
+ const LZ4_HASH_TABLE_SIZE = 1 << 16;
6
+ const LZ4_ML_BITS = 4;
7
+ const LZ4_ML_MASK = (1 << LZ4_ML_BITS) - 1;
8
+ const LZ4_RUN_BITS = 4;
9
+ const LZ4_RUN_MASK = (1 << LZ4_RUN_BITS) - 1;
10
+ const hashTable = new Uint32Array(LZ4_HASH_TABLE_SIZE);
11
+ const util = {
12
+ hashU32: function hashU32(a) {
13
+ a = a | 0;
14
+ a = a + 2127912214 + (a << 12) | 0;
15
+ a = a ^ -949894596 ^ a >>> 19;
16
+ a = a + 374761393 + (a << 5) | 0;
17
+ a = a + -744332180 ^ a << 9;
18
+ a = a + -42973499 + (a << 3) | 0;
19
+ return a ^ -1252372727 ^ a >>> 16 | 0;
20
+ },
21
+ readU32: function readU32(b, n) {
22
+ let x = b[n++] << 0;
23
+ x |= b[n++] << 8;
24
+ x |= b[n++] << 16;
25
+ x |= b[n++] << 24;
26
+ return x;
27
+ }
28
+ };
29
+ export function decompressBlock(src, dst, sIndex, sLength, dIndex) {
30
+ let mLength, mOffset, sEnd, n, i;
31
+ sEnd = sIndex + sLength;
32
+ while (sIndex < sEnd) {
33
+ var token = src[sIndex++];
34
+ var literalCount = (token >> 4);
35
+ if (literalCount > 0) {
36
+ if (literalCount === 0xf) {
37
+ while (true) {
38
+ literalCount += src[sIndex];
39
+ if (src[sIndex++] !== 0xff) {
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ for (n = sIndex + literalCount; sIndex < n;) {
45
+ dst[dIndex++] = src[sIndex++];
46
+ }
47
+ }
48
+ {
49
+ const ip = sIndex - literalCount;
50
+ const op = dIndex - literalCount;
51
+ const length = literalCount;
52
+ const cpy = op + length;
53
+ const oend = dst.buffer.byteLength;
54
+ const iend = sEnd;
55
+ const MFLIMIT = 12;
56
+ const LASTLITERALS = 5;
57
+ if ((cpy > oend - MFLIMIT) || (ip + length > iend - (2 + 1 + LASTLITERALS))) {
58
+ if ((ip + length != iend) || (cpy > oend)) {
59
+ return -ip - 1;
60
+ }
61
+ }
62
+ }
63
+ if (sIndex >= sEnd) {
64
+ break;
65
+ }
66
+ mLength = (token & 0xf);
67
+ mOffset = src[sIndex++] | (src[sIndex++] << 8);
68
+ if (mLength === 0xf) {
69
+ while (true) {
70
+ mLength += src[sIndex];
71
+ if (src[sIndex++] !== 0xff) {
72
+ break;
73
+ }
74
+ }
75
+ }
76
+ mLength += LZ4_MIN_MATCH;
77
+ for (i = dIndex - mOffset, n = i + mLength; i < n;) {
78
+ dst[dIndex++] = dst[i++] | 0;
79
+ }
80
+ }
81
+ return dIndex;
82
+ }
83
+ ;
84
+ export function compressBound(n) {
85
+ return (n + (n / 255) + 16) | 0;
86
+ }
87
+ ;
88
+ export function compressBlock(src, dst, sIndex, sLength) {
89
+ var mIndex, mAnchor, mLength, mOffset;
90
+ var literalCount, dIndex, sEnd, n;
91
+ dIndex = 0;
92
+ sEnd = sLength + sIndex;
93
+ mAnchor = sIndex;
94
+ if (sLength >= LZ4_MIN_LENGTH) {
95
+ hashTable.fill(0);
96
+ let searchMatchNb = (1 << LZ4_SKIP_TRIGGER) + 3;
97
+ while (sIndex + LZ4_MIN_MATCH < sEnd - LZ4_SEARCH_LIMIT - 2) {
98
+ var seq = util.readU32(src, sIndex);
99
+ var hash = util.hashU32(seq) >>> 0;
100
+ hash = ((hash >> 16) ^ hash) >>> 0 & 0xffff;
101
+ mIndex = hashTable[hash] - 1;
102
+ hashTable[hash] = sIndex + 1;
103
+ if (mIndex < 0
104
+ || ((sIndex - mIndex) >>> 16) > 0
105
+ || util.readU32(src, mIndex) !== seq) {
106
+ const mStep = searchMatchNb++ >> LZ4_SKIP_TRIGGER;
107
+ sIndex += mStep;
108
+ continue;
109
+ }
110
+ searchMatchNb = (1 << LZ4_SKIP_TRIGGER) + 3;
111
+ literalCount = sIndex - mAnchor;
112
+ mOffset = sIndex - mIndex;
113
+ sIndex += LZ4_MIN_MATCH;
114
+ mIndex += LZ4_MIN_MATCH;
115
+ mLength = sIndex;
116
+ while (sIndex < sEnd - LZ4_SEARCH_LIMIT && src[sIndex] === src[mIndex]) {
117
+ sIndex++;
118
+ mIndex++;
119
+ }
120
+ mLength = sIndex - mLength;
121
+ var literalsToFollow = mLength < LZ4_ML_MASK ? mLength : LZ4_ML_MASK;
122
+ if (literalCount >= LZ4_RUN_MASK) {
123
+ dst[dIndex++] = (LZ4_RUN_MASK << LZ4_ML_BITS) + literalsToFollow;
124
+ for (n = literalCount - LZ4_RUN_MASK; n >= 0xff; n -= 0xff) {
125
+ dst[dIndex++] = 0xff;
126
+ }
127
+ dst[dIndex++] = n;
128
+ }
129
+ else {
130
+ dst[dIndex++] = (literalCount << LZ4_ML_BITS) + literalsToFollow;
131
+ }
132
+ for (var i = 0; i < literalCount; i++) {
133
+ dst[dIndex++] = src[mAnchor + i];
134
+ }
135
+ dst[dIndex++] = mOffset;
136
+ dst[dIndex++] = (mOffset >> 8);
137
+ if (mLength >= LZ4_ML_MASK) {
138
+ for (n = mLength - LZ4_ML_MASK; n >= 0xff; n -= 0xff) {
139
+ dst[dIndex++] = 0xff;
140
+ }
141
+ dst[dIndex++] = n;
142
+ }
143
+ mAnchor = sIndex;
144
+ }
145
+ }
146
+ literalCount = sEnd - mAnchor;
147
+ if (literalCount >= LZ4_RUN_MASK) {
148
+ dst[dIndex++] = (LZ4_RUN_MASK << LZ4_ML_BITS);
149
+ for (n = literalCount - LZ4_RUN_MASK; n >= 0xff; n -= 0xff) {
150
+ dst[dIndex++] = 0xff;
151
+ }
152
+ dst[dIndex++] = n;
153
+ }
154
+ else {
155
+ dst[dIndex++] = (literalCount << LZ4_ML_BITS);
156
+ }
157
+ sIndex = mAnchor;
158
+ while (sIndex < sEnd) {
159
+ dst[dIndex++] = src[sIndex++];
160
+ }
161
+ return dIndex;
162
+ }
163
+ //# sourceMappingURL=lz4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lz4.js","sourceRoot":"","sources":["../../src/compression/lz4.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Reader } from "./Reader.js";
2
+ import type { Writer } from "./Writer.ts";
3
+ export declare class BootStrap {
4
+ indent: string;
5
+ version: {
6
+ major: number;
7
+ minor: number;
8
+ patch: number;
9
+ };
10
+ tocOffset: number;
11
+ private reader?;
12
+ constructor(reader?: Reader);
13
+ skip(writer: Writer): void;
14
+ serialize(writer: Writer): void;
15
+ seekTOC(): void;
16
+ }
17
+ //# sourceMappingURL=BootStrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BootStrap.d.ts","sourceRoot":"","sources":["../../src/crate/BootStrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,qBAAa,SAAS;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,MAAM,CAAC,EAAE,MAAM;IA0B3B,IAAI,CAAC,MAAM,EAAE,MAAM;IAGnB,SAAS,CAAC,MAAM,EAAE,MAAM;IASxB,OAAO;CAIV"}
@@ -0,0 +1,47 @@
1
+ import { Reader } from "./Reader.js";
2
+ export class BootStrap {
3
+ indent;
4
+ version;
5
+ tocOffset;
6
+ reader;
7
+ constructor(reader) {
8
+ if (reader !== undefined) {
9
+ this.reader = reader;
10
+ this.indent = reader.getString(8);
11
+ if (this.indent !== "PXR-USDC") {
12
+ throw Error("Not a Pixar Universal Screen Description Crate (USDC) file");
13
+ }
14
+ this.version = {
15
+ major: reader.getUint8(),
16
+ minor: reader.getUint8(),
17
+ patch: reader.getUint8()
18
+ };
19
+ reader.offset += 5;
20
+ this.tocOffset = reader.getUint64();
21
+ }
22
+ else {
23
+ this.indent = "PXR-USDC";
24
+ this.version = {
25
+ major: 0,
26
+ minor: 8,
27
+ patch: 0
28
+ };
29
+ this.tocOffset = 8 + 3 + 5 + 8;
30
+ }
31
+ }
32
+ skip(writer) {
33
+ writer.skip(24);
34
+ }
35
+ serialize(writer) {
36
+ writer.writeString(this.indent);
37
+ writer.writeUint8(this.version.major);
38
+ writer.writeUint8(this.version.minor);
39
+ writer.writeUint8(this.version.patch);
40
+ writer.writeString("\0\0\0\0\0");
41
+ writer.writeUint64(this.tocOffset);
42
+ }
43
+ seekTOC() {
44
+ this.reader.offset = this.tocOffset;
45
+ }
46
+ }
47
+ //# sourceMappingURL=BootStrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BootStrap.js","sourceRoot":"","sources":["../../src/crate/BootStrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,MAAM,OAAO,SAAS;IAClB,MAAM,CAAQ;IACd,OAAO,CAIN;IACD,SAAS,CAAQ;IACT,MAAM,CAAS;IAEvB,YAAY,MAAe;QACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAC7E,CAAC;YACD,IAAI,CAAC,OAAO,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACxB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACxB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC3B,CAAA;YACD,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;YAClB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;QAGvC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;YACxB,IAAI,CAAC,OAAO,GAAG;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACX,CAAA;YACD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAc;QACf,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC;IACD,SAAS,CAAC,MAAc;QACpB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAChC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,MAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAA;IACxC,CAAC;CAEJ"}
@@ -0,0 +1,30 @@
1
+ import { BootStrap } from "./BootStrap.ts";
2
+ import type { Reader } from "./Reader.ts";
3
+ import { TableOfContents } from "./TableOfContents.ts";
4
+ import { UsdNode } from "./UsdNode.ts";
5
+ import { Tokens } from "./Tokens.ts";
6
+ import { Fields } from "./Fields.ts";
7
+ import { Paths } from "./Paths.ts";
8
+ import { Specs } from "./Specs.ts";
9
+ import { FieldSets } from "./FieldSets.ts";
10
+ import { Strings } from "./Strings.ts";
11
+ import type { ValueRep } from "./ValueRep.ts";
12
+ import { Writer } from "./Writer.ts";
13
+ export declare class Crate {
14
+ bootstrap: BootStrap;
15
+ toc: TableOfContents;
16
+ tokens: Tokens;
17
+ strings: Strings;
18
+ fields: Fields;
19
+ fieldsets: FieldSets;
20
+ paths: Paths;
21
+ specs: Specs;
22
+ reader: Reader;
23
+ writer: Writer;
24
+ constructor(reader?: Reader);
25
+ serialize(root: UsdNode): void;
26
+ forEachField(fieldSetIndex: number, block: (name: string, value: ValueRep) => void): void;
27
+ private buildNodeTree;
28
+ print(): void;
29
+ }
30
+ //# sourceMappingURL=Crate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crate.d.ts","sourceRoot":"","sources":["../../src/crate/Crate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAA4F,KAAK,EAAE,MAAM,YAAY,CAAA;AAC5H,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAWpC,qBAAa,KAAK;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,eAAe,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IAEZ,MAAM,EAAG,MAAM,CAAA;IACf,MAAM,EAAG,MAAM,CAAA;gBAEH,MAAM,CAAC,EAAE,MAAM;IAyE3B,SAAS,CAAC,IAAI,EAAE,OAAO;IAkDvB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI;IASlF,OAAO,CAAC,aAAa;IAkErB,KAAK;CAkDR"}