@loaders.gl/draco 3.2.12 → 3.3.0-alpha.10
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.
- package/dist/dist.min.js +2 -2
- package/dist/dist.min.js.map +3 -3
- package/dist/draco-loader.d.ts +2 -1
- package/dist/draco-loader.d.ts.map +1 -1
- package/dist/draco-loader.js +2 -1
- package/dist/draco-nodejs-worker.js +191 -0
- package/dist/draco-nodejs-worker.js.map +7 -0
- package/dist/draco-worker.js +1 -1
- package/dist/draco-worker.js.map +2 -2
- package/dist/draco-writer-nodejs-worker.js +61 -60
- package/dist/draco-writer-nodejs-worker.js.map +3 -3
- package/dist/draco-writer-worker.js +2 -2
- package/dist/draco-writer-worker.js.map +2 -2
- package/dist/draco-writer.d.ts +1 -1
- package/dist/draco-writer.d.ts.map +1 -1
- package/dist/draco3d/draco3d-types.d.ts +1 -1
- package/dist/draco3d/draco3d-types.d.ts.map +1 -1
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/draco-loader.js +3 -4
- package/dist/es5/draco-loader.js.map +1 -1
- package/dist/es5/draco-writer-nodejs.js +0 -2
- package/dist/es5/draco-writer-nodejs.js.map +1 -1
- package/dist/es5/draco-writer.js +5 -17
- package/dist/es5/draco-writer.js.map +1 -1
- package/dist/es5/draco3d/draco3d-types.js +1 -8
- package/dist/es5/draco3d/draco3d-types.js.map +1 -1
- package/dist/es5/index.js +5 -25
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/draco-builder.js +40 -96
- package/dist/es5/lib/draco-builder.js.map +1 -1
- package/dist/es5/lib/draco-module-loader.js +9 -46
- package/dist/es5/lib/draco-module-loader.js.map +1 -1
- package/dist/es5/lib/draco-parser.js +63 -111
- package/dist/es5/lib/draco-parser.js.map +1 -1
- package/dist/es5/lib/draco-types.js.map +1 -1
- package/dist/es5/lib/utils/get-draco-schema.js +0 -12
- package/dist/es5/lib/utils/get-draco-schema.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/workers/draco-nodejs-worker.js +7 -0
- package/dist/es5/workers/draco-nodejs-worker.js.map +1 -0
- package/dist/es5/workers/draco-worker.js +0 -2
- package/dist/es5/workers/draco-worker.js.map +1 -1
- package/dist/es5/workers/draco-writer-nodejs-worker.js +0 -15
- package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -1
- package/dist/es5/workers/draco-writer-worker.js +0 -15
- package/dist/es5/workers/draco-writer-worker.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/draco-loader.js +3 -1
- package/dist/esm/draco-loader.js.map +1 -1
- package/dist/esm/draco-writer-nodejs.js +1 -0
- package/dist/esm/draco-writer-nodejs.js.map +1 -1
- package/dist/esm/draco-writer.js +3 -3
- package/dist/esm/draco-writer.js.map +1 -1
- package/dist/esm/draco3d/draco3d-types.js +2 -3
- package/dist/esm/draco3d/draco3d-types.js.map +1 -1
- package/dist/esm/index.js +6 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/draco-builder.js +6 -75
- package/dist/esm/lib/draco-builder.js.map +1 -1
- package/dist/esm/lib/draco-module-loader.js +11 -14
- package/dist/esm/lib/draco-module-loader.js.map +1 -1
- package/dist/esm/lib/draco-parser.js +5 -66
- package/dist/esm/lib/draco-parser.js.map +1 -1
- package/dist/esm/lib/draco-types.js.map +1 -1
- package/dist/esm/lib/utils/get-draco-schema.js +0 -10
- package/dist/esm/lib/utils/get-draco-schema.js.map +1 -1
- package/dist/esm/lib/utils/version.js +2 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/workers/draco-nodejs-worker.js +5 -0
- package/dist/esm/workers/draco-nodejs-worker.js.map +1 -0
- package/dist/esm/workers/draco-worker.js.map +1 -1
- package/dist/esm/workers/draco-writer-nodejs-worker.js +0 -4
- package/dist/esm/workers/draco-writer-nodejs-worker.js.map +1 -1
- package/dist/esm/workers/draco-writer-worker.js +0 -4
- package/dist/esm/workers/draco-writer-worker.js.map +1 -1
- package/dist/lib/draco-builder.d.ts +1 -1
- package/dist/lib/draco-builder.d.ts.map +1 -1
- package/dist/lib/draco-module-loader.d.ts.map +1 -1
- package/dist/lib/draco-module-loader.js +7 -5
- package/dist/lib/draco-parser.d.ts +1 -1
- package/dist/lib/draco-parser.d.ts.map +1 -1
- package/dist/lib/draco-types.d.ts +6 -6
- package/dist/lib/draco-types.d.ts.map +1 -1
- package/dist/workers/draco-nodejs-worker.d.ts +2 -0
- package/dist/workers/draco-nodejs-worker.d.ts.map +1 -0
- package/dist/workers/draco-nodejs-worker.js +6 -0
- package/package.json +9 -8
- package/src/draco-loader.ts +3 -1
- package/src/lib/draco-module-loader.ts +9 -5
- package/src/workers/draco-nodejs-worker.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/draco3d/draco3d-types.ts"],"names":["draco_GeometryAttribute_Type","draco_EncodedGeometryType","draco_DataType","draco_StatusCode"],"mappings":";;;;;;IAiBYA,4B;;;WAAAA,4B;AAAAA,EAAAA,4B,CAAAA,4B;AAAAA,EAAAA,4B,CAAAA,4B;AAAAA,EAAAA,4B,CAAAA,4B;AAAAA,EAAAA,4B,CAAAA,4B;AAAAA,EAAAA,4B,CAAAA,4B;AAAAA,EAAAA,4B,CAAAA,4B;GAAAA,4B,4CAAAA,4B;;IAUAC,yB;;;WAAAA,yB;AAAAA,EAAAA,yB,CAAAA,yB;AAAAA,EAAAA,yB,CAAAA,yB;AAAAA,EAAAA,yB,CAAAA,yB;GAAAA,yB,yCAAAA,yB;;IAOAC,c;;;WAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;GAAAA,c,8BAAAA,c;;IAiBAC,gB;;;WAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;GAAAA,gB,gCAAAA,gB","sourcesContent":["// A set of typescript types manually adapted from the Draco web IDL\n// Draco JS is a bit tricky to work with due to the C++ emscripten code base\n// sparse documentation, so these types provide an extra safety net.\n\n// Typescript defs adapted from draco3d emscripten IDL\n// https://raw.githubusercontent.com/google/draco/master/src/draco/javascript/emscripten/draco_web_decoder.idl\n// Interface exposed to emscripten's WebIDL Binder.\n// http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html\n\n/* eslint-disable camelcase */\n\n/** Draco3D untyped memory pointer */\ntype VoidPtr = any;\n\n// DRACO WEB DECODER IDL\n\n/** Draco3D geometry attribute type */\nexport enum draco_GeometryAttribute_Type {\n 'draco_GeometryAttribute::INVALID',\n 'draco_GeometryAttribute::POSITION',\n 'draco_GeometryAttribute::NORMAL',\n 'draco_GeometryAttribute::COLOR',\n 'draco_GeometryAttribute::TEX_COORD',\n 'draco_GeometryAttribute::GENERIC'\n}\n\n/** Draco3D encoded geometry type */\nexport enum draco_EncodedGeometryType {\n 'draco::INVALID_GEOMETRY_TYPE',\n 'draco::POINT_CLOUD',\n 'draco::TRIANGULAR_MESH'\n}\n\n/** Draco3D data type */\nexport enum draco_DataType {\n 'draco::DT_INVALID',\n 'draco::DT_INT8',\n 'draco::DT_UINT8',\n 'draco::DT_INT16',\n 'draco::DT_UINT16',\n 'draco::DT_INT32',\n 'draco::DT_UINT32',\n 'draco::DT_INT64',\n 'draco::DT_UINT64',\n 'draco::DT_FLOAT32',\n 'draco::DT_FLOAT64',\n 'draco::DT_BOOL',\n 'draco::DT_TYPES_COUNT'\n}\n\n/** Draco3D status code */\nexport enum draco_StatusCode {\n 'draco_Status::OK',\n 'draco_Status::DRACO_ERROR',\n 'draco_Status::IO_ERROR',\n 'draco_Status::INVALID_PARAMETER',\n 'draco_Status::UNSUPPORTED_VERSION',\n 'draco_Status::UNKNOWN_VERSION'\n}\n\n/** Draco3D decoder buffer allocated on emscripten heap */\nexport declare class DecoderBuffer {\n constructor();\n Init(data: Int8Array, data_size: number): void;\n}\n\n/** Draco3D attribute transform data */\nexport declare class AttributeTransformData {\n constructor();\n transform_type(): number;\n}\n\n/** Draco3D geometry attribute */\nexport declare class GeometryAttribute {\n constructor();\n}\n\n/** Draco3D point attribute */\nexport declare class PointAttribute {\n ptr: VoidPtr;\n\n constructor();\n size(): number;\n GetAttributeTransformData(): AttributeTransformData;\n\n // From GeometryAttribute\n attribute_type(): number;\n data_type(): number;\n num_components(): number;\n normalized(): boolean;\n byte_stride(): number;\n byte_offset(): number;\n unique_id(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeQuantizationTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n min_value(axis: number): number;\n range(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeOctahedronTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n}\n\n/** Draco3D point cloud */\nexport declare class PointCloud {\n ptr: VoidPtr;\n\n constructor();\n num_attributes(): number;\n num_points(): number;\n}\n\n/** Draco3D mesh */\nexport declare class Mesh extends PointCloud {\n constructor();\n num_faces(): number;\n}\n\n/** Draco3D metadata */\nexport declare class Metadata {\n ptr: VoidPtr;\n\n constructor();\n}\n\n/** Draco3D status */\nexport declare class Status {\n constructor();\n code(): draco_StatusCode;\n ok(): boolean;\n error_msg(): string;\n}\n\n/** Draco3D Float32Array allocated on the emscripten heap */\nexport declare class DracoFloat32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int8Array allocated on the emscripten heap */\nexport declare class DracoInt8Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint8Array allocated on the emscripten heap */\nexport declare class DracoUInt8Array {\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int16Array allocated on the emscripten heap */\nexport declare class DracoInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint16Array allocated on the emscripten heap */\nexport declare class DracoUInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int32Array allocated on the emscripten heap */\nexport declare class DracoInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint32Array allocated on the emscripten heap */\nexport declare class DracoUInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D metadata querier */\nexport declare class MetadataQuerier {\n constructor();\n\n HasEntry(metadata: Metadata, entry_name: string): string;\n GetIntEntry(metadata: Metadata, entry_name: string);\n GetIntEntryArray(metadata: Metadata, entry_name: string, out_values: DracoInt32Array);\n GetDoubleEntry(metadata: Metadata, entry_name: string): number;\n GetStringEntry(metadata: Metadata, entry_name: string): string;\n\n NumEntries(metadata: Metadata): number;\n GetEntryName(metadata: Metadata, entry_id: number): string;\n}\n\n/**\n * Draco3D Decoder class\n */\nexport declare class Decoder {\n constructor();\n\n GetEncodedGeometryType(in_buffer: DecoderBuffer): draco_EncodedGeometryType;\n\n DecodeBufferToPointCloud(in_buffer: DecoderBuffer, out_point_cloud: PointCloud): Status;\n DecodeBufferToMesh(in_buffer: DecoderBuffer, out_mesh: Mesh): Status;\n\n GetAttributeId(pc: PointCloud, type: draco_GeometryAttribute_Type): number;\n GetAttributeIdByName(pc: PointCloud, name: string): number;\n GetAttributeIdByMetadataEntry(pc: PointCloud, name: string, value: string): number;\n\n GetAttribute(pc: PointCloud, att_id: number): PointAttribute;\n GetAttributeByUniqueId(pc: PointCloud, unique_id: number): PointAttribute;\n\n GetMetadata(pc: PointCloud): Metadata;\n GetAttributeMetadata(pc: PointCloud, att_id: number): Metadata;\n\n GetFaceFromMesh(m: Mesh, face_id: number, out_values: DracoInt32Array): boolean;\n GetTriangleStripsFromMesh(m: Mesh, strip_values: DracoInt32Array);\n\n GetTrianglesUInt16Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n GetTrianglesUInt32Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n\n GetAttributeFloat(pa: PointAttribute, att_index: number, out_values: DracoFloat32Array): boolean;\n\n GetAttributeFloatForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoFloat32Array\n ): boolean;\n\n // Deprecated, use GetAttributeInt32ForAllPoints instead.\n GetAttributeIntForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n\n GetAttributeInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt8Array\n ): boolean;\n GetAttributeUInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt8Array\n ): boolean;\n GetAttributeInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt16Array\n ): boolean;\n GetAttributeUInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt16Array\n ): boolean;\n GetAttributeInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n GetAttributeUInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt32Array\n ): boolean;\n\n GetAttributeDataArrayForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n data_type: draco_DataType,\n out_size: number,\n out_values: VoidPtr\n ): boolean;\n\n SkipAttributeTransform(att_type: draco_GeometryAttribute_Type): void;\n}\n\n// DRACO WEB ENCODER IDL\n\n/** Draco3D metadata builder */\nexport declare class MetadataBuilder {\n constructor();\n AddStringEntry(metadata: Metadata, entry_name: string, entry_value: string);\n AddIntEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddDoubleEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddIntEntryArray(\n metadata: Metadata,\n entry_name: string,\n entry_value: Int32Array,\n num_values: number\n );\n}\n\n/** Draco3D point cloud builder */\n\nexport declare class PointCloudBuilder {\n constructor();\n PointCloudBuilder(): void;\n AddFloatAttribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Float32Array\n );\n AddInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int8Array\n );\n AddUInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint8Array\n );\n AddInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int16Array\n );\n AddUInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint16Array\n );\n AddInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int32Array\n );\n AddUInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint32Array\n );\n\n AddMetadata(pc: PointCloud, metadata: Metadata): boolean;\n SetMetadataForAttribute(pc: PointCloud, attribute_id: number, metadata: Metadata);\n}\n\n/** Draco3D mesh builder */\nexport declare class MeshBuilder extends PointCloudBuilder {\n constructor();\n AddFacesToMesh(mesh: Mesh, num_faces: number, faces: number[]): boolean;\n}\n\n/** Draco3D encoder */\nexport declare class Encoder {\n constructor();\n Encoder(): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(type: draco_GeometryAttribute_Type, quantization_bits: number);\n SetAttributeExplicitQuantization(\n type: draco_GeometryAttribute_Type,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeMeshToDracoBuffer(mesh: Mesh, encoded_data: DracoInt8Array);\n EncodePointCloudToDracoBuffer(\n pc: PointCloud,\n deduplicate_values: boolean,\n encoded_data: DracoInt8Array\n );\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D expert encoder */\nexport declare class ExpertEncoder {\n constructor();\n ExpertEncoder(pc: PointCloud): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(att_id: number, quantization_bits: number);\n SetAttributeExplicitQuantization(\n att_id: number,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeToDracoBuffer(deduplicate_values: boolean, encoded_data: DracoInt8Array);\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D module interface */\nexport interface Draco3D {\n // ENUMS\n\n // draco_EncodedGeometryType\n readonly INVALID_GEOMETRY_TYPE: draco_EncodedGeometryType;\n readonly POINT_CLOUD: draco_EncodedGeometryType;\n readonly TRIANGULAR_MESH: draco_EncodedGeometryType;\n\n // enum draco_GeometryAttribute_Type\n readonly INVALID: draco_GeometryAttribute_Type;\n readonly POSITION: draco_GeometryAttribute_Type;\n readonly NORMAL: draco_GeometryAttribute_Type;\n readonly COLOR: draco_GeometryAttribute_Type;\n readonly TEX_COORD: draco_GeometryAttribute_Type;\n readonly GENERIC: draco_GeometryAttribute_Type;\n\n // enum draco_DataType\n readonly DT_INVALID: draco_DataType;\n readonly DT_INT8: draco_DataType;\n readonly DT_UINT8: draco_DataType;\n readonly DT_INT16: draco_DataType;\n readonly DT_UINT16: draco_DataType;\n readonly DT_INT32: draco_DataType;\n readonly DT_UINT32: draco_DataType;\n readonly DT_INT64: draco_DataType;\n readonly DT_UINT64: draco_DataType;\n readonly DT_FLOAT32: draco_DataType;\n readonly DT_FLOAT64: draco_DataType;\n readonly DT_BOOL: draco_DataType;\n readonly DT_TYPES_COUNT: draco_DataType;\n\n readonly Mesh: typeof Mesh;\n readonly PointCloud: typeof PointCloud;\n readonly Metadata: typeof Metadata;\n\n readonly Encoder: typeof Encoder;\n readonly MeshBuilder: typeof MeshBuilder;\n readonly MetadataBuilder: typeof MetadataBuilder;\n\n readonly MetadataQuerier: typeof MetadataQuerier;\n readonly Decoder: typeof Decoder;\n readonly DecoderBuffer: typeof DecoderBuffer;\n\n readonly DracoFloat32Array: typeof DracoFloat32Array;\n readonly DracoInt8Array: typeof DracoInt8Array;\n readonly DracoUInt8Array: typeof DracoUInt8Array;\n readonly DracoInt16Array: typeof DracoInt16Array;\n readonly DracoUInt16Array: typeof DracoUInt16Array;\n readonly DracoInt32Array: typeof DracoInt32Array;\n readonly DracoUInt32Array: typeof DracoUInt32Array;\n\n readonly AttributeQuantizationTransform: typeof AttributeQuantizationTransform;\n\n // createEncoderModule(): Encoder;\n // createDecoderModule(): Decoder;\n destroy(resource: any): void;\n _malloc(byteLength: number): number;\n _free(ptr: number): void;\n\n HEAPF32: {\n buffer: ArrayBuffer;\n };\n}\n"],"file":"draco3d-types.js"}
|
|
1
|
+
{"version":3,"file":"draco3d-types.js","names":["draco_GeometryAttribute_Type","draco_EncodedGeometryType","draco_DataType","draco_StatusCode"],"sources":["../../../src/draco3d/draco3d-types.ts"],"sourcesContent":["// A set of typescript types manually adapted from the Draco web IDL\n// Draco JS is a bit tricky to work with due to the C++ emscripten code base\n// sparse documentation, so these types provide an extra safety net.\n\n// Typescript defs adapted from draco3d emscripten IDL\n// https://raw.githubusercontent.com/google/draco/master/src/draco/javascript/emscripten/draco_web_decoder.idl\n// Interface exposed to emscripten's WebIDL Binder.\n// http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html\n\n/* eslint-disable camelcase */\n\n/** Draco3D untyped memory pointer */\ntype VoidPtr = any;\n\n// DRACO WEB DECODER IDL\n\n/** Draco3D geometry attribute type */\nexport enum draco_GeometryAttribute_Type {\n 'draco_GeometryAttribute::INVALID',\n 'draco_GeometryAttribute::POSITION',\n 'draco_GeometryAttribute::NORMAL',\n 'draco_GeometryAttribute::COLOR',\n 'draco_GeometryAttribute::TEX_COORD',\n 'draco_GeometryAttribute::GENERIC'\n}\n\n/** Draco3D encoded geometry type */\nexport enum draco_EncodedGeometryType {\n 'draco::INVALID_GEOMETRY_TYPE',\n 'draco::POINT_CLOUD',\n 'draco::TRIANGULAR_MESH'\n}\n\n/** Draco3D data type */\nexport enum draco_DataType {\n 'draco::DT_INVALID',\n 'draco::DT_INT8',\n 'draco::DT_UINT8',\n 'draco::DT_INT16',\n 'draco::DT_UINT16',\n 'draco::DT_INT32',\n 'draco::DT_UINT32',\n 'draco::DT_INT64',\n 'draco::DT_UINT64',\n 'draco::DT_FLOAT32',\n 'draco::DT_FLOAT64',\n 'draco::DT_BOOL',\n 'draco::DT_TYPES_COUNT'\n}\n\n/** Draco3D status code */\nexport enum draco_StatusCode {\n 'draco_Status::OK',\n 'draco_Status::DRACO_ERROR',\n 'draco_Status::IO_ERROR',\n 'draco_Status::INVALID_PARAMETER',\n 'draco_Status::UNSUPPORTED_VERSION',\n 'draco_Status::UNKNOWN_VERSION'\n}\n\n/** Draco3D decoder buffer allocated on emscripten heap */\nexport declare class DecoderBuffer {\n constructor();\n Init(data: Int8Array, data_size: number): void;\n}\n\n/** Draco3D attribute transform data */\nexport declare class AttributeTransformData {\n constructor();\n transform_type(): number;\n}\n\n/** Draco3D geometry attribute */\nexport declare class GeometryAttribute {\n constructor();\n}\n\n/** Draco3D point attribute */\nexport declare class PointAttribute {\n ptr: VoidPtr;\n\n constructor();\n size(): number;\n GetAttributeTransformData(): AttributeTransformData;\n\n // From GeometryAttribute\n attribute_type(): number;\n data_type(): number;\n num_components(): number;\n normalized(): boolean;\n byte_stride(): number;\n byte_offset(): number;\n unique_id(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeQuantizationTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n min_value(axis: number): number;\n range(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeOctahedronTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n}\n\n/** Draco3D point cloud */\nexport declare class PointCloud {\n ptr: VoidPtr;\n\n constructor();\n num_attributes(): number;\n num_points(): number;\n}\n\n/** Draco3D mesh */\nexport declare class Mesh extends PointCloud {\n constructor();\n num_faces(): number;\n}\n\n/** Draco3D metadata */\nexport declare class Metadata {\n ptr: VoidPtr;\n\n constructor();\n}\n\n/** Draco3D status */\nexport declare class Status {\n constructor();\n code(): draco_StatusCode;\n ok(): boolean;\n error_msg(): string;\n}\n\n/** Draco3D Float32Array allocated on the emscripten heap */\nexport declare class DracoFloat32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int8Array allocated on the emscripten heap */\nexport declare class DracoInt8Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint8Array allocated on the emscripten heap */\nexport declare class DracoUInt8Array {\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int16Array allocated on the emscripten heap */\nexport declare class DracoInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint16Array allocated on the emscripten heap */\nexport declare class DracoUInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int32Array allocated on the emscripten heap */\nexport declare class DracoInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint32Array allocated on the emscripten heap */\nexport declare class DracoUInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D metadata querier */\nexport declare class MetadataQuerier {\n constructor();\n\n HasEntry(metadata: Metadata, entry_name: string): string;\n GetIntEntry(metadata: Metadata, entry_name: string);\n GetIntEntryArray(metadata: Metadata, entry_name: string, out_values: DracoInt32Array);\n GetDoubleEntry(metadata: Metadata, entry_name: string): number;\n GetStringEntry(metadata: Metadata, entry_name: string): string;\n\n NumEntries(metadata: Metadata): number;\n GetEntryName(metadata: Metadata, entry_id: number): string;\n}\n\n/**\n * Draco3D Decoder class\n */\nexport declare class Decoder {\n constructor();\n\n GetEncodedGeometryType(in_buffer: DecoderBuffer): draco_EncodedGeometryType;\n\n DecodeBufferToPointCloud(in_buffer: DecoderBuffer, out_point_cloud: PointCloud): Status;\n DecodeBufferToMesh(in_buffer: DecoderBuffer, out_mesh: Mesh): Status;\n\n GetAttributeId(pc: PointCloud, type: draco_GeometryAttribute_Type): number;\n GetAttributeIdByName(pc: PointCloud, name: string): number;\n GetAttributeIdByMetadataEntry(pc: PointCloud, name: string, value: string): number;\n\n GetAttribute(pc: PointCloud, att_id: number): PointAttribute;\n GetAttributeByUniqueId(pc: PointCloud, unique_id: number): PointAttribute;\n\n GetMetadata(pc: PointCloud): Metadata;\n GetAttributeMetadata(pc: PointCloud, att_id: number): Metadata;\n\n GetFaceFromMesh(m: Mesh, face_id: number, out_values: DracoInt32Array): boolean;\n GetTriangleStripsFromMesh(m: Mesh, strip_values: DracoInt32Array);\n\n GetTrianglesUInt16Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n GetTrianglesUInt32Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n\n GetAttributeFloat(pa: PointAttribute, att_index: number, out_values: DracoFloat32Array): boolean;\n\n GetAttributeFloatForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoFloat32Array\n ): boolean;\n\n // Deprecated, use GetAttributeInt32ForAllPoints instead.\n GetAttributeIntForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n\n GetAttributeInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt8Array\n ): boolean;\n GetAttributeUInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt8Array\n ): boolean;\n GetAttributeInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt16Array\n ): boolean;\n GetAttributeUInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt16Array\n ): boolean;\n GetAttributeInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n GetAttributeUInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt32Array\n ): boolean;\n\n GetAttributeDataArrayForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n data_type: draco_DataType,\n out_size: number,\n out_values: VoidPtr\n ): boolean;\n\n SkipAttributeTransform(att_type: draco_GeometryAttribute_Type): void;\n}\n\n// DRACO WEB ENCODER IDL\n\n/** Draco3D metadata builder */\nexport declare class MetadataBuilder {\n constructor();\n AddStringEntry(metadata: Metadata, entry_name: string, entry_value: string);\n AddIntEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddDoubleEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddIntEntryArray(\n metadata: Metadata,\n entry_name: string,\n entry_value: Int32Array,\n num_values: number\n );\n}\n\n/** Draco3D point cloud builder */\n\nexport declare class PointCloudBuilder {\n constructor();\n PointCloudBuilder(): void;\n AddFloatAttribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Float32Array\n );\n AddInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int8Array\n );\n AddUInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint8Array\n );\n AddInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int16Array\n );\n AddUInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint16Array\n );\n AddInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int32Array\n );\n AddUInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint32Array\n );\n\n AddMetadata(pc: PointCloud, metadata: Metadata): boolean;\n SetMetadataForAttribute(pc: PointCloud, attribute_id: number, metadata: Metadata);\n}\n\n/** Draco3D mesh builder */\nexport declare class MeshBuilder extends PointCloudBuilder {\n constructor();\n AddFacesToMesh(mesh: Mesh, num_faces: number, faces: number[]): boolean;\n}\n\n/** Draco3D encoder */\nexport declare class Encoder {\n constructor();\n Encoder(): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(type: draco_GeometryAttribute_Type, quantization_bits: number);\n SetAttributeExplicitQuantization(\n type: draco_GeometryAttribute_Type,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeMeshToDracoBuffer(mesh: Mesh, encoded_data: DracoInt8Array);\n EncodePointCloudToDracoBuffer(\n pc: PointCloud,\n deduplicate_values: boolean,\n encoded_data: DracoInt8Array\n );\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D expert encoder */\nexport declare class ExpertEncoder {\n constructor();\n ExpertEncoder(pc: PointCloud): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(att_id: number, quantization_bits: number);\n SetAttributeExplicitQuantization(\n att_id: number,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeToDracoBuffer(deduplicate_values: boolean, encoded_data: DracoInt8Array);\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D module interface */\nexport interface Draco3D {\n // ENUMS\n\n // draco_EncodedGeometryType\n readonly INVALID_GEOMETRY_TYPE: draco_EncodedGeometryType;\n readonly POINT_CLOUD: draco_EncodedGeometryType;\n readonly TRIANGULAR_MESH: draco_EncodedGeometryType;\n\n // enum draco_GeometryAttribute_Type\n readonly INVALID: draco_GeometryAttribute_Type;\n readonly POSITION: draco_GeometryAttribute_Type;\n readonly NORMAL: draco_GeometryAttribute_Type;\n readonly COLOR: draco_GeometryAttribute_Type;\n readonly TEX_COORD: draco_GeometryAttribute_Type;\n readonly GENERIC: draco_GeometryAttribute_Type;\n\n // enum draco_DataType\n readonly DT_INVALID: draco_DataType;\n readonly DT_INT8: draco_DataType;\n readonly DT_UINT8: draco_DataType;\n readonly DT_INT16: draco_DataType;\n readonly DT_UINT16: draco_DataType;\n readonly DT_INT32: draco_DataType;\n readonly DT_UINT32: draco_DataType;\n readonly DT_INT64: draco_DataType;\n readonly DT_UINT64: draco_DataType;\n readonly DT_FLOAT32: draco_DataType;\n readonly DT_FLOAT64: draco_DataType;\n readonly DT_BOOL: draco_DataType;\n readonly DT_TYPES_COUNT: draco_DataType;\n\n readonly Mesh: typeof Mesh;\n readonly PointCloud: typeof PointCloud;\n readonly Metadata: typeof Metadata;\n\n readonly Encoder: typeof Encoder;\n readonly MeshBuilder: typeof MeshBuilder;\n readonly MetadataBuilder: typeof MetadataBuilder;\n\n readonly MetadataQuerier: typeof MetadataQuerier;\n readonly Decoder: typeof Decoder;\n readonly DecoderBuffer: typeof DecoderBuffer;\n\n readonly DracoFloat32Array: typeof DracoFloat32Array;\n readonly DracoInt8Array: typeof DracoInt8Array;\n readonly DracoUInt8Array: typeof DracoUInt8Array;\n readonly DracoInt16Array: typeof DracoInt16Array;\n readonly DracoUInt16Array: typeof DracoUInt16Array;\n readonly DracoInt32Array: typeof DracoInt32Array;\n readonly DracoUInt32Array: typeof DracoUInt32Array;\n\n readonly AttributeQuantizationTransform: typeof AttributeQuantizationTransform;\n\n // createEncoderModule(): Encoder;\n // createDecoderModule(): Decoder;\n destroy(resource: any): void;\n _malloc(byteLength: number): number;\n _free(ptr: number): void;\n\n HEAPF32: {\n buffer: ArrayBuffer;\n };\n}\n"],"mappings":";;;;;;IAiBYA,4BAA4B;AAAA;AAAA,WAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;AAAA,GAA5BA,4BAA4B,4CAA5BA,4BAA4B;AAAA,IAU5BC,yBAAyB;AAAA;AAAA,WAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;AAAA,GAAzBA,yBAAyB,yCAAzBA,yBAAyB;AAAA,IAOzBC,cAAc;AAAA;AAAA,WAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;AAAA,GAAdA,cAAc,8BAAdA,cAAc;AAAA,IAiBdC,gBAAgB;AAAA;AAAA,WAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;AAAA,GAAhBA,gBAAgB,gCAAhBA,gBAAgB"}
|
package/dist/es5/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
7
|
+
exports.DracoLoader = void 0;
|
|
8
8
|
Object.defineProperty(exports, "DracoWorkerLoader", {
|
|
9
9
|
enumerable: true,
|
|
10
10
|
get: function get() {
|
|
@@ -17,30 +17,18 @@ Object.defineProperty(exports, "DracoWriter", {
|
|
|
17
17
|
return _dracoWriter.DracoWriter;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
-
exports._TypecheckDracoLoader = exports.
|
|
21
|
-
|
|
20
|
+
exports._TypecheckDracoLoader = exports.DracoWriterWorker = void 0;
|
|
22
21
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
23
|
-
|
|
24
22
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
25
|
-
|
|
26
23
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
24
|
var _dracoLoader = require("./draco-loader");
|
|
29
|
-
|
|
30
25
|
var _dracoParser = _interopRequireDefault(require("./lib/draco-parser"));
|
|
31
|
-
|
|
32
26
|
var _dracoModuleLoader = require("./lib/draco-module-loader");
|
|
33
|
-
|
|
34
27
|
var _version = require("./lib/utils/version");
|
|
35
|
-
|
|
36
28
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
37
|
-
|
|
38
29
|
var _dracoWriter = require("./draco-writer");
|
|
39
|
-
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
43
|
-
|
|
30
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
44
32
|
var DracoWriterWorker = {
|
|
45
33
|
id: _workerUtils.isBrowser ? 'draco-writer' : 'draco-writer-nodejs',
|
|
46
34
|
name: 'Draco compressed geometry writer',
|
|
@@ -52,41 +40,34 @@ var DracoWriterWorker = {
|
|
|
52
40
|
source: null
|
|
53
41
|
}
|
|
54
42
|
};
|
|
55
|
-
exports.DracoWriterWorker = DracoWriterWorker;
|
|
56
43
|
|
|
44
|
+
exports.DracoWriterWorker = DracoWriterWorker;
|
|
57
45
|
var DracoLoader = _objectSpread(_objectSpread({}, _dracoLoader.DracoLoader), {}, {
|
|
58
46
|
parse: parse
|
|
59
47
|
});
|
|
60
|
-
|
|
61
48
|
exports.DracoLoader = DracoLoader;
|
|
62
|
-
|
|
63
49
|
function parse(_x, _x2) {
|
|
64
50
|
return _parse.apply(this, arguments);
|
|
65
51
|
}
|
|
66
|
-
|
|
67
52
|
function _parse() {
|
|
68
53
|
_parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
69
54
|
var _yield$loadDracoDecod, draco, dracoParser;
|
|
70
|
-
|
|
71
55
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
72
56
|
while (1) {
|
|
73
57
|
switch (_context.prev = _context.next) {
|
|
74
58
|
case 0:
|
|
75
59
|
_context.next = 2;
|
|
76
60
|
return (0, _dracoModuleLoader.loadDracoDecoderModule)(options);
|
|
77
|
-
|
|
78
61
|
case 2:
|
|
79
62
|
_yield$loadDracoDecod = _context.sent;
|
|
80
63
|
draco = _yield$loadDracoDecod.draco;
|
|
81
64
|
dracoParser = new _dracoParser.default(draco);
|
|
82
65
|
_context.prev = 5;
|
|
83
66
|
return _context.abrupt("return", dracoParser.parseSync(arrayBuffer, options === null || options === void 0 ? void 0 : options.draco));
|
|
84
|
-
|
|
85
67
|
case 7:
|
|
86
68
|
_context.prev = 7;
|
|
87
69
|
dracoParser.destroy();
|
|
88
70
|
return _context.finish(7);
|
|
89
|
-
|
|
90
71
|
case 10:
|
|
91
72
|
case "end":
|
|
92
73
|
return _context.stop();
|
|
@@ -96,7 +77,6 @@ function _parse() {
|
|
|
96
77
|
}));
|
|
97
78
|
return _parse.apply(this, arguments);
|
|
98
79
|
}
|
|
99
|
-
|
|
100
80
|
var _TypecheckDracoLoader = DracoLoader;
|
|
101
81
|
exports._TypecheckDracoLoader = _TypecheckDracoLoader;
|
|
102
82
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["DracoWriterWorker","id","isBrowser","name","module","version","VERSION","worker","options","draco","source","DracoLoader","DracoWorkerLoader","parse","arrayBuffer","loadDracoDecoderModule","dracoParser","DracoParser","parseSync","destroy","_TypecheckDracoLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {DracoMesh, DracoLoaderData} from './lib/draco-types';\nimport type {DracoLoaderOptions} from './draco-loader';\nimport {DracoLoader as DracoWorkerLoader} from './draco-loader';\nimport DracoParser from './lib/draco-parser';\nimport {loadDracoDecoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\nimport {isBrowser} from '@loaders.gl/worker-utils';\n\n// Draco data types\n\nexport type {DracoMesh, DracoLoaderData};\n\n// Draco Writer\n\nexport type {DracoWriterOptions} from './draco-writer';\nexport {DracoWriter} from './draco-writer';\n\n/**\n * Browser worker doesn't work because of issue during \"draco_encoder.js\" loading.\n * Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.\n */\nexport const DracoWriterWorker = {\n id: isBrowser ? 'draco-writer' : 'draco-writer-nodejs',\n name: 'Draco compressed geometry writer',\n module: 'draco',\n version: VERSION,\n worker: true,\n options: {\n draco: {},\n source: null\n }\n};\n\n// Draco Loader\n\nexport type {DracoLoaderOptions};\nexport {DracoWorkerLoader};\n\n/**\n * Loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n ...DracoWorkerLoader,\n parse\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<DracoMesh> {\n const {draco} = await loadDracoDecoderModule(options);\n const dracoParser = new DracoParser(draco);\n try {\n return dracoParser.parseSync(arrayBuffer, options?.draco);\n } finally {\n dracoParser.destroy();\n }\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckDracoLoader: LoaderWithParser = DracoLoader;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AASA;AAA2C;AAAA;AAMpC,IAAMA,iBAAiB,GAAG;EAC/BC,EAAE,EAAEC,sBAAS,GAAG,cAAc,GAAG,qBAAqB;EACtDC,IAAI,EAAE,kCAAkC;EACxCC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEC,gBAAO;EAChBC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACPC,KAAK,EAAE,CAAC,CAAC;IACTC,MAAM,EAAE;EACV;AACF,CAAC;;AAAC;AAUK,IAAMC,WAAW,mCACnBC,wBAAiB;EACpBC,KAAK,EAALA;AAAK,EACN;AAAC;AAAA,SAEaA,KAAK;EAAA;AAAA;AAAA;EAAA,mEAApB,iBAAqBC,WAAwB,EAAEN,OAA4B;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACnD,IAAAO,yCAAsB,EAACP,OAAO,CAAC;UAAA;YAAA;YAA9CC,KAAK,yBAALA,KAAK;YACNO,WAAW,GAAG,IAAIC,oBAAW,CAACR,KAAK,CAAC;YAAA;YAAA,iCAEjCO,WAAW,CAACE,SAAS,CAACJ,WAAW,EAAEN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;UAAA;YAAA;YAEzDO,WAAW,CAACG,OAAO,EAAE;YAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEzB;EAAA;AAAA;AAGM,IAAMC,qBAAuC,GAAGT,WAAW;AAAC"}
|
|
@@ -1,33 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
-
|
|
12
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
-
|
|
16
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
-
|
|
20
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
14
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
23
|
-
|
|
24
15
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
-
|
|
26
16
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
19
|
|
|
32
20
|
var GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP = {
|
|
33
21
|
POSITION: 'POSITION',
|
|
@@ -35,9 +23,7 @@ var GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP = {
|
|
|
35
23
|
COLOR_0: 'COLOR',
|
|
36
24
|
TEXCOORD_0: 'TEX_COORD'
|
|
37
25
|
};
|
|
38
|
-
|
|
39
26
|
var noop = function noop() {};
|
|
40
|
-
|
|
41
27
|
var DracoBuilder = function () {
|
|
42
28
|
function DracoBuilder(draco) {
|
|
43
29
|
(0, _classCallCheck2.default)(this, DracoBuilder);
|
|
@@ -51,7 +37,6 @@ var DracoBuilder = function () {
|
|
|
51
37
|
this.dracoMeshBuilder = new this.draco.MeshBuilder();
|
|
52
38
|
this.dracoMetadataBuilder = new this.draco.MetadataBuilder();
|
|
53
39
|
}
|
|
54
|
-
|
|
55
40
|
(0, _createClass2.default)(DracoBuilder, [{
|
|
56
41
|
key: "destroy",
|
|
57
42
|
value: function destroy() {
|
|
@@ -62,56 +47,53 @@ var DracoBuilder = function () {
|
|
|
62
47
|
this.dracoEncoder = null;
|
|
63
48
|
this.draco = null;
|
|
64
49
|
}
|
|
50
|
+
|
|
65
51
|
}, {
|
|
66
52
|
key: "destroyEncodedObject",
|
|
67
|
-
value:
|
|
53
|
+
value:
|
|
54
|
+
function destroyEncodedObject(object) {
|
|
68
55
|
if (object) {
|
|
69
56
|
this.draco.destroy(object);
|
|
70
57
|
}
|
|
71
58
|
}
|
|
59
|
+
|
|
72
60
|
}, {
|
|
73
61
|
key: "encodeSync",
|
|
74
|
-
value:
|
|
62
|
+
value:
|
|
63
|
+
function encodeSync(mesh) {
|
|
75
64
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
76
65
|
this.log = noop;
|
|
77
|
-
|
|
78
66
|
this._setOptions(options);
|
|
79
|
-
|
|
80
67
|
return options.pointcloud ? this._encodePointCloud(mesh, options) : this._encodeMesh(mesh, options);
|
|
81
68
|
}
|
|
69
|
+
|
|
82
70
|
}, {
|
|
83
71
|
key: "_getAttributesFromMesh",
|
|
84
|
-
value:
|
|
85
|
-
var attributes = _objectSpread(_objectSpread({}, mesh), mesh.attributes);
|
|
72
|
+
value:
|
|
86
73
|
|
|
74
|
+
function _getAttributesFromMesh(mesh) {
|
|
75
|
+
var attributes = _objectSpread(_objectSpread({}, mesh), mesh.attributes);
|
|
87
76
|
if (mesh.indices) {
|
|
88
77
|
attributes.indices = mesh.indices;
|
|
89
78
|
}
|
|
90
|
-
|
|
91
79
|
return attributes;
|
|
92
80
|
}
|
|
93
81
|
}, {
|
|
94
82
|
key: "_encodePointCloud",
|
|
95
83
|
value: function _encodePointCloud(pointcloud, options) {
|
|
96
84
|
var dracoPointCloud = new this.draco.PointCloud();
|
|
97
|
-
|
|
98
85
|
if (options.metadata) {
|
|
99
86
|
this._addGeometryMetadata(dracoPointCloud, options.metadata);
|
|
100
87
|
}
|
|
101
|
-
|
|
102
88
|
var attributes = this._getAttributesFromMesh(pointcloud);
|
|
103
89
|
|
|
104
90
|
this._createDracoPointCloud(dracoPointCloud, attributes, options);
|
|
105
|
-
|
|
106
91
|
var dracoData = new this.draco.DracoInt8Array();
|
|
107
|
-
|
|
108
92
|
try {
|
|
109
93
|
var encodedLen = this.dracoEncoder.EncodePointCloudToDracoBuffer(dracoPointCloud, false, dracoData);
|
|
110
|
-
|
|
111
94
|
if (!(encodedLen > 0)) {
|
|
112
95
|
throw new Error('Draco encoding failed.');
|
|
113
96
|
}
|
|
114
|
-
|
|
115
97
|
this.log("DRACO encoded ".concat(dracoPointCloud.num_points(), " points\n with ").concat(dracoPointCloud.num_attributes(), " attributes into ").concat(encodedLen, " bytes"));
|
|
116
98
|
return dracoInt8ArrayToArrayBuffer(dracoData);
|
|
117
99
|
} finally {
|
|
@@ -123,24 +105,18 @@ var DracoBuilder = function () {
|
|
|
123
105
|
key: "_encodeMesh",
|
|
124
106
|
value: function _encodeMesh(mesh, options) {
|
|
125
107
|
var dracoMesh = new this.draco.Mesh();
|
|
126
|
-
|
|
127
108
|
if (options.metadata) {
|
|
128
109
|
this._addGeometryMetadata(dracoMesh, options.metadata);
|
|
129
110
|
}
|
|
130
|
-
|
|
131
111
|
var attributes = this._getAttributesFromMesh(mesh);
|
|
132
112
|
|
|
133
113
|
this._createDracoMesh(dracoMesh, attributes, options);
|
|
134
|
-
|
|
135
114
|
var dracoData = new this.draco.DracoInt8Array();
|
|
136
|
-
|
|
137
115
|
try {
|
|
138
116
|
var encodedLen = this.dracoEncoder.EncodeMeshToDracoBuffer(dracoMesh, dracoData);
|
|
139
|
-
|
|
140
117
|
if (encodedLen <= 0) {
|
|
141
118
|
throw new Error('Draco encoding failed.');
|
|
142
119
|
}
|
|
143
|
-
|
|
144
120
|
this.log("DRACO encoded ".concat(dracoMesh.num_points(), " points\n with ").concat(dracoMesh.num_attributes(), " attributes into ").concat(encodedLen, " bytes"));
|
|
145
121
|
return dracoInt8ArrayToArrayBuffer(dracoData);
|
|
146
122
|
} finally {
|
|
@@ -148,20 +124,19 @@ var DracoBuilder = function () {
|
|
|
148
124
|
this.destroyEncodedObject(dracoMesh);
|
|
149
125
|
}
|
|
150
126
|
}
|
|
127
|
+
|
|
151
128
|
}, {
|
|
152
129
|
key: "_setOptions",
|
|
153
|
-
value:
|
|
130
|
+
value:
|
|
131
|
+
function _setOptions(options) {
|
|
154
132
|
if ('speed' in options) {
|
|
155
133
|
var _this$dracoEncoder;
|
|
156
|
-
|
|
157
134
|
(_this$dracoEncoder = this.dracoEncoder).SetSpeedOptions.apply(_this$dracoEncoder, (0, _toConsumableArray2.default)(options.speed));
|
|
158
135
|
}
|
|
159
|
-
|
|
160
136
|
if ('method' in options) {
|
|
161
137
|
var dracoMethod = this.draco[options.method || 'MESH_SEQUENTIAL_ENCODING'];
|
|
162
138
|
this.dracoEncoder.SetEncodingMethod(dracoMethod);
|
|
163
139
|
}
|
|
164
|
-
|
|
165
140
|
if ('quantization' in options) {
|
|
166
141
|
for (var attribute in options.quantization) {
|
|
167
142
|
var bits = options.quantization[attribute];
|
|
@@ -170,26 +145,22 @@ var DracoBuilder = function () {
|
|
|
170
145
|
}
|
|
171
146
|
}
|
|
172
147
|
}
|
|
148
|
+
|
|
173
149
|
}, {
|
|
174
150
|
key: "_createDracoMesh",
|
|
175
|
-
value:
|
|
151
|
+
value:
|
|
152
|
+
function _createDracoMesh(dracoMesh, attributes, options) {
|
|
176
153
|
var optionalMetadata = options.attributesMetadata || {};
|
|
177
|
-
|
|
178
154
|
try {
|
|
179
155
|
var positions = this._getPositionAttribute(attributes);
|
|
180
|
-
|
|
181
156
|
if (!positions) {
|
|
182
157
|
throw new Error('positions');
|
|
183
158
|
}
|
|
184
|
-
|
|
185
159
|
var vertexCount = positions.length / 3;
|
|
186
|
-
|
|
187
160
|
for (var _attributeName in attributes) {
|
|
188
161
|
var attribute = attributes[_attributeName];
|
|
189
162
|
_attributeName = GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP[_attributeName] || _attributeName;
|
|
190
|
-
|
|
191
163
|
var uniqueId = this._addAttributeToMesh(dracoMesh, _attributeName, attribute, vertexCount);
|
|
192
|
-
|
|
193
164
|
if (uniqueId !== -1) {
|
|
194
165
|
this._addAttributeMetadata(dracoMesh, uniqueId, _objectSpread({
|
|
195
166
|
name: _attributeName
|
|
@@ -200,29 +171,24 @@ var DracoBuilder = function () {
|
|
|
200
171
|
this.destroyEncodedObject(dracoMesh);
|
|
201
172
|
throw error;
|
|
202
173
|
}
|
|
203
|
-
|
|
204
174
|
return dracoMesh;
|
|
205
175
|
}
|
|
176
|
+
|
|
206
177
|
}, {
|
|
207
178
|
key: "_createDracoPointCloud",
|
|
208
|
-
value:
|
|
179
|
+
value:
|
|
180
|
+
function _createDracoPointCloud(dracoPointCloud, attributes, options) {
|
|
209
181
|
var optionalMetadata = options.attributesMetadata || {};
|
|
210
|
-
|
|
211
182
|
try {
|
|
212
183
|
var positions = this._getPositionAttribute(attributes);
|
|
213
|
-
|
|
214
184
|
if (!positions) {
|
|
215
185
|
throw new Error('positions');
|
|
216
186
|
}
|
|
217
|
-
|
|
218
187
|
var vertexCount = positions.length / 3;
|
|
219
|
-
|
|
220
188
|
for (var _attributeName2 in attributes) {
|
|
221
189
|
var attribute = attributes[_attributeName2];
|
|
222
190
|
_attributeName2 = GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP[_attributeName2] || _attributeName2;
|
|
223
|
-
|
|
224
191
|
var uniqueId = this._addAttributeToMesh(dracoPointCloud, _attributeName2, attribute, vertexCount);
|
|
225
|
-
|
|
226
192
|
if (uniqueId !== -1) {
|
|
227
193
|
this._addAttributeMetadata(dracoPointCloud, uniqueId, _objectSpread({
|
|
228
194
|
name: _attributeName2
|
|
@@ -233,80 +199,68 @@ var DracoBuilder = function () {
|
|
|
233
199
|
this.destroyEncodedObject(dracoPointCloud);
|
|
234
200
|
throw error;
|
|
235
201
|
}
|
|
236
|
-
|
|
237
202
|
return dracoPointCloud;
|
|
238
203
|
}
|
|
204
|
+
|
|
239
205
|
}, {
|
|
240
206
|
key: "_addAttributeToMesh",
|
|
241
|
-
value:
|
|
207
|
+
value:
|
|
208
|
+
function _addAttributeToMesh(mesh, attributeName, attribute, vertexCount) {
|
|
242
209
|
if (!ArrayBuffer.isView(attribute)) {
|
|
243
210
|
return -1;
|
|
244
211
|
}
|
|
245
|
-
|
|
246
212
|
var type = this._getDracoAttributeType(attributeName);
|
|
247
|
-
|
|
248
213
|
var size = attribute.length / vertexCount;
|
|
249
|
-
|
|
250
214
|
if (type === 'indices') {
|
|
251
215
|
var numFaces = attribute.length / 3;
|
|
252
216
|
this.log("Adding attribute ".concat(attributeName, ", size ").concat(numFaces));
|
|
217
|
+
|
|
253
218
|
this.dracoMeshBuilder.AddFacesToMesh(mesh, numFaces, attribute);
|
|
254
219
|
return -1;
|
|
255
220
|
}
|
|
256
|
-
|
|
257
221
|
this.log("Adding attribute ".concat(attributeName, ", size ").concat(size));
|
|
258
222
|
var builder = this.dracoMeshBuilder;
|
|
259
223
|
var buffer = attribute.buffer;
|
|
260
|
-
|
|
261
224
|
switch (attribute.constructor) {
|
|
262
225
|
case Int8Array:
|
|
263
226
|
return builder.AddInt8Attribute(mesh, type, vertexCount, size, new Int8Array(buffer));
|
|
264
|
-
|
|
265
227
|
case Int16Array:
|
|
266
228
|
return builder.AddInt16Attribute(mesh, type, vertexCount, size, new Int16Array(buffer));
|
|
267
|
-
|
|
268
229
|
case Int32Array:
|
|
269
230
|
return builder.AddInt32Attribute(mesh, type, vertexCount, size, new Int32Array(buffer));
|
|
270
|
-
|
|
271
231
|
case Uint8Array:
|
|
272
232
|
case Uint8ClampedArray:
|
|
273
233
|
return builder.AddUInt8Attribute(mesh, type, vertexCount, size, new Uint8Array(buffer));
|
|
274
|
-
|
|
275
234
|
case Uint16Array:
|
|
276
235
|
return builder.AddUInt16Attribute(mesh, type, vertexCount, size, new Uint16Array(buffer));
|
|
277
|
-
|
|
278
236
|
case Uint32Array:
|
|
279
237
|
return builder.AddUInt32Attribute(mesh, type, vertexCount, size, new Uint32Array(buffer));
|
|
280
|
-
|
|
281
238
|
case Float32Array:
|
|
282
239
|
default:
|
|
283
240
|
return builder.AddFloatAttribute(mesh, type, vertexCount, size, new Float32Array(buffer));
|
|
284
241
|
}
|
|
285
242
|
}
|
|
243
|
+
|
|
286
244
|
}, {
|
|
287
245
|
key: "_getDracoAttributeType",
|
|
288
|
-
value:
|
|
246
|
+
value:
|
|
247
|
+
function _getDracoAttributeType(attributeName) {
|
|
289
248
|
switch (attributeName.toLowerCase()) {
|
|
290
249
|
case 'indices':
|
|
291
250
|
return 'indices';
|
|
292
|
-
|
|
293
251
|
case 'position':
|
|
294
252
|
case 'positions':
|
|
295
253
|
case 'vertices':
|
|
296
254
|
return this.draco.POSITION;
|
|
297
|
-
|
|
298
255
|
case 'normal':
|
|
299
256
|
case 'normals':
|
|
300
257
|
return this.draco.NORMAL;
|
|
301
|
-
|
|
302
258
|
case 'color':
|
|
303
259
|
case 'colors':
|
|
304
260
|
return this.draco.COLOR;
|
|
305
|
-
|
|
306
261
|
case 'texcoord':
|
|
307
262
|
case 'texcoords':
|
|
308
263
|
return this.draco.TEX_COORD;
|
|
309
|
-
|
|
310
264
|
default:
|
|
311
265
|
return this.draco.GENERIC;
|
|
312
266
|
}
|
|
@@ -316,46 +270,43 @@ var DracoBuilder = function () {
|
|
|
316
270
|
value: function _getPositionAttribute(attributes) {
|
|
317
271
|
for (var _attributeName3 in attributes) {
|
|
318
272
|
var attribute = attributes[_attributeName3];
|
|
319
|
-
|
|
320
273
|
var dracoType = this._getDracoAttributeType(_attributeName3);
|
|
321
|
-
|
|
322
274
|
if (dracoType === this.draco.POSITION) {
|
|
323
275
|
return attribute;
|
|
324
276
|
}
|
|
325
277
|
}
|
|
326
|
-
|
|
327
278
|
return null;
|
|
328
279
|
}
|
|
280
|
+
|
|
329
281
|
}, {
|
|
330
282
|
key: "_addGeometryMetadata",
|
|
331
|
-
value:
|
|
283
|
+
value:
|
|
284
|
+
function _addGeometryMetadata(dracoGeometry, metadata) {
|
|
332
285
|
var dracoMetadata = new this.draco.Metadata();
|
|
333
|
-
|
|
334
286
|
this._populateDracoMetadata(dracoMetadata, metadata);
|
|
335
|
-
|
|
336
287
|
this.dracoMeshBuilder.AddMetadata(dracoGeometry, dracoMetadata);
|
|
337
288
|
}
|
|
289
|
+
|
|
338
290
|
}, {
|
|
339
291
|
key: "_addAttributeMetadata",
|
|
340
|
-
value:
|
|
292
|
+
value:
|
|
293
|
+
function _addAttributeMetadata(dracoGeometry, uniqueAttributeId, metadata) {
|
|
341
294
|
var dracoAttributeMetadata = new this.draco.Metadata();
|
|
342
|
-
|
|
343
295
|
this._populateDracoMetadata(dracoAttributeMetadata, metadata);
|
|
344
|
-
|
|
345
296
|
this.dracoMeshBuilder.SetMetadataForAttribute(dracoGeometry, uniqueAttributeId, dracoAttributeMetadata);
|
|
346
297
|
}
|
|
298
|
+
|
|
347
299
|
}, {
|
|
348
300
|
key: "_populateDracoMetadata",
|
|
349
|
-
value:
|
|
301
|
+
value:
|
|
302
|
+
function _populateDracoMetadata(dracoMetadata, metadata) {
|
|
350
303
|
var _iterator = _createForOfIteratorHelper(getEntries(metadata)),
|
|
351
|
-
|
|
352
|
-
|
|
304
|
+
_step;
|
|
353
305
|
try {
|
|
354
306
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
355
307
|
var _step$value = (0, _slicedToArray2.default)(_step.value, 2),
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
308
|
+
_key = _step$value[0],
|
|
309
|
+
value = _step$value[1];
|
|
359
310
|
switch ((0, _typeof2.default)(value)) {
|
|
360
311
|
case 'number':
|
|
361
312
|
if (Math.trunc(value) === value) {
|
|
@@ -363,16 +314,12 @@ var DracoBuilder = function () {
|
|
|
363
314
|
} else {
|
|
364
315
|
this.dracoMetadataBuilder.AddDoubleEntry(dracoMetadata, _key, value);
|
|
365
316
|
}
|
|
366
|
-
|
|
367
317
|
break;
|
|
368
|
-
|
|
369
318
|
case 'object':
|
|
370
319
|
if (value instanceof Int32Array) {
|
|
371
320
|
this.dracoMetadataBuilder.AddIntEntryArray(dracoMetadata, _key, value, value.length);
|
|
372
321
|
}
|
|
373
|
-
|
|
374
322
|
break;
|
|
375
|
-
|
|
376
323
|
case 'string':
|
|
377
324
|
default:
|
|
378
325
|
this.dracoMetadataBuilder.AddStringEntry(dracoMetadata, _key, value);
|
|
@@ -387,18 +334,15 @@ var DracoBuilder = function () {
|
|
|
387
334
|
}]);
|
|
388
335
|
return DracoBuilder;
|
|
389
336
|
}();
|
|
390
|
-
|
|
391
337
|
exports.default = DracoBuilder;
|
|
392
338
|
|
|
393
339
|
function dracoInt8ArrayToArrayBuffer(dracoData) {
|
|
394
340
|
var byteLength = dracoData.size();
|
|
395
341
|
var outputBuffer = new ArrayBuffer(byteLength);
|
|
396
342
|
var outputData = new Int8Array(outputBuffer);
|
|
397
|
-
|
|
398
343
|
for (var i = 0; i < byteLength; ++i) {
|
|
399
344
|
outputData[i] = dracoData.GetValue(i);
|
|
400
345
|
}
|
|
401
|
-
|
|
402
346
|
return outputBuffer;
|
|
403
347
|
}
|
|
404
348
|
|