@rings-webgpu/core 1.0.30 → 1.0.32

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.
@@ -428,6 +428,10 @@ export * from "./loader/parser/kmz/dataDef/global";
428
428
  export * from "./loader/parser/kmz/dataDef/point";
429
429
  export * from "./loader/parser/kmz/dataDef/template";
430
430
  export * from "./loader/parser/kmz/dataDef/wayline";
431
+ export * from "./loader/parser/las/LASLoader";
432
+ export * from "./loader/parser/las/LASParser";
433
+ export * from "./loader/parser/las/LASTypes";
434
+ export * from "./loader/parser/las/LASUtils";
431
435
  export * from "./loader/parser/ply/PlyLoader";
432
436
  export * from "./loader/parser/ply/PlyParser";
433
437
  export * from "./loader/parser/ply/PlyTypes";
@@ -0,0 +1,45 @@
1
+ import { LASData, LASBinaryData, LASParsedData } from "./LASTypes";
2
+ /**
3
+ * LAS file loader
4
+ * Parses both ASCII (Log ASCII Standard) and Binary (LIDAR Point Cloud) LAS format files
5
+ */
6
+ export declare class LASLoader {
7
+ /**
8
+ * Parse LAS file (supports both ASCII text and binary buffer)
9
+ * @param input LAS file content as string or ArrayBuffer
10
+ * @returns Parsed LAS data (ASCII or Binary)
11
+ */
12
+ parse(input: string | ArrayBuffer): Promise<LASParsedData>;
13
+ /**
14
+ * Parse ASCII LAS (Log ASCII Standard) format
15
+ * @param text LAS file content as string
16
+ * @returns Parsed ASCII LAS data
17
+ */
18
+ parseText(text: string): Promise<LASData>;
19
+ /**
20
+ * Parse binary LAS (LIDAR Point Cloud) format
21
+ * @param buffer LAS file content as ArrayBuffer
22
+ * @returns Parsed binary LAS data
23
+ */
24
+ parseBinary(buffer: ArrayBuffer): Promise<LASBinaryData>;
25
+ /**
26
+ * Parse version information section (~VERSION)
27
+ */
28
+ private parseMetadata;
29
+ /**
30
+ * Parse well information section (~WELL)
31
+ */
32
+ private parseWellParams;
33
+ /**
34
+ * Parse curve information section (~CURVE)
35
+ */
36
+ private parseCurveParams;
37
+ /**
38
+ * Parse headers (column names) from curve section
39
+ */
40
+ private parseHeaders;
41
+ /**
42
+ * Parse ASCII data section (~A)
43
+ */
44
+ private parseData;
45
+ }
@@ -0,0 +1,39 @@
1
+ import { ParserBase } from "../ParserBase";
2
+ import { ParserFormat } from "../ParserFormat";
3
+ import { LASVisualizationMode } from "./LASTypes";
4
+ /**
5
+ * LAS format parser
6
+ * Organizes parsed LAS data (from LASLoader) into renderable objects
7
+ * Supports multiple visualization modes: point cloud, curve, and well trajectory
8
+ */
9
+ export declare class LASParser extends ParserBase {
10
+ static format: ParserFormat;
11
+ visualizationMode: LASVisualizationMode;
12
+ parseBuffer(buffer: ArrayBuffer): Promise<void>;
13
+ /**
14
+ * Create visualization from parsed LAS data
15
+ */
16
+ private createVisualization;
17
+ /**
18
+ * Create point cloud visualization from binary LAS data
19
+ */
20
+ private createBinaryPointCloudVisualization;
21
+ verification(): boolean;
22
+ /**
23
+ * Create point cloud visualization from LAS data
24
+ * Depth as Z axis, curve values as X/Y axes
25
+ */
26
+ private createPointCloudVisualization;
27
+ /**
28
+ * Create curve visualization using FatLineRenderer
29
+ * Depth as Z axis, normalized curve value as X axis
30
+ */
31
+ private createCurveVisualization;
32
+ /**
33
+ * Create well trajectory visualization
34
+ * TODO: Implement when well trajectory data is available
35
+ */
36
+ private createWellTrajectoryVisualization;
37
+ private normalizeValue;
38
+ private mapValueToColor;
39
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Type definitions for LAS format
3
+ * Supports both ASCII (Log ASCII Standard) and Binary (LIDAR Point Cloud) formats
4
+ */
5
+ export interface LASMetadata {
6
+ version: number;
7
+ wrap: boolean;
8
+ }
9
+ export interface LASWellParams {
10
+ [key: string]: {
11
+ unit: string;
12
+ value: string | number;
13
+ description: string;
14
+ };
15
+ }
16
+ export interface LASCurveParams {
17
+ [key: string]: {
18
+ unit: string;
19
+ value: string;
20
+ description: string;
21
+ };
22
+ }
23
+ /**
24
+ * ASCII LAS (Log ASCII Standard) data structure
25
+ */
26
+ export interface LASData {
27
+ headers: string[];
28
+ data: Array<Array<string | number>>;
29
+ wellParams: LASWellParams;
30
+ curveParams: LASCurveParams;
31
+ metadata: LASMetadata;
32
+ nullValue: number;
33
+ }
34
+ /**
35
+ * Binary LAS (LIDAR Point Cloud) data structure
36
+ */
37
+ export interface LASBinaryData {
38
+ format: 'binary';
39
+ version: number;
40
+ pointDataFormat: number;
41
+ numPoints: number;
42
+ positions: Float32Array;
43
+ colors: Uint8Array;
44
+ bbox: {
45
+ xMin: number;
46
+ xMax: number;
47
+ yMin: number;
48
+ yMax: number;
49
+ zMin: number;
50
+ zMax: number;
51
+ };
52
+ scale: {
53
+ x: number;
54
+ y: number;
55
+ z: number;
56
+ };
57
+ offset: {
58
+ x: number;
59
+ y: number;
60
+ z: number;
61
+ };
62
+ }
63
+ /**
64
+ * Union type for both ASCII and Binary LAS data
65
+ */
66
+ export type LASParsedData = LASData | LASBinaryData;
67
+ export declare enum LASVisualizationMode {
68
+ PointCloud = "pointcloud",// Point cloud mode (depth as Z, curve values as X/Y)
69
+ Curve = "curve",// Curve mode (3D curve using FatLine)
70
+ WellTrajectory = "trajectory"
71
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Utility functions for LAS file parsing
3
+ */
4
+ export declare class LASUtils {
5
+ /**
6
+ * Split array into chunks of specified size
7
+ */
8
+ static chunk<T>(arr: T[], size: number): T[][];
9
+ /**
10
+ * Remove comments from text (lines starting with #)
11
+ */
12
+ static removeComment(str: string): string;
13
+ /**
14
+ * Convert string to number or string
15
+ * Returns number if string represents a valid number, otherwise returns string
16
+ */
17
+ static convertToValue(s: string): number | string;
18
+ /**
19
+ * Parse a LAS section from text
20
+ * @param text Full LAS file text
21
+ * @param sectionName Section name (e.g., 'VERSION', 'WELL', 'CURVE')
22
+ * @returns Section content as string
23
+ */
24
+ static parseSection(text: string, sectionName: string): string;
25
+ /**
26
+ * Parse a parameter line from LAS file
27
+ * Format: MNEM.UNIT VALUE :DESCRIPTION
28
+ * @param line Parameter line text
29
+ * @returns Parsed parameter object
30
+ */
31
+ static parseParameterLine(line: string): {
32
+ mnemonic: string;
33
+ unit: string;
34
+ value: string;
35
+ description: string;
36
+ };
37
+ }
@@ -123,6 +123,7 @@ export declare class TilesRenderer {
123
123
  protected rtcOffset: Vector3 | null;
124
124
  protected _root: Tile | null;
125
125
  protected _activeTiles: Set<Tile>;
126
+ protected _delayedHideTiles: Set<Tile>;
126
127
  readonly group: Object3D;
127
128
  cameras: Camera3D[];
128
129
  private _cameraMap;
@@ -206,6 +207,15 @@ export declare class TilesRenderer {
206
207
  * Set tile active state
207
208
  */
208
209
  setTileActive(tile: Tile, active: boolean): void;
210
+ /**
211
+ * Get children tiles that are loading and will be active
212
+ * Check if child is used in current frame (will be displayed) but not yet loaded
213
+ */
214
+ private _getLoadingChildrenThatWillBeActive;
215
+ /**
216
+ * Check and process delayed hide tiles when a child finishes loading
217
+ */
218
+ private _checkDelayedHideTiles;
209
219
  /**
210
220
  * Set tile visibility
211
221
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rings-webgpu/core",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "description": "Rings webgpu Engine",
5
5
  "main": "index.js",
6
6
  "exports": {