minidraco 0.1.0

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.
@@ -0,0 +1,177 @@
1
+ import { Loader, BufferGeometry, LoadingManager, BufferAttribute } from 'three';
2
+
3
+ declare class DataBuffer {
4
+ _data: Uint8Array;
5
+ constructor();
6
+ update(data: Uint8Array | ArrayBufferView | ArrayBuffer | null | undefined, size: number, offset?: number): boolean;
7
+ resize(newSize: number): void;
8
+ write(bytePos: number, inArray: Uint8Array | ArrayBufferView | ArrayBuffer, dataSize: number): void;
9
+ get data(): Uint8Array;
10
+ get dataSize(): number;
11
+ _resize(newSize: number): void;
12
+ }
13
+
14
+ declare class GeometryAttribute {
15
+ _buffer: DataBuffer | null;
16
+ _numComponents: number;
17
+ _dataType: number;
18
+ _normalized: boolean;
19
+ _byteStride: number;
20
+ _byteOffset: number;
21
+ _attributeType: number;
22
+ _uniqueId: number;
23
+ constructor();
24
+ init(attributeType: number, buffer: DataBuffer | null, numComponents: number, dataType: number, normalized: boolean, byteStride: number, byteOffset: number): void;
25
+ getAddress(attIndex: number): Uint8Array;
26
+ copyFrom(srcAtt: GeometryAttribute): boolean;
27
+ resetBuffer(buffer: DataBuffer, byteStride: number, byteOffset: number): void;
28
+ get attributeType(): number;
29
+ get dataType(): number;
30
+ get numComponents(): number;
31
+ get buffer(): DataBuffer | null;
32
+ get byteStride(): number;
33
+ get byteOffset(): number;
34
+ get uniqueId(): number;
35
+ set uniqueId(id: number);
36
+ }
37
+
38
+ declare class AttributeTransformData {
39
+ _transformType: number;
40
+ _buffer: DataBuffer;
41
+ constructor();
42
+ get transformType(): number;
43
+ set transformType(type: number);
44
+ setParameterValue(byteOffset: number, value: number, type: string): void;
45
+ appendParameterValue(value: number, type: string): void;
46
+ _typeSize(type: string): number;
47
+ }
48
+
49
+ type ExtractTypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
50
+ declare class PointAttribute extends GeometryAttribute {
51
+ _identityMapping: boolean;
52
+ _numUniqueEntries: number;
53
+ _indicesMap: number[] | Uint32Array;
54
+ _attributeBuffer: DataBuffer | null;
55
+ _attributeTransformData: AttributeTransformData | null;
56
+ _cachedFloat32View?: Float32Array;
57
+ _cachedFloat32Buffer?: ArrayBufferLike;
58
+ _cachedInt32View?: Int32Array;
59
+ _cachedInt32Buffer?: ArrayBufferLike;
60
+ _cachedUint32View?: Uint32Array;
61
+ _cachedUint32Buffer?: ArrayBufferLike;
62
+ _cachedUint16View?: Uint16Array;
63
+ _cachedUint16Buffer?: ArrayBufferLike;
64
+ _cachedInt16View?: Int16Array;
65
+ _cachedInt16Buffer?: ArrayBufferLike;
66
+ _cachedUint8View?: Uint8Array;
67
+ _cachedUint8Buffer?: ArrayBufferLike;
68
+ _cachedInt8View?: Int8Array;
69
+ _cachedInt8Buffer?: ArrayBufferLike;
70
+ _cachedFloat64View?: Float64Array;
71
+ _cachedFloat64Buffer?: ArrayBufferLike;
72
+ _cachedDataView?: DataView;
73
+ _cachedDVBuffer?: ArrayBufferLike;
74
+ constructor(geometryAttribute?: GeometryAttribute);
75
+ init(attributeType: number, numComponents: number, dataType: number, normalized: boolean, numAttributeValues: number): void;
76
+ reset(numAttributeValues: number): boolean;
77
+ get size(): number;
78
+ mappedIndex(pointIndex: number): number;
79
+ get isMappingIdentity(): boolean;
80
+ get indicesMapSize(): number;
81
+ get indicesMap(): number[] | Uint32Array;
82
+ setIdentityMapping(): void;
83
+ setExplicitMapping(numPoints: number): void;
84
+ setExplicitMappingUnfilled(numPoints: number): void;
85
+ setAttributeTransformData(transformData: AttributeTransformData): void;
86
+ convertValue(attIndex: number, outVal: number[] | Int32Array | Uint32Array | Float32Array | Float64Array): void;
87
+ extractTo<C extends new (length: number) => ExtractTypedArray>(OutputTypedArray: C, numPoints: number): InstanceType<C>;
88
+ copyFrom(srcAtt: PointAttribute): void;
89
+ }
90
+
91
+ declare class PointCloud {
92
+ num_points_: number;
93
+ attributes_: (PointAttribute | null)[];
94
+ named_attribute_index_: number[][];
95
+ constructor();
96
+ numNamedAttributes(type: number): number;
97
+ getNamedAttributeId(type: number, i?: number): number;
98
+ getNamedAttribute(type: number, i?: number): PointAttribute | null;
99
+ getAttributeByUniqueId(uniqueId: number): PointAttribute | null;
100
+ getAttributeIdByUniqueId(uniqueId: number): number;
101
+ numAttributes(): number;
102
+ attribute(attId: number): PointAttribute;
103
+ addAttribute(pa: PointAttribute): number;
104
+ setAttribute(attId: number, pa: PointAttribute): void;
105
+ numPoints(): number;
106
+ setNumPoints(num: number): void;
107
+ }
108
+
109
+ declare class Mesh extends PointCloud {
110
+ faces_: Int32Array;
111
+ numFaces_: number;
112
+ attribute_data_: {
113
+ elementType: number;
114
+ }[];
115
+ constructor();
116
+ _ensureFaceCapacity(numFaces: number): void;
117
+ addFace(face: ArrayLike<number>): void;
118
+ setNumFaces(numFaces: number): void;
119
+ numFaces(): number;
120
+ face(faceId: number): number[];
121
+ setAttribute(attId: number, pa: PointAttribute): void;
122
+ }
123
+
124
+ type AttributeIDs = Record<string, number | string>;
125
+ type AttributeTypes = Record<string, string>;
126
+ interface TaskConfig {
127
+ attributeIDs: AttributeIDs;
128
+ attributeTypes: AttributeTypes;
129
+ useUniqueIDs: boolean;
130
+ vertexColorSpace: string;
131
+ }
132
+ interface RawAttribute {
133
+ name: string;
134
+ array: Float32Array | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;
135
+ itemSize: number;
136
+ }
137
+ interface RawGeometry {
138
+ indices: Uint32Array;
139
+ attributes: RawAttribute[];
140
+ }
141
+ interface WorkerEntry {
142
+ worker: Worker;
143
+ pending: number;
144
+ }
145
+ declare class MiniDRACOLoader extends Loader<BufferGeometry> {
146
+ defaultAttributeIDs: AttributeIDs;
147
+ defaultAttributeTypes: AttributeTypes;
148
+ workerLimit: number;
149
+ _workers: WorkerEntry[];
150
+ _taskId: number;
151
+ _tasks: Map<number, {
152
+ resolve: (raw: RawGeometry) => void;
153
+ reject: (error: unknown) => void;
154
+ entry: WorkerEntry;
155
+ }>;
156
+ _workersBroken: boolean;
157
+ constructor(manager?: LoadingManager);
158
+ setDecoderPath(_path?: string): this;
159
+ setDecoderConfig(_config?: object): this;
160
+ setWorkerLimit(limit: number): this;
161
+ preload(): this;
162
+ dispose(): this;
163
+ load(url: string, onLoad: (geometry: BufferGeometry) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
164
+ parse(buffer: ArrayBuffer, onLoad: (geometry: BufferGeometry) => void, onError?: (err: unknown) => void): void;
165
+ decodeDracoFile(buffer: ArrayBuffer, callback?: (geometry: BufferGeometry) => void, attributeIDs?: AttributeIDs | null, attributeTypes?: AttributeTypes | null, vertexColorSpace?: string, onError?: (err: unknown) => void): Promise<BufferGeometry | void>;
166
+ decodeGeometry(buffer: ArrayBuffer, taskConfig: TaskConfig): Promise<BufferGeometry>;
167
+ _runTask(buffer: ArrayBuffer, taskConfig: TaskConfig): Promise<BufferGeometry>;
168
+ _workersAvailable(): boolean;
169
+ _getWorker(): WorkerEntry;
170
+ _decodeInWorker(buffer: ArrayBuffer, taskConfig: TaskConfig): Promise<RawGeometry>;
171
+ _buildGeometryFromRaw(raw: RawGeometry, taskConfig: TaskConfig): BufferGeometry;
172
+ _decodeBuffer(buffer: ArrayBuffer, taskConfig: TaskConfig): BufferGeometry;
173
+ _buildGeometry(dracoGeometry: Mesh, taskConfig: TaskConfig): BufferGeometry;
174
+ _assignVertexColorSpace(attribute: BufferAttribute, inputColorSpace: string): void;
175
+ }
176
+
177
+ export { type AttributeIDs, type AttributeTypes, MiniDRACOLoader as DRACOLoader, MiniDRACOLoader };