@babylonjs/serializers 5.0.0-alpha.9 → 5.0.0-beta.4

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 (58) hide show
  1. package/OBJ/index.js +1 -1
  2. package/OBJ/objSerializer.js +19 -12
  3. package/OBJ/objSerializer.js.map +1 -1
  4. package/glTF/2.0/Extensions/KHR_lights_punctual.js +8 -8
  5. package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -1
  6. package/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +24 -0
  7. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +91 -0
  8. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -0
  9. package/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +6 -11
  10. package/glTF/2.0/Extensions/KHR_materials_sheen.js +13 -37
  11. package/glTF/2.0/Extensions/KHR_materials_sheen.js.map +1 -1
  12. package/glTF/2.0/Extensions/KHR_materials_unlit.js +3 -3
  13. package/glTF/2.0/Extensions/KHR_texture_transform.js +4 -4
  14. package/glTF/2.0/Extensions/index.d.ts +1 -0
  15. package/glTF/2.0/Extensions/index.js +5 -4
  16. package/glTF/2.0/Extensions/index.js.map +1 -1
  17. package/glTF/2.0/glTFAnimation.js +10 -9
  18. package/glTF/2.0/glTFAnimation.js.map +1 -1
  19. package/glTF/2.0/glTFData.js +1 -1
  20. package/glTF/2.0/glTFData.js.map +1 -1
  21. package/glTF/2.0/glTFExporter.d.ts +7 -0
  22. package/glTF/2.0/glTFExporter.js +133 -97
  23. package/glTF/2.0/glTFExporter.js.map +1 -1
  24. package/glTF/2.0/glTFExporterExtension.js.map +1 -1
  25. package/glTF/2.0/glTFMaterialExporter.d.ts +8 -6
  26. package/glTF/2.0/glTFMaterialExporter.js +67 -48
  27. package/glTF/2.0/glTFMaterialExporter.js.map +1 -1
  28. package/glTF/2.0/glTFSerializer.d.ts +4 -0
  29. package/glTF/2.0/glTFSerializer.js +1 -1
  30. package/glTF/2.0/glTFSerializer.js.map +1 -1
  31. package/glTF/2.0/glTFUtilities.d.ts +1 -2
  32. package/glTF/2.0/glTFUtilities.js +1 -5
  33. package/glTF/2.0/glTFUtilities.js.map +1 -1
  34. package/glTF/2.0/index.d.ts +1 -1
  35. package/glTF/2.0/index.js +8 -8
  36. package/glTF/2.0/index.js.map +1 -1
  37. package/glTF/2.0/shaders/textureTransform.fragment.js +3 -3
  38. package/glTF/2.0/shaders/textureTransform.fragment.js.map +1 -1
  39. package/glTF/index.d.ts +1 -1
  40. package/glTF/index.js +2 -2
  41. package/glTF/index.js.map +1 -1
  42. package/index.d.ts +3 -3
  43. package/index.js +3 -3
  44. package/index.js.map +1 -1
  45. package/legacy/legacy-glTF2Serializer.d.ts +1 -1
  46. package/legacy/legacy-glTF2Serializer.js +7 -7
  47. package/legacy/legacy-glTF2Serializer.js.map +1 -1
  48. package/legacy/legacy-objSerializer.d.ts +1 -1
  49. package/legacy/legacy-objSerializer.js +2 -2
  50. package/legacy/legacy-objSerializer.js.map +1 -1
  51. package/legacy/legacy-stlSerializer.d.ts +1 -1
  52. package/legacy/legacy-stlSerializer.js +2 -2
  53. package/legacy/legacy-stlSerializer.js.map +1 -1
  54. package/legacy/legacy.js +4 -4
  55. package/package.json +7 -4
  56. package/stl/index.js +1 -1
  57. package/stl/stlSerializer.js +2 -2
  58. package/stl/stlSerializer.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"glTFUtilities.js","sourceRoot":"","sources":["../../../../sourceES6/serializers/src/glTF/2.0/glTFUtilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { IBufferView, AccessorType, AccessorComponentType, IAccessor } from \"babylonjs-gltf2interface\";\r\n\r\nimport { FloatArray, Nullable } from \"@babylonjs/core/types\";\r\nimport { Vector3, Vector4, Quaternion, Matrix } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport class _GLTFUtilities {\r\n /**\r\n * Creates a buffer view based on the supplied arguments\r\n * @param bufferIndex index value of the specified buffer\r\n * @param byteOffset byte offset value\r\n * @param byteLength byte length of the bufferView\r\n * @param byteStride byte distance between conequential elements\r\n * @param name name of the buffer view\r\n * @returns bufferView for glTF\r\n */\r\n public static _CreateBufferView(bufferIndex: number, byteOffset: number, byteLength: number, byteStride?: number, name?: string): IBufferView {\r\n let bufferview: IBufferView = { buffer: bufferIndex, byteLength: byteLength };\r\n if (byteOffset) {\r\n bufferview.byteOffset = byteOffset;\r\n }\r\n if (name) {\r\n bufferview.name = name;\r\n }\r\n if (byteStride) {\r\n bufferview.byteStride = byteStride;\r\n }\r\n\r\n return bufferview;\r\n }\r\n\r\n /**\r\n * Creates an accessor based on the supplied arguments\r\n * @param bufferviewIndex The index of the bufferview referenced by this accessor\r\n * @param name The name of the accessor\r\n * @param type The type of the accessor\r\n * @param componentType The datatype of components in the attribute\r\n * @param count The number of attributes referenced by this accessor\r\n * @param byteOffset The offset relative to the start of the bufferView in bytes\r\n * @param min Minimum value of each component in this attribute\r\n * @param max Maximum value of each component in this attribute\r\n * @returns accessor for glTF\r\n */\r\n public static _CreateAccessor(bufferviewIndex: number, name: string, type: AccessorType, componentType: AccessorComponentType, count: number, byteOffset: Nullable<number>, min: Nullable<number[]>, max: Nullable<number[]>): IAccessor {\r\n let accessor: IAccessor = { name: name, bufferView: bufferviewIndex, componentType: componentType, count: count, type: type };\r\n\r\n if (min != null) {\r\n accessor.min = min;\r\n }\r\n if (max != null) {\r\n accessor.max = max;\r\n }\r\n if (byteOffset != null) {\r\n accessor.byteOffset = byteOffset;\r\n }\r\n\r\n return accessor;\r\n }\r\n\r\n /**\r\n * Calculates the minimum and maximum values of an array of position floats\r\n * @param positions Positions array of a mesh\r\n * @param vertexStart Starting vertex offset to calculate min and max values\r\n * @param vertexCount Number of vertices to check for min and max values\r\n * @returns min number array and max number array\r\n */\r\n public static _CalculateMinMaxPositions(positions: FloatArray, vertexStart: number, vertexCount: number, convertToRightHandedSystem: boolean): { min: number[], max: number[] } {\r\n const min = [Infinity, Infinity, Infinity];\r\n const max = [-Infinity, -Infinity, -Infinity];\r\n const positionStrideSize = 3;\r\n let indexOffset: number;\r\n let position: Vector3;\r\n let vector: number[];\r\n\r\n if (vertexCount) {\r\n for (let i = vertexStart, length = vertexStart + vertexCount; i < length; ++i) {\r\n indexOffset = positionStrideSize * i;\r\n\r\n position = Vector3.FromArray(positions, indexOffset);\r\n if (convertToRightHandedSystem) {\r\n _GLTFUtilities._GetRightHandedPositionVector3FromRef(position);\r\n }\r\n vector = position.asArray();\r\n\r\n for (let j = 0; j < positionStrideSize; ++j) {\r\n let num = vector[j];\r\n if (num < min[j]) {\r\n min[j] = num;\r\n }\r\n if (num > max[j]) {\r\n max[j] = num;\r\n }\r\n ++indexOffset;\r\n }\r\n }\r\n }\r\n return { min, max };\r\n }\r\n\r\n /**\r\n * Converts a new right-handed Vector3\r\n * @param vector vector3 array\r\n * @returns right-handed Vector3\r\n */\r\n public static _GetRightHandedPositionVector3(vector: Vector3): Vector3 {\r\n return new Vector3(vector.x, vector.y, -vector.z);\r\n }\r\n\r\n /**\r\n * Converts a Vector3 to right-handed\r\n * @param vector Vector3 to convert to right-handed\r\n */\r\n public static _GetRightHandedPositionVector3FromRef(vector: Vector3) {\r\n vector.z *= -1;\r\n }\r\n\r\n /**\r\n * Converts a three element number array to right-handed\r\n * @param vector number array to convert to right-handed\r\n */\r\n public static _GetRightHandedPositionArray3FromRef(vector: number[]) {\r\n vector[2] *= -1;\r\n }\r\n\r\n /**\r\n * Converts a new right-handed Vector3\r\n * @param vector vector3 array\r\n * @returns right-handed Vector3\r\n */\r\n public static _GetRightHandedNormalVector3(vector: Vector3): Vector3 {\r\n return new Vector3(vector.x, vector.y, -vector.z);\r\n }\r\n\r\n /**\r\n * Converts a Vector3 to right-handed\r\n * @param vector Vector3 to convert to right-handed\r\n */\r\n public static _GetRightHandedNormalVector3FromRef(vector: Vector3) {\r\n vector.z *= -1;\r\n }\r\n\r\n /**\r\n * Converts a three element number array to right-handed\r\n * @param vector number array to convert to right-handed\r\n */\r\n public static _GetRightHandedNormalArray3FromRef(vector: number[]) {\r\n vector[2] *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Vector4 to right-handed\r\n * @param vector Vector4 to convert to right-handed\r\n */\r\n public static _GetRightHandedVector4FromRef(vector: Vector4) {\r\n vector.z *= -1;\r\n vector.w *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Vector4 to right-handed\r\n * @param vector Vector4 to convert to right-handed\r\n */\r\n public static _GetRightHandedArray4FromRef(vector: number[]) {\r\n vector[2] *= -1;\r\n vector[3] *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Quaternion to right-handed\r\n * @param quaternion Source quaternion to convert to right-handed\r\n */\r\n public static _GetRightHandedQuaternionFromRef(quaternion: Quaternion) {\r\n quaternion.x *= -1;\r\n quaternion.y *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Quaternion to right-handed\r\n * @param quaternion Source quaternion to convert to right-handed\r\n */\r\n public static _GetRightHandedQuaternionArrayFromRef(quaternion: number[]) {\r\n quaternion[0] *= -1;\r\n quaternion[1] *= -1;\r\n }\r\n\r\n public static _NormalizeTangentFromRef(tangent: Vector4) {\r\n const length = Math.sqrt(tangent.x * tangent.x + tangent.y * tangent.y + tangent.z * tangent.z);\r\n if (length > 0) {\r\n tangent.x /= length;\r\n tangent.y /= length;\r\n tangent.z /= length;\r\n }\r\n }\r\n\r\n public static _GetRightHandedMatrixFromRef(matrix: Matrix) {\r\n const m = matrix.m;\r\n Matrix.FromValuesToRef(\r\n m[0], m[1], -m[2], m[3],\r\n m[4], m[5], -m[6], m[7],\r\n -m[8], m[9], m[10], m[11],\r\n m[12], m[13], m[14], m[15],\r\n matrix\r\n );\r\n }\r\n\r\n public static _GetDataAccessorElementCount(accessorType: AccessorType) {\r\n switch (accessorType) {\r\n case AccessorType.MAT2:\r\n return 4;\r\n case AccessorType.MAT3:\r\n return 9;\r\n case AccessorType.MAT4:\r\n return 16;\r\n case AccessorType.SCALAR:\r\n return 1;\r\n case AccessorType.VEC2:\r\n return 2;\r\n case AccessorType.VEC3:\r\n return 3;\r\n case AccessorType.VEC4:\r\n return 4;\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"glTFUtilities.js","sourceRoot":"","sources":["../../../../sourceES6/serializers/src/glTF/2.0/glTFUtilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { IBufferView, AccessorType, AccessorComponentType, IAccessor } from \"babylonjs-gltf2interface\";\r\n\r\nimport { FloatArray, Nullable } from \"@babylonjs/core/types\";\r\nimport { Vector3, Vector4, Quaternion } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport class _GLTFUtilities {\r\n /**\r\n * Creates a buffer view based on the supplied arguments\r\n * @param bufferIndex index value of the specified buffer\r\n * @param byteOffset byte offset value\r\n * @param byteLength byte length of the bufferView\r\n * @param byteStride byte distance between conequential elements\r\n * @param name name of the buffer view\r\n * @returns bufferView for glTF\r\n */\r\n public static _CreateBufferView(bufferIndex: number, byteOffset: number, byteLength: number, byteStride?: number, name?: string): IBufferView {\r\n let bufferview: IBufferView = { buffer: bufferIndex, byteLength: byteLength };\r\n if (byteOffset) {\r\n bufferview.byteOffset = byteOffset;\r\n }\r\n if (name) {\r\n bufferview.name = name;\r\n }\r\n if (byteStride) {\r\n bufferview.byteStride = byteStride;\r\n }\r\n\r\n return bufferview;\r\n }\r\n\r\n /**\r\n * Creates an accessor based on the supplied arguments\r\n * @param bufferviewIndex The index of the bufferview referenced by this accessor\r\n * @param name The name of the accessor\r\n * @param type The type of the accessor\r\n * @param componentType The datatype of components in the attribute\r\n * @param count The number of attributes referenced by this accessor\r\n * @param byteOffset The offset relative to the start of the bufferView in bytes\r\n * @param min Minimum value of each component in this attribute\r\n * @param max Maximum value of each component in this attribute\r\n * @returns accessor for glTF\r\n */\r\n public static _CreateAccessor(bufferviewIndex: number, name: string, type: AccessorType, componentType: AccessorComponentType, count: number, byteOffset: Nullable<number>, min: Nullable<number[]>, max: Nullable<number[]>): IAccessor {\r\n let accessor: IAccessor = { name: name, bufferView: bufferviewIndex, componentType: componentType, count: count, type: type };\r\n\r\n if (min != null) {\r\n accessor.min = min;\r\n }\r\n if (max != null) {\r\n accessor.max = max;\r\n }\r\n if (byteOffset != null) {\r\n accessor.byteOffset = byteOffset;\r\n }\r\n\r\n return accessor;\r\n }\r\n\r\n /**\r\n * Calculates the minimum and maximum values of an array of position floats\r\n * @param positions Positions array of a mesh\r\n * @param vertexStart Starting vertex offset to calculate min and max values\r\n * @param vertexCount Number of vertices to check for min and max values\r\n * @returns min number array and max number array\r\n */\r\n public static _CalculateMinMaxPositions(positions: FloatArray, vertexStart: number, vertexCount: number, convertToRightHandedSystem: boolean): { min: number[], max: number[] } {\r\n const min = [Infinity, Infinity, Infinity];\r\n const max = [-Infinity, -Infinity, -Infinity];\r\n const positionStrideSize = 3;\r\n let indexOffset: number;\r\n let position: Vector3;\r\n let vector: number[];\r\n\r\n if (vertexCount) {\r\n for (let i = vertexStart, length = vertexStart + vertexCount; i < length; ++i) {\r\n indexOffset = positionStrideSize * i;\r\n\r\n position = Vector3.FromArray(positions, indexOffset);\r\n if (convertToRightHandedSystem) {\r\n _GLTFUtilities._GetRightHandedPositionVector3FromRef(position);\r\n }\r\n vector = position.asArray();\r\n\r\n for (let j = 0; j < positionStrideSize; ++j) {\r\n let num = vector[j];\r\n if (num < min[j]) {\r\n min[j] = num;\r\n }\r\n if (num > max[j]) {\r\n max[j] = num;\r\n }\r\n ++indexOffset;\r\n }\r\n }\r\n }\r\n return { min, max };\r\n }\r\n\r\n /**\r\n * Converts a new right-handed Vector3\r\n * @param vector vector3 array\r\n * @returns right-handed Vector3\r\n */\r\n public static _GetRightHandedPositionVector3(vector: Vector3): Vector3 {\r\n return new Vector3(vector.x, vector.y, -vector.z);\r\n }\r\n\r\n /**\r\n * Converts a Vector3 to right-handed\r\n * @param vector Vector3 to convert to right-handed\r\n */\r\n public static _GetRightHandedPositionVector3FromRef(vector: Vector3) {\r\n vector.z *= -1;\r\n }\r\n\r\n /**\r\n * Converts a three element number array to right-handed\r\n * @param vector number array to convert to right-handed\r\n */\r\n public static _GetRightHandedPositionArray3FromRef(vector: number[]) {\r\n vector[2] *= -1;\r\n }\r\n\r\n /**\r\n * Converts a new right-handed Vector3\r\n * @param vector vector3 array\r\n * @returns right-handed Vector3\r\n */\r\n public static _GetRightHandedNormalVector3(vector: Vector3): Vector3 {\r\n return new Vector3(vector.x, vector.y, -vector.z);\r\n }\r\n\r\n /**\r\n * Converts a Vector3 to right-handed\r\n * @param vector Vector3 to convert to right-handed\r\n */\r\n public static _GetRightHandedNormalVector3FromRef(vector: Vector3) {\r\n vector.z *= -1;\r\n }\r\n\r\n /**\r\n * Converts a three element number array to right-handed\r\n * @param vector number array to convert to right-handed\r\n */\r\n public static _GetRightHandedNormalArray3FromRef(vector: number[]) {\r\n vector[2] *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Vector4 to right-handed\r\n * @param vector Vector4 to convert to right-handed\r\n */\r\n public static _GetRightHandedVector4FromRef(vector: Vector4) {\r\n vector.z *= -1;\r\n vector.w *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Vector4 to right-handed\r\n * @param vector Vector4 to convert to right-handed\r\n */\r\n public static _GetRightHandedArray4FromRef(vector: number[]) {\r\n vector[2] *= -1;\r\n vector[3] *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Quaternion to right-handed\r\n * @param quaternion Source quaternion to convert to right-handed\r\n */\r\n public static _GetRightHandedQuaternionFromRef(quaternion: Quaternion) {\r\n quaternion.x *= -1;\r\n quaternion.y *= -1;\r\n }\r\n\r\n /**\r\n * Converts a Quaternion to right-handed\r\n * @param quaternion Source quaternion to convert to right-handed\r\n */\r\n public static _GetRightHandedQuaternionArrayFromRef(quaternion: number[]) {\r\n quaternion[0] *= -1;\r\n quaternion[1] *= -1;\r\n }\r\n\r\n public static _NormalizeTangentFromRef(tangent: Vector4) {\r\n const length = Math.sqrt(tangent.x * tangent.x + tangent.y * tangent.y + tangent.z * tangent.z);\r\n if (length > 0) {\r\n tangent.x /= length;\r\n tangent.y /= length;\r\n tangent.z /= length;\r\n }\r\n }\r\n\r\n public static _GetDataAccessorElementCount(accessorType: AccessorType) {\r\n switch (accessorType) {\r\n case AccessorType.MAT2:\r\n return 4;\r\n case AccessorType.MAT3:\r\n return 9;\r\n case AccessorType.MAT4:\r\n return 16;\r\n case AccessorType.SCALAR:\r\n return 1;\r\n case AccessorType.VEC2:\r\n return 2;\r\n case AccessorType.VEC3:\r\n return 3;\r\n case AccessorType.VEC4:\r\n return 4;\r\n }\r\n }\r\n}"]}
@@ -5,4 +5,4 @@ export * from "./glTFExporterExtension";
5
5
  export * from "./glTFMaterialExporter";
6
6
  export * from "./glTFSerializer";
7
7
  export * from "./glTFUtilities";
8
- export * from "./Extensions";
8
+ export * from "./Extensions/index";
package/glTF/2.0/index.js CHANGED
@@ -1,9 +1,9 @@
1
- export * from "./glTFAnimation";
2
- export * from "./glTFData";
3
- export * from "./glTFExporter";
4
- export * from "./glTFExporterExtension";
5
- export * from "./glTFMaterialExporter";
6
- export * from "./glTFSerializer";
7
- export * from "./glTFUtilities";
8
- export * from "./Extensions";
1
+ export * from "./glTFAnimation.js";
2
+ export * from "./glTFData.js";
3
+ export * from "./glTFExporter.js";
4
+ export * from "./glTFExporterExtension.js";
5
+ export * from "./glTFMaterialExporter.js";
6
+ export * from "./glTFSerializer.js";
7
+ export * from "./glTFUtilities.js";
8
+ export * from "./Extensions/index.js";
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../sourceES6/serializers/src/glTF/2.0/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./glTFAnimation\";\r\nexport * from \"./glTFData\";\r\nexport * from \"./glTFExporter\";\r\nexport * from \"./glTFExporterExtension\";\r\nexport * from \"./glTFMaterialExporter\";\r\nexport * from \"./glTFSerializer\";\r\nexport * from \"./glTFUtilities\";\r\nexport * from \"./Extensions\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../sourceES6/serializers/src/glTF/2.0/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from \"./glTFAnimation\";\r\nexport * from \"./glTFData\";\r\nexport * from \"./glTFExporter\";\r\nexport * from \"./glTFExporterExtension\";\r\nexport * from \"./glTFMaterialExporter\";\r\nexport * from \"./glTFSerializer\";\r\nexport * from \"./glTFUtilities\";\r\nexport * from \"./Extensions/index\";"]}
@@ -1,7 +1,7 @@
1
- import { Effect } from "@babylonjs/core/Materials/effect";
1
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
2
2
  var name = 'textureTransformPixelShader';
3
- var shader = "precision highp float;\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform mat4 textureTransformMat;\nvoid main(void) {\nvec2 uvTransformed=(textureTransformMat*vec4(vUV.xy,1,1)).xy;\ngl_FragColor=texture2D(textureSampler,uvTransformed);\n}";
4
- Effect.ShadersStore[name] = shader;
3
+ var shader = "precision highp float;\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform mat4 textureTransformMat;\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec2 uvTransformed=(textureTransformMat*vec4(vUV.xy,1,1)).xy;\ngl_FragColor=texture2D(textureSampler,uvTransformed);\n#define CUSTOM_FRAGMENT_MAIN_END\n}";
4
+ ShaderStore.ShadersStore[name] = shader;
5
5
  /** @hidden */
6
6
  export var textureTransformPixelShader = { name: name, shader: shader };
7
7
  //# sourceMappingURL=textureTransform.fragment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textureTransform.fragment.js","sourceRoot":"","sources":["../../../../../sourceES6/serializers/src/glTF/2.0/shaders/textureTransform.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,IAAI,IAAI,GAAG,6BAA6B,CAAC;AACzC,IAAI,MAAM,GAAG,6PAOX,CAAC;AAEH,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACnC,cAAc;AACd,MAAM,CAAC,IAAI,2BAA2B,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { Effect } from \"@babylonjs/core/Materials/effect\";\n\nlet name = 'textureTransformPixelShader';\nlet shader = `precision highp float;\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform mat4 textureTransformMat;\nvoid main(void) {\nvec2 uvTransformed=(textureTransformMat*vec4(vUV.xy,1,1)).xy;\ngl_FragColor=texture2D(textureSampler,uvTransformed);\n}`;\n\nEffect.ShadersStore[name] = shader;\n/** @hidden */\nexport var textureTransformPixelShader = { name, shader };\n"]}
1
+ {"version":3,"file":"textureTransform.fragment.js","sourceRoot":"","sources":["../../../../../sourceES6/serializers/src/glTF/2.0/shaders/textureTransform.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,IAAI,IAAI,GAAG,6BAA6B,CAAC;AACzC,IAAI,MAAM,GAAG,mUASX,CAAC;AAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,2BAA2B,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\n\nlet name = 'textureTransformPixelShader';\nlet shader = `precision highp float;\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform mat4 textureTransformMat;\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec2 uvTransformed=(textureTransformMat*vec4(vUV.xy,1,1)).xy;\ngl_FragColor=texture2D(textureSampler,uvTransformed);\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var textureTransformPixelShader = { name, shader };\n"]}
package/glTF/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from "./glTFFileExporter";
2
- export * from "./2.0";
2
+ export * from "./2.0/index";
package/glTF/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./glTFFileExporter";
2
- export * from "./2.0";
1
+ export * from "./glTFFileExporter.js";
2
+ export * from "./2.0/index.js";
3
3
  //# sourceMappingURL=index.js.map
package/glTF/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/glTF/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC","sourcesContent":["export * from \"./glTFFileExporter\";\r\nexport * from \"./2.0\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/glTF/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./glTFFileExporter\";\r\nexport * from \"./2.0/index\";"]}
package/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./OBJ";
2
- export * from "./glTF";
3
- export * from "./stl";
1
+ export * from "./OBJ/index";
2
+ export * from "./glTF/index";
3
+ export * from "./stl/index";
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./OBJ";
2
- export * from "./glTF";
3
- export * from "./stl";
1
+ export * from "./OBJ/index.js";
2
+ export * from "./glTF/index.js";
3
+ export * from "./stl/index.js";
4
4
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../sourceES6/serializers/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC","sourcesContent":["export * from \"./OBJ\";\r\nexport * from \"./glTF\";\r\nexport * from \"./stl\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../sourceES6/serializers/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./OBJ/index\";\r\nexport * from \"./glTF/index\";\r\nexport * from \"./stl/index\";"]}
@@ -1,2 +1,2 @@
1
1
  export * from "../glTF/glTFFileExporter";
2
- export * from "../glTF/2.0";
2
+ export * from "../glTF/2.0/index";
@@ -1,8 +1,8 @@
1
- import * as Exporters from "../glTF/glTFFileExporter";
2
- import * as Datas from "../glTF/2.0/glTFData";
3
- import * as Serializers from "../glTF/2.0/glTFSerializer";
4
- import * as Extensions from "../glTF/2.0/Extensions";
5
- import * as GLTF2 from "../glTF/2.0";
1
+ import * as Exporters from "../glTF/glTFFileExporter.js";
2
+ import * as Datas from "../glTF/2.0/glTFData.js";
3
+ import * as Serializers from "../glTF/2.0/glTFSerializer.js";
4
+ import * as Extensions from "../glTF/2.0/Extensions/index.js";
5
+ import * as GLTF2 from "../glTF/2.0/index.js";
6
6
  /**
7
7
  * This is the entry point for the UMD module.
8
8
  * The entry point for a future ESM package should be index.ts
@@ -39,6 +39,6 @@ if (typeof globalObject !== "undefined") {
39
39
  BABYLON.GLTF2.Exporter[key] = GLTF2[key];
40
40
  }
41
41
  }
42
- export * from "../glTF/glTFFileExporter";
43
- export * from "../glTF/2.0";
42
+ export * from "../glTF/glTFFileExporter.js";
43
+ export * from "../glTF/2.0/index.js";
44
44
  //# sourceMappingURL=legacy-glTF2Serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-glTF2Serializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/legacy/legacy-glTF2Serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IAC/B,YAAa,CAAC,OAAO,GAAS,YAAa,CAAC,OAAO,IAAI,EAAE,CAAC;IAChE,IAAI,OAAO,GAAS,YAAa,CAAC,OAAO,CAAC;IAC1C,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAE5E,IAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,GAAS,SAAU,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,GAAS,KAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,GAAS,WAAY,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IAED,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAS,UAAW,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IAED,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;QACnB,wBAAwB;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACxB,SAAS;SACZ;QAED,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAS,KAAM,CAAC,GAAG,CAAC,CAAC;KACnD;CACJ;AAED,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC","sourcesContent":["import * as Exporters from \"../glTF/glTFFileExporter\";\r\nimport * as Datas from \"../glTF/2.0/glTFData\";\r\nimport * as Serializers from \"../glTF/2.0/glTFSerializer\";\r\nimport * as Extensions from \"../glTF/2.0/Extensions\";\r\nimport * as GLTF2 from \"../glTF/2.0\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n (<any>globalObject).BABYLON = (<any>globalObject).BABYLON || {};\r\n var BABYLON = (<any>globalObject).BABYLON;\r\n BABYLON.GLTF2 = BABYLON.GLTF2 || {};\r\n BABYLON.GLTF2.Exporter = BABYLON.GLTF2.Exporter || {};\r\n BABYLON.GLTF2.Exporter.Extensions = BABYLON.GLTF2.Exporter.Extensions || {};\r\n\r\n const keys = [];\r\n for (var key in Exporters) {\r\n BABYLON[key] = (<any>Exporters)[key];\r\n keys.push(key);\r\n }\r\n for (var key in Datas) {\r\n BABYLON[key] = (<any>Datas)[key];\r\n keys.push(key);\r\n }\r\n for (var key in Serializers) {\r\n BABYLON[key] = (<any>Serializers)[key];\r\n keys.push(key);\r\n }\r\n\r\n for (var key in Extensions) {\r\n BABYLON.GLTF2.Exporter.Extensions[key] = (<any>Extensions)[key];\r\n keys.push(key);\r\n }\r\n\r\n for (var key in GLTF2) {\r\n // Prevent Reassignment.\r\n if (keys.indexOf(key) > -1) {\r\n continue;\r\n }\r\n\r\n BABYLON.GLTF2.Exporter[key] = (<any>GLTF2)[key];\r\n }\r\n}\r\n\r\nexport * from \"../glTF/glTFFileExporter\";\r\nexport * from \"../glTF/2.0\";"]}
1
+ {"version":3,"file":"legacy-glTF2Serializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/legacy/legacy-glTF2Serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAE3C;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IAC/B,YAAa,CAAC,OAAO,GAAS,YAAa,CAAC,OAAO,IAAI,EAAE,CAAC;IAChE,IAAI,OAAO,GAAS,YAAa,CAAC,OAAO,CAAC;IAC1C,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAE5E,IAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,GAAS,SAAU,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,GAAS,KAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,GAAS,WAAY,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IAED,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAS,UAAW,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IAED,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;QACnB,wBAAwB;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACxB,SAAS;SACZ;QAED,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAS,KAAM,CAAC,GAAG,CAAC,CAAC;KACnD;CACJ;AAED,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC","sourcesContent":["import * as Exporters from \"../glTF/glTFFileExporter\";\r\nimport * as Datas from \"../glTF/2.0/glTFData\";\r\nimport * as Serializers from \"../glTF/2.0/glTFSerializer\";\r\nimport * as Extensions from \"../glTF/2.0/Extensions/index\";\r\nimport * as GLTF2 from \"../glTF/2.0/index\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n (<any>globalObject).BABYLON = (<any>globalObject).BABYLON || {};\r\n var BABYLON = (<any>globalObject).BABYLON;\r\n BABYLON.GLTF2 = BABYLON.GLTF2 || {};\r\n BABYLON.GLTF2.Exporter = BABYLON.GLTF2.Exporter || {};\r\n BABYLON.GLTF2.Exporter.Extensions = BABYLON.GLTF2.Exporter.Extensions || {};\r\n\r\n const keys = [];\r\n for (var key in Exporters) {\r\n BABYLON[key] = (<any>Exporters)[key];\r\n keys.push(key);\r\n }\r\n for (var key in Datas) {\r\n BABYLON[key] = (<any>Datas)[key];\r\n keys.push(key);\r\n }\r\n for (var key in Serializers) {\r\n BABYLON[key] = (<any>Serializers)[key];\r\n keys.push(key);\r\n }\r\n\r\n for (var key in Extensions) {\r\n BABYLON.GLTF2.Exporter.Extensions[key] = (<any>Extensions)[key];\r\n keys.push(key);\r\n }\r\n\r\n for (var key in GLTF2) {\r\n // Prevent Reassignment.\r\n if (keys.indexOf(key) > -1) {\r\n continue;\r\n }\r\n\r\n BABYLON.GLTF2.Exporter[key] = (<any>GLTF2)[key];\r\n }\r\n}\r\n\r\nexport * from \"../glTF/glTFFileExporter\";\r\nexport * from \"../glTF/2.0/index\";"]}
@@ -1 +1 @@
1
- export * from "../OBJ";
1
+ export * from "../OBJ/index";
@@ -1,4 +1,4 @@
1
- import * as Serializers from "../OBJ";
1
+ import * as Serializers from "../OBJ/index.js";
2
2
  /**
3
3
  * This is the entry point for the UMD module.
4
4
  * The entry point for a future ESM package should be index.ts
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
9
9
  globalObject.BABYLON[serializer] = Serializers[serializer];
10
10
  }
11
11
  }
12
- export * from "../OBJ";
12
+ export * from "../OBJ/index.js";
13
13
  //# sourceMappingURL=legacy-objSerializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-objSerializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/legacy/legacy-objSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,QAAQ,CAAC;AAEtC;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IACrC,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;QAC1B,YAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAS,WAAY,CAAC,UAAU,CAAC,CAAC;KAC5E;CACJ;AAED,cAAc,QAAQ,CAAC","sourcesContent":["import * as Serializers from \"../OBJ\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n for (var serializer in Serializers) {\r\n (<any>globalObject).BABYLON[serializer] = (<any>Serializers)[serializer];\r\n }\r\n}\r\n\r\nexport * from \"../OBJ\";"]}
1
+ {"version":3,"file":"legacy-objSerializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/legacy/legacy-objSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IACrC,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;QAC1B,YAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAS,WAAY,CAAC,UAAU,CAAC,CAAC;KAC5E;CACJ;AAED,cAAc,cAAc,CAAC","sourcesContent":["import * as Serializers from \"../OBJ/index\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n for (var serializer in Serializers) {\r\n (<any>globalObject).BABYLON[serializer] = (<any>Serializers)[serializer];\r\n }\r\n}\r\n\r\nexport * from \"../OBJ/index\";"]}
@@ -1 +1 @@
1
- export * from "../stl";
1
+ export * from "../stl/index";
@@ -1,4 +1,4 @@
1
- import * as Serializers from "../stl";
1
+ import * as Serializers from "../stl/index.js";
2
2
  /**
3
3
  * This is the entry point for the UMD module.
4
4
  * The entry point for a future ESM package should be index.ts
@@ -9,5 +9,5 @@ if (typeof globalObject !== "undefined") {
9
9
  globalObject.BABYLON[serializer] = Serializers[serializer];
10
10
  }
11
11
  }
12
- export * from "../stl";
12
+ export * from "../stl/index.js";
13
13
  //# sourceMappingURL=legacy-stlSerializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-stlSerializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/legacy/legacy-stlSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,QAAQ,CAAC;AAEtC;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IACrC,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;QAC1B,YAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAS,WAAY,CAAC,UAAU,CAAC,CAAC;KAC5E;CACJ;AAED,cAAc,QAAQ,CAAC","sourcesContent":["import * as Serializers from \"../stl\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n for (var serializer in Serializers) {\r\n (<any>globalObject).BABYLON[serializer] = (<any>Serializers)[serializer];\r\n }\r\n}\r\n\r\nexport * from \"../stl\";"]}
1
+ {"version":3,"file":"legacy-stlSerializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/legacy/legacy-stlSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C;;;GAGG;AACH,IAAI,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IACrC,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;QAC1B,YAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAS,WAAY,CAAC,UAAU,CAAC,CAAC;KAC5E;CACJ;AAED,cAAc,cAAc,CAAC","sourcesContent":["import * as Serializers from \"../stl/index\";\r\n\r\n/**\r\n * This is the entry point for the UMD module.\r\n * The entry point for a future ESM package should be index.ts\r\n */\r\nvar globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);\r\nif (typeof globalObject !== \"undefined\") {\r\n for (var serializer in Serializers) {\r\n (<any>globalObject).BABYLON[serializer] = (<any>Serializers)[serializer];\r\n }\r\n}\r\n\r\nexport * from \"../stl/index\";"]}
package/legacy/legacy.js CHANGED
@@ -1,5 +1,5 @@
1
- import "../index";
2
- export * from "./legacy-glTF2Serializer";
3
- export * from "./legacy-objSerializer";
4
- export * from "./legacy-stlSerializer";
1
+ import "../index.js";
2
+ export * from "./legacy-glTF2Serializer.js";
3
+ export * from "./legacy-objSerializer.js";
4
+ export * from "./legacy-stlSerializer.js";
5
5
  //# sourceMappingURL=legacy.js.map
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  },
5
5
  "name": "@babylonjs/serializers",
6
6
  "description": "The Babylon.js serializers library is an extension you can use to serialize Babylon scenes.",
7
- "version": "5.0.0-alpha.9",
7
+ "version": "5.0.0-beta.4",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -17,6 +17,9 @@
17
17
  "glTF/2.0/Extensions/KHR_lights_punctual.d.ts",
18
18
  "glTF/2.0/Extensions/KHR_lights_punctual.js",
19
19
  "glTF/2.0/Extensions/KHR_lights_punctual.js.map",
20
+ "glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts",
21
+ "glTF/2.0/Extensions/KHR_materials_clearcoat.js",
22
+ "glTF/2.0/Extensions/KHR_materials_clearcoat.js.map",
20
23
  "glTF/2.0/Extensions/KHR_materials_sheen.d.ts",
21
24
  "glTF/2.0/Extensions/KHR_materials_sheen.js",
22
25
  "glTF/2.0/Extensions/KHR_materials_sheen.js.map",
@@ -98,9 +101,9 @@
98
101
  ],
99
102
  "license": "Apache-2.0",
100
103
  "dependencies": {
101
- "@babylonjs/core": "5.0.0-alpha.9",
102
- "babylonjs-gltf2interface": "5.0.0-alpha.9",
103
- "tslib": ">=1.10.0"
104
+ "@babylonjs/core": "5.0.0-beta.4",
105
+ "babylonjs-gltf2interface": "5.0.0-beta.4",
106
+ "tslib": "^2.3.1"
104
107
  },
105
108
  "engines": {
106
109
  "node": "*"
package/stl/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./stlSerializer";
1
+ export * from "./stlSerializer.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import { VertexBuffer } from "@babylonjs/core/Meshes/buffer";
2
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
1
+ import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
2
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
3
3
  /**
4
4
  * Class for generating STL data from a Babylon scene.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"stlSerializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/stl/stlSerializer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Mesh } from \"@babylonjs/core/Meshes/mesh\";\nimport { VertexBuffer } from \"@babylonjs/core/Meshes/buffer\";\nimport { Vector3 } from \"@babylonjs/core/Maths/math.vector\";\n\n/**\n* Class for generating STL data from a Babylon scene.\n*/\nexport class STLExport {\n /**\n * Exports the geometry of a Mesh array in .STL file format (ASCII)\n * @param meshes list defines the mesh to serialize\n * @param download triggers the automatic download of the file.\n * @param fileName changes the downloads fileName.\n * @param binary changes the STL to a binary type.\n * @param isLittleEndian toggle for binary type exporter.\n * @param doNotBakeTransform toggle if meshes transforms should be baked or not.\n * @returns the STL as UTF8 string\n */\n public static CreateSTL(meshes: Mesh[], download: boolean = true, fileName: string = 'stlmesh', binary: boolean = false, isLittleEndian: boolean = true, doNotBakeTransform: boolean = false): any {\n\n //Binary support adapted from https://gist.github.com/paulkaplan/6d5f0ab2c7e8fdc68a61\n\n let getFaceData = function(indices: any, vertices: any, i: number) {\n let id = [indices[i] * 3, indices[i + 1] * 3, indices[i + 2] * 3];\n let v = [\n new Vector3(vertices[id[0]], vertices[id[0] + 2], vertices[id[0] + 1]),\n new Vector3(vertices[id[1]], vertices[id[1] + 2], vertices[id[1] + 1]),\n new Vector3(vertices[id[2]], vertices[id[2] + 2], vertices[id[2] + 1])\n ];\n let p1p2 = v[0].subtract(v[1]);\n let p3p2 = v[2].subtract(v[1]);\n let n = (Vector3.Cross(p3p2, p1p2)).normalize();\n\n return {v, n};\n };\n\n let writeVector = function(dataview: any, offset: number, vector: Vector3, isLittleEndian: boolean) {\n offset = writeFloat(dataview, offset, vector.x, isLittleEndian);\n offset = writeFloat(dataview, offset, vector.y, isLittleEndian);\n return writeFloat(dataview, offset, vector.z, isLittleEndian);\n };\n\n let writeFloat = function(dataview: any, offset: number, value: number, isLittleEndian: boolean) {\n dataview.setFloat32(offset, value, isLittleEndian);\n return offset + 4;\n };\n\n let data;\n\n let faceCount = 0;\n let offset = 0;\n\n if (binary) {\n for (let i = 0; i < meshes.length; i++) {\n let mesh = meshes[i];\n let indices = mesh.getIndices();\n faceCount += indices ? indices.length / 3 : 0;\n }\n\n let bufferSize = 84 + (50 * faceCount);\n let buffer = new ArrayBuffer(bufferSize);\n data = new DataView(buffer);\n\n offset += 80;\n data.setUint32(offset, faceCount, isLittleEndian);\n offset += 4;\n\n } else {\n data = 'solid stlmesh\\r\\n';\n }\n\n for (let i = 0; i < meshes.length; i++) {\n let mesh = meshes[i];\n if (!doNotBakeTransform) {\n mesh.bakeCurrentTransformIntoVertices();\n }\n let vertices = mesh.getVerticesData(VertexBuffer.PositionKind) || [];\n let indices = mesh.getIndices() || [];\n\n for (let i = 0; i < indices.length; i += 3) {\n let fd = getFaceData(indices, vertices, i);\n\n if (binary) {\n offset = writeVector(data, offset, fd.n, isLittleEndian);\n offset = writeVector(data, offset, fd.v[0], isLittleEndian);\n offset = writeVector(data, offset, fd.v[1], isLittleEndian);\n offset = writeVector(data, offset, fd.v[2], isLittleEndian);\n offset += 2;\n } else {\n data += 'facet normal ' + fd.n.x + ' ' + fd.n.y + ' ' + fd.n.z + '\\r\\n';\n data += '\\touter loop\\r\\n';\n data += '\\t\\tvertex ' + fd.v[0].x + ' ' + fd.v[0].y + ' ' + fd.v[0].z + '\\r\\n';\n data += '\\t\\tvertex ' + fd.v[1].x + ' ' + fd.v[1].y + ' ' + fd.v[1].z + '\\r\\n';\n data += '\\t\\tvertex ' + fd.v[2].x + ' ' + fd.v[2].y + ' ' + fd.v[2].z + '\\r\\n';\n data += '\\tendloop\\r\\n';\n data += 'endfacet\\r\\n';\n }\n\n }\n }\n\n if (!binary) {\n data += 'endsolid stlmesh';\n }\n\n if (download) {\n let a = document.createElement('a');\n let blob = new Blob([data], {'type': 'application/octet-stream'});\n a.href = window.URL.createObjectURL(blob);\n a.download = fileName + \".stl\";\n a.click();\n }\n\n return data;\n }\n}\n"]}
1
+ {"version":3,"file":"stlSerializer.js","sourceRoot":"","sources":["../../../sourceES6/serializers/src/stl/stlSerializer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Mesh } from \"@babylonjs/core/Meshes/mesh\";\nimport { VertexBuffer } from \"@babylonjs/core/Buffers/buffer\";\nimport { Vector3 } from \"@babylonjs/core/Maths/math.vector\";\n\n/**\n* Class for generating STL data from a Babylon scene.\n*/\nexport class STLExport {\n /**\n * Exports the geometry of a Mesh array in .STL file format (ASCII)\n * @param meshes list defines the mesh to serialize\n * @param download triggers the automatic download of the file.\n * @param fileName changes the downloads fileName.\n * @param binary changes the STL to a binary type.\n * @param isLittleEndian toggle for binary type exporter.\n * @param doNotBakeTransform toggle if meshes transforms should be baked or not.\n * @returns the STL as UTF8 string\n */\n public static CreateSTL(meshes: Mesh[], download: boolean = true, fileName: string = 'stlmesh', binary: boolean = false, isLittleEndian: boolean = true, doNotBakeTransform: boolean = false): any {\n\n //Binary support adapted from https://gist.github.com/paulkaplan/6d5f0ab2c7e8fdc68a61\n\n let getFaceData = function (indices: any, vertices: any, i: number) {\n let id = [indices[i] * 3, indices[i + 1] * 3, indices[i + 2] * 3];\n let v = [\n new Vector3(vertices[id[0]], vertices[id[0] + 2], vertices[id[0] + 1]),\n new Vector3(vertices[id[1]], vertices[id[1] + 2], vertices[id[1] + 1]),\n new Vector3(vertices[id[2]], vertices[id[2] + 2], vertices[id[2] + 1])\n ];\n let p1p2 = v[0].subtract(v[1]);\n let p3p2 = v[2].subtract(v[1]);\n let n = (Vector3.Cross(p3p2, p1p2)).normalize();\n\n return { v, n };\n };\n\n let writeVector = function (dataview: any, offset: number, vector: Vector3, isLittleEndian: boolean) {\n offset = writeFloat(dataview, offset, vector.x, isLittleEndian);\n offset = writeFloat(dataview, offset, vector.y, isLittleEndian);\n return writeFloat(dataview, offset, vector.z, isLittleEndian);\n };\n\n let writeFloat = function (dataview: any, offset: number, value: number, isLittleEndian: boolean) {\n dataview.setFloat32(offset, value, isLittleEndian);\n return offset + 4;\n };\n\n let data;\n\n let faceCount = 0;\n let offset = 0;\n\n if (binary) {\n for (let i = 0; i < meshes.length; i++) {\n let mesh = meshes[i];\n let indices = mesh.getIndices();\n faceCount += indices ? indices.length / 3 : 0;\n }\n\n let bufferSize = 84 + (50 * faceCount);\n let buffer = new ArrayBuffer(bufferSize);\n data = new DataView(buffer);\n\n offset += 80;\n data.setUint32(offset, faceCount, isLittleEndian);\n offset += 4;\n\n } else {\n data = 'solid stlmesh\\r\\n';\n }\n\n for (let i = 0; i < meshes.length; i++) {\n let mesh = meshes[i];\n if (!doNotBakeTransform) {\n mesh.bakeCurrentTransformIntoVertices();\n }\n let vertices = mesh.getVerticesData(VertexBuffer.PositionKind) || [];\n let indices = mesh.getIndices() || [];\n\n for (let i = 0; i < indices.length; i += 3) {\n let fd = getFaceData(indices, vertices, i);\n\n if (binary) {\n offset = writeVector(data, offset, fd.n, isLittleEndian);\n offset = writeVector(data, offset, fd.v[0], isLittleEndian);\n offset = writeVector(data, offset, fd.v[1], isLittleEndian);\n offset = writeVector(data, offset, fd.v[2], isLittleEndian);\n offset += 2;\n } else {\n data += 'facet normal ' + fd.n.x + ' ' + fd.n.y + ' ' + fd.n.z + '\\r\\n';\n data += '\\touter loop\\r\\n';\n data += '\\t\\tvertex ' + fd.v[0].x + ' ' + fd.v[0].y + ' ' + fd.v[0].z + '\\r\\n';\n data += '\\t\\tvertex ' + fd.v[1].x + ' ' + fd.v[1].y + ' ' + fd.v[1].z + '\\r\\n';\n data += '\\t\\tvertex ' + fd.v[2].x + ' ' + fd.v[2].y + ' ' + fd.v[2].z + '\\r\\n';\n data += '\\tendloop\\r\\n';\n data += 'endfacet\\r\\n';\n }\n\n }\n }\n\n if (!binary) {\n data += 'endsolid stlmesh';\n }\n\n if (download) {\n let a = document.createElement('a');\n let blob = new Blob([data], { 'type': 'application/octet-stream' });\n a.href = window.URL.createObjectURL(blob);\n a.download = fileName + \".stl\";\n a.click();\n }\n\n return data;\n }\n}\n"]}