viral-viewer-2 7.2.0 → 7.2.2
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/batched-mesh-simplifier-D-o3ukyo.mjs +128 -0
- package/dist/components/animation/viral-animation.d.ts +1 -1
- package/dist/components/avatar-manager/viral-avatar-manager.d.ts +1 -1
- package/dist/components/camera/viral-camera.d.ts +9 -8
- package/dist/components/custom-objects/index.d.ts +2 -3
- package/dist/components/custom-objects/viral-avatar.d.ts +2 -2
- package/dist/components/custom-objects/viral-batched-mesh.d.ts +14 -4
- package/dist/components/custom-objects/{viral-merged-model.d.ts → viral-bim-world.d.ts} +14 -6
- package/dist/components/custom-objects/viral-bim.model.d.ts +11 -0
- package/dist/components/custom-objects/viral-instanced-mesh-v2.d.ts +14 -3
- package/dist/components/data-manager/viral-data-manager.d.ts +1 -1
- package/dist/components/duplication-analyzer/viral-duplication-analyzer.d.ts +1 -1
- package/dist/components/event-handler/keyboard/viral-keyboard.d.ts +1 -1
- package/dist/components/event-handler/mouse/viral-mouse.d.ts +1 -4
- package/dist/components/event-handler/viral-centralized-event-handler.d.ts +1 -10
- package/dist/components/event-handler/viral-lifecycle-event-handler.d.ts +2 -2
- package/dist/components/loader/viral-point-cloud.loader.d.ts +2 -2
- package/dist/components/loader/viral-revit.loader.d.ts +3 -4
- package/dist/components/loader/viral-three.loader.d.ts +2 -2
- package/dist/components/loader/viral.loader.d.ts +1 -1
- package/dist/components/material/viral-material-manager.d.ts +2 -2
- package/dist/components/post-processing/post-processing-renderer.d.ts +51 -6
- package/dist/components/post-processing/screen-space-edges-pass.d.ts +7 -1
- package/dist/components/post-processing/selection-outline-pass.d.ts +65 -0
- package/dist/components/renderer/viral-renderer.d.ts +1 -1
- package/dist/components/scene/viral-scene.d.ts +4 -7
- package/dist/components/section-box/viral-section-box.d.ts +66 -25
- package/dist/components/stats/viral-stats.d.ts +1 -1
- package/dist/components/visibility-manager/viral-visibility-manager.d.ts +44 -24
- package/dist/components/worker/bounding-box-intersect.worker.d.ts +1 -1
- package/dist/components/worker/bounding-box.worker.d.ts +1 -1
- package/dist/components/worker/graph-layout.worker.d.ts +1 -1
- package/dist/components/worker/{load-element-batch.worker.d.ts → load-batched-element.worker.d.ts} +3 -3
- package/dist/entities/archive-elements.d.ts +1 -1
- package/dist/entities/data-tree.d.ts +7 -2
- package/dist/entities/index.d.ts +9 -9
- package/dist/gui/batch-debug-panel/viral-batch-debug-panel.d.ts +1 -1
- package/dist/gui/context-menu/viral-context-menu.d.ts +1 -1
- package/dist/gui/draggable-modal/viral-draggable-modal.d.ts +1 -1
- package/dist/gui/instanced-debug-panel/viral-instanced-debug-panel.d.ts +1 -1
- package/dist/gui/navigation-cube/components/cube-camera.d.ts +2 -2
- package/dist/gui/navigation-cube/components/cube-renderer.d.ts +1 -1
- package/dist/gui/navigation-cube/components/cube-scene.d.ts +2 -2
- package/dist/gui/navigation-cube/components/cube.mouse.d.ts +1 -1
- package/dist/gui/navigation-cube/viral-navigation-cube.d.ts +2 -2
- package/dist/gui/pivot-point/viral-pivot-point.d.ts +1 -1
- package/dist/gui/render-debug-panel/viral-render-debug-panel.d.ts +1 -1
- package/dist/gui/spinner/viral-spinner.d.ts +1 -1
- package/dist/gui/tools/tools/viral-tool-ambient-occlusion.d.ts +2 -2
- package/dist/gui/tools/tools/viral-tool-avatar.d.ts +2 -2
- package/dist/gui/tools/tools/viral-tool-dark-mode.d.ts +2 -2
- package/dist/gui/tools/tools/viral-tool-elevation.d.ts +3 -3
- package/dist/gui/tools/tools/viral-tool-export-scene.d.ts +2 -2
- package/dist/gui/tools/tools/viral-tool-measure.d.ts +3 -3
- package/dist/gui/tools/tools/viral-tool-sunlight.d.ts +2 -2
- package/dist/gui/tools/viral-tools.d.ts +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.mjs +10808 -35
- package/dist/utils/batched-mesh-simplifier.d.ts +2 -2
- package/dist/utils/geometry-simplifier.d.ts +1 -1
- package/dist/viral-viewer-api.d.ts +19 -21
- package/package.json +49 -42
- package/dist/batched-mesh-simplifier-Bqx1Evd9.mjs +0 -1076
- package/dist/components/custom-objects/viral-edge-mesh.d.ts +0 -133
- package/dist/components/custom-objects/viral-instanced-mesh-v3.d.ts +0 -123
- package/dist/components/custom-objects/viral-instanced-mesh.d.ts +0 -41
- package/dist/components/custom-objects/viral-main.model.d.ts +0 -16
- package/dist/components/custom-objects/viral-mesh.abstract.d.ts +0 -3
- package/dist/components/custom-objects/viral-mesh.d.ts +0 -13
- package/dist/components/custom-objects/viral-seperate-model.d.ts +0 -18
- package/dist/components/handler/geometry.handler.d.ts +0 -12
- package/dist/components/lod-generator/viral-lod-generator.d.ts +0 -116
- package/dist/index-DRYwg_CR.mjs +0 -326870
- /package/dist/components/worker-script/{load-element-batch.script.d.ts → load-batched-element.script.d.ts} +0 -0
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Object3D } from "three";
|
|
2
|
-
import { LineMaterial } from "three/examples/jsm/Addons";
|
|
3
|
-
import { ViralBatchedMesh } from "./viral-batched-mesh";
|
|
4
|
-
import { ViralInstancedMeshV2 } from "./viral-instanced-mesh-v2";
|
|
5
|
-
export declare class ViralEdgeMesh extends Object3D {
|
|
6
|
-
private _edgeLines;
|
|
7
|
-
private _edgeMaterial;
|
|
8
|
-
private _edgeThreshold;
|
|
9
|
-
private _edgeRanges;
|
|
10
|
-
private _batchedMeshes;
|
|
11
|
-
private _instancedMeshes;
|
|
12
|
-
private _hiddenElements;
|
|
13
|
-
private _isolatedElements;
|
|
14
|
-
private _xrayMode;
|
|
15
|
-
constructor();
|
|
16
|
-
/**
|
|
17
|
-
* Initialize edge mesh with material and threshold
|
|
18
|
-
*/
|
|
19
|
-
initialize(material: LineMaterial, thresholdDeg?: number): void;
|
|
20
|
-
/**
|
|
21
|
-
* Add a batched mesh to be included in edge generation
|
|
22
|
-
*/
|
|
23
|
-
addBatchedMesh(mesh: ViralBatchedMesh): void;
|
|
24
|
-
/**
|
|
25
|
-
* Add an instanced mesh to be included in edge generation
|
|
26
|
-
*/
|
|
27
|
-
addInstancedMesh(mesh: ViralInstancedMeshV2): void;
|
|
28
|
-
/**
|
|
29
|
-
* Remove a mesh from edge generation
|
|
30
|
-
*/
|
|
31
|
-
removeMesh(mesh: ViralBatchedMesh | ViralInstancedMeshV2): void;
|
|
32
|
-
/**
|
|
33
|
-
* Build the unified edge mesh from all registered meshes
|
|
34
|
-
*/
|
|
35
|
-
buildEdges(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Extract edge data from a batched mesh
|
|
38
|
-
*/
|
|
39
|
-
private _extractBatchedMeshEdges;
|
|
40
|
-
/**
|
|
41
|
-
* Extract edge data from an instanced mesh
|
|
42
|
-
*/
|
|
43
|
-
private _extractInstancedMeshEdges;
|
|
44
|
-
/**
|
|
45
|
-
* Track edge ranges for batched mesh elements
|
|
46
|
-
*/
|
|
47
|
-
private _trackBatchedEdgeRanges;
|
|
48
|
-
/**
|
|
49
|
-
* Track edge ranges for instanced mesh elements
|
|
50
|
-
*/
|
|
51
|
-
private _trackInstancedEdgeRanges;
|
|
52
|
-
/**
|
|
53
|
-
* Rebuild edges when meshes are updated
|
|
54
|
-
*/
|
|
55
|
-
refresh(): void;
|
|
56
|
-
/**
|
|
57
|
-
* Show edges
|
|
58
|
-
*/
|
|
59
|
-
show(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Hide edges
|
|
62
|
-
*/
|
|
63
|
-
hide(): void;
|
|
64
|
-
/**
|
|
65
|
-
* Hide edges for specific elements
|
|
66
|
-
*/
|
|
67
|
-
hideElements(elements: {
|
|
68
|
-
modelId: string;
|
|
69
|
-
elementId: string;
|
|
70
|
-
}[]): void;
|
|
71
|
-
/**
|
|
72
|
-
* Show only specific elements (isolate) with x-ray mode option
|
|
73
|
-
*/
|
|
74
|
-
isolateElements(elements: {
|
|
75
|
-
modelId: string;
|
|
76
|
-
elementId: string;
|
|
77
|
-
}[], xrayMode?: boolean): void;
|
|
78
|
-
/**
|
|
79
|
-
* Enable/disable x-ray mode for current isolation
|
|
80
|
-
*/
|
|
81
|
-
setXrayMode(enabled: boolean): void;
|
|
82
|
-
/**
|
|
83
|
-
* Get current x-ray mode state
|
|
84
|
-
*/
|
|
85
|
-
get isXrayMode(): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Reset all edge visibility
|
|
88
|
-
*/
|
|
89
|
-
resetVisibility(): void;
|
|
90
|
-
/**
|
|
91
|
-
* Update edge visibility based on hidden/isolated elements
|
|
92
|
-
*/
|
|
93
|
-
private _updateEdgeVisibility;
|
|
94
|
-
/**
|
|
95
|
-
* Set visibility for a specific element in the visibility mask
|
|
96
|
-
*/
|
|
97
|
-
private _setElementVisibility;
|
|
98
|
-
/**
|
|
99
|
-
* Update edges when source meshes are modified
|
|
100
|
-
*/
|
|
101
|
-
onMeshUpdated(mesh: ViralBatchedMesh | ViralInstancedMeshV2): void;
|
|
102
|
-
/**
|
|
103
|
-
* Get total vertex count in the edge mesh
|
|
104
|
-
*/
|
|
105
|
-
getTotalEdgeVertexCount(): number;
|
|
106
|
-
/**
|
|
107
|
-
* Check if edges are currently visible
|
|
108
|
-
*/
|
|
109
|
-
get isVisible(): boolean;
|
|
110
|
-
/**
|
|
111
|
-
* Get the number of registered meshes
|
|
112
|
-
*/
|
|
113
|
-
getMeshCount(): {
|
|
114
|
-
batched: number;
|
|
115
|
-
instanced: number;
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Clear all edge data
|
|
119
|
-
*/
|
|
120
|
-
private _clearEdges;
|
|
121
|
-
/**
|
|
122
|
-
* Dispose of the edge mesh and clean up resources
|
|
123
|
-
*/
|
|
124
|
-
dispose(): void;
|
|
125
|
-
/**
|
|
126
|
-
* Update edge material
|
|
127
|
-
*/
|
|
128
|
-
updateMaterial(material: LineMaterial): void;
|
|
129
|
-
/**
|
|
130
|
-
* Update edge threshold and rebuild if necessary
|
|
131
|
-
*/
|
|
132
|
-
updateThreshold(thresholdDeg: number): void;
|
|
133
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { Box3, Color, Material, Vector3, InstancedMesh } from "three";
|
|
2
|
-
import { BufferElement } from "../..";
|
|
3
|
-
import { LineMaterial } from "three/examples/jsm/Addons";
|
|
4
|
-
export declare class ViralInstancedMeshV3 extends InstancedMesh {
|
|
5
|
-
globalMaterialIndex: number;
|
|
6
|
-
private _bufferElement;
|
|
7
|
-
private _originalColor;
|
|
8
|
-
private _elementMap;
|
|
9
|
-
private _selectedElements;
|
|
10
|
-
private _hidingElements;
|
|
11
|
-
private _isolatingElements;
|
|
12
|
-
private _edgeLines;
|
|
13
|
-
private _edgeThreshold;
|
|
14
|
-
private _edgeMaterial;
|
|
15
|
-
private _isGeneratedLights;
|
|
16
|
-
private _pointLight;
|
|
17
|
-
private _originalTransforms;
|
|
18
|
-
constructor(material: Material);
|
|
19
|
-
addBufferElement(bufferElement: BufferElement, materialColor: Color): void;
|
|
20
|
-
private _setupInstanceData;
|
|
21
|
-
private _createGeometryFromBuffer;
|
|
22
|
-
private _transformArrayToMatrix4;
|
|
23
|
-
private _generateGeometryKey;
|
|
24
|
-
batch(newBufferElements: BufferElement[]): void;
|
|
25
|
-
select(elements: {
|
|
26
|
-
modelId: string;
|
|
27
|
-
elementId: string;
|
|
28
|
-
}[], excepts?: {
|
|
29
|
-
elements: {
|
|
30
|
-
modelId: string;
|
|
31
|
-
elementId: string;
|
|
32
|
-
}[];
|
|
33
|
-
color: {
|
|
34
|
-
r: number;
|
|
35
|
-
g: number;
|
|
36
|
-
b: number;
|
|
37
|
-
};
|
|
38
|
-
}[]): void;
|
|
39
|
-
changeColor(elements: {
|
|
40
|
-
modelId: string;
|
|
41
|
-
elementId: string;
|
|
42
|
-
}[], color: {
|
|
43
|
-
r: number;
|
|
44
|
-
g: number;
|
|
45
|
-
b: number;
|
|
46
|
-
}): void;
|
|
47
|
-
resetColor(modelId: string | null, elementId?: string, excepts?: {
|
|
48
|
-
elements: {
|
|
49
|
-
modelId: string;
|
|
50
|
-
elementId: string;
|
|
51
|
-
}[];
|
|
52
|
-
color: {
|
|
53
|
-
r: number;
|
|
54
|
-
g: number;
|
|
55
|
-
b: number;
|
|
56
|
-
};
|
|
57
|
-
}[]): void;
|
|
58
|
-
get selectedElements(): {
|
|
59
|
-
modelId: string;
|
|
60
|
-
elementId: string;
|
|
61
|
-
}[];
|
|
62
|
-
get bufferElements(): BufferElement[];
|
|
63
|
-
hide(elements?: {
|
|
64
|
-
modelId: string;
|
|
65
|
-
elementId: string;
|
|
66
|
-
}[]): void;
|
|
67
|
-
isolate(elements?: {
|
|
68
|
-
modelId: string;
|
|
69
|
-
elementId: string;
|
|
70
|
-
}[]): {
|
|
71
|
-
modelId: string;
|
|
72
|
-
elementId: string;
|
|
73
|
-
}[];
|
|
74
|
-
isolateModel(modelIds: string[]): void;
|
|
75
|
-
reset(): void;
|
|
76
|
-
private showAllInstances;
|
|
77
|
-
enableEdgePerElement(material: LineMaterial, thresholdDeg?: number): void;
|
|
78
|
-
disableEdge(): void;
|
|
79
|
-
enableEdge(): void;
|
|
80
|
-
refreshEdgesIfAny(): void;
|
|
81
|
-
private _buildEdges;
|
|
82
|
-
isolateEdge(elements?: {
|
|
83
|
-
modelId: string;
|
|
84
|
-
elementId: string;
|
|
85
|
-
}[]): void;
|
|
86
|
-
hideEdge(elements?: {
|
|
87
|
-
modelId: string;
|
|
88
|
-
elementId: string;
|
|
89
|
-
}[]): void;
|
|
90
|
-
edgeReset(): void;
|
|
91
|
-
enableRaycasting(): void;
|
|
92
|
-
private _customRaycast;
|
|
93
|
-
findElementByInstanceIndex(instanceIndex: number): {
|
|
94
|
-
modelId: string;
|
|
95
|
-
elementId: string;
|
|
96
|
-
} | null;
|
|
97
|
-
findElementByInstancedMeshAndIndex(instancedMesh: InstancedMesh, instanceIndex: number): {
|
|
98
|
-
modelId: string;
|
|
99
|
-
elementId: string;
|
|
100
|
-
} | null;
|
|
101
|
-
findElementByFaceIndex(faceIndex: number): {
|
|
102
|
-
modelId: string;
|
|
103
|
-
elementId: string;
|
|
104
|
-
} | null;
|
|
105
|
-
getInstancedMeshes(): InstancedMesh[];
|
|
106
|
-
getElements(elements: {
|
|
107
|
-
modelId: string;
|
|
108
|
-
elementId: string;
|
|
109
|
-
}[]): BufferElement[];
|
|
110
|
-
getElementsByModel(modelIndex: number): BufferElement[];
|
|
111
|
-
getElementBoxs(elements: {
|
|
112
|
-
modelId: string;
|
|
113
|
-
elementId: string;
|
|
114
|
-
}[]): Box3 | null;
|
|
115
|
-
getTotalVertexCount(): number;
|
|
116
|
-
getObjectCount(): number;
|
|
117
|
-
get isBatching(): boolean;
|
|
118
|
-
enableLights(): void;
|
|
119
|
-
disableLights(): void;
|
|
120
|
-
calculateCenter(buffer: Float32Array): Vector3 | null;
|
|
121
|
-
private getFarthestDistance;
|
|
122
|
-
dispose(): this;
|
|
123
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { BufferGeometry, InstancedMesh, LineBasicMaterial, Material, Mesh } from "three";
|
|
2
|
-
import { Dictionary } from "../../types";
|
|
3
|
-
import { AbstractViralMesh } from "./viral-mesh.abstract";
|
|
4
|
-
export declare class ViralInstancedMesh extends InstancedMesh implements AbstractViralMesh {
|
|
5
|
-
private _originMesh;
|
|
6
|
-
private _isOrigin;
|
|
7
|
-
overrideHoverMeshes: Mesh<BufferGeometry, Material>[];
|
|
8
|
-
overrideSelectMeshes: Mesh<BufferGeometry, Material>[];
|
|
9
|
-
_tempHoveredIndexs: number[];
|
|
10
|
-
hoveredIndexs: Dictionary<number, Material>;
|
|
11
|
-
_tempSelectedIndexs: number[];
|
|
12
|
-
selectedIndexs: Dictionary<number, Material>;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @param geometry geometry for instanced mesh
|
|
16
|
-
* @param materials materials for instanced mesh, can be both 1 or array
|
|
17
|
-
* @param count number of instance in mesh
|
|
18
|
-
* @param _host share the same logic with parent, when we push temp mesh into scene, we must binding original viral instanced mesh to host to recall/ reprogress later
|
|
19
|
-
*/
|
|
20
|
-
constructor(geometry: BufferGeometry, materials: Material[] | Material, count: number);
|
|
21
|
-
hideAts(indexs: number[]): void;
|
|
22
|
-
hideObjects(reverseToOriginal?: boolean): void;
|
|
23
|
-
isolateAts(indexs: number[]): void;
|
|
24
|
-
isolateObjects(reverseToOriginal?: boolean): void;
|
|
25
|
-
hoverAts(indexs: number[], material: Material): void;
|
|
26
|
-
selectAts(indexs: number[], material: Material): void;
|
|
27
|
-
overrideObjects(reverseToOriginal?: boolean): void;
|
|
28
|
-
totalSelectedIndex(): number[];
|
|
29
|
-
getSelectedElementIds(): any[];
|
|
30
|
-
reverseIndex(clearHoverIndexs?: boolean, clearSelectIndexs?: boolean): void;
|
|
31
|
-
reverseToOriginal(reverseHoverMeshes?: boolean, reverseSelectMeshes?: boolean, reverseInstanceData?: boolean): void;
|
|
32
|
-
getDistinctNumbers(numbers: number[]): number[];
|
|
33
|
-
private _edgeLines;
|
|
34
|
-
private _edgeGroup;
|
|
35
|
-
enableEdge(material: LineBasicMaterial): void;
|
|
36
|
-
disableEdge(): void;
|
|
37
|
-
/**
|
|
38
|
-
* ! Disposes of the ViralMesh properly, when dispose we dont need to dispose material
|
|
39
|
-
*/
|
|
40
|
-
dispose(): void;
|
|
41
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Dictionary, RenderMaterial, ViralutionElement } from "../..";
|
|
2
|
-
import { ViralSeperateModel } from "./viral-seperate-model";
|
|
3
|
-
/**
|
|
4
|
-
* this is a wrapper to manage whole BIM Model
|
|
5
|
-
*/
|
|
6
|
-
export declare class ViralMainModel {
|
|
7
|
-
modelId: number;
|
|
8
|
-
elements: ViralutionElement[];
|
|
9
|
-
materials: RenderMaterial[];
|
|
10
|
-
mapMaterialsToMaterialManager: Dictionary<number, number>;
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated don't use this anymore
|
|
13
|
-
*/
|
|
14
|
-
seperateModel: ViralSeperateModel;
|
|
15
|
-
dispose(): void;
|
|
16
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Box3, BufferGeometry, LineBasicMaterial, Material, Mesh } from "three";
|
|
2
|
-
import { AbstractViralMesh } from "./viral-mesh.abstract";
|
|
3
|
-
export declare class ViralMesh extends Mesh implements AbstractViralMesh {
|
|
4
|
-
constructor(geometry?: BufferGeometry, material?: Material);
|
|
5
|
-
get bounds(): Box3;
|
|
6
|
-
private _edgeLines;
|
|
7
|
-
enableEdge(material: LineBasicMaterial): void;
|
|
8
|
-
disableEdge(): void;
|
|
9
|
-
/**
|
|
10
|
-
* ! Disposes of the ViralMesh properly, when dispose we dont need to dispose material
|
|
11
|
-
*/
|
|
12
|
-
dispose(): void;
|
|
13
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Box3, LineBasicMaterial, Mesh } from "three";
|
|
2
|
-
import { ViralMesh } from "./viral-mesh";
|
|
3
|
-
import { ViralInstancedMesh } from "./viral-instanced-mesh";
|
|
4
|
-
/**
|
|
5
|
-
* *this class is a wrapper, it stand for a whole bim model
|
|
6
|
-
* we will manage through this class
|
|
7
|
-
*/
|
|
8
|
-
export declare class ViralSeperateModel extends Mesh {
|
|
9
|
-
constructor();
|
|
10
|
-
get bounds(): Box3;
|
|
11
|
-
private _viralMeshes;
|
|
12
|
-
addViralMesh(mesh: ViralMesh): void;
|
|
13
|
-
private _viralInstancedMeshes;
|
|
14
|
-
addViralInstancedMesh(mesh: ViralInstancedMesh): void;
|
|
15
|
-
enableEdge(material: LineBasicMaterial): void;
|
|
16
|
-
disableEdge(): void;
|
|
17
|
-
dispose(): void;
|
|
18
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { RevitTransform, ViralPoint, ViralViewerApi } from "../..";
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated this class we dont need anymore because now we switch 100% to merge model
|
|
4
|
-
*/
|
|
5
|
-
export declare class ViralGeometryHandler {
|
|
6
|
-
viralViewerApi: ViralViewerApi;
|
|
7
|
-
constructor(viralViewerApi: ViralViewerApi);
|
|
8
|
-
generateBuffer(indices: number[], vertices: ViralPoint[], transform?: RevitTransform | null): Float32Array;
|
|
9
|
-
mergeFloat32Arrays(buffers: Float32Array<ArrayBuffer>[]): Float32Array;
|
|
10
|
-
isGeneratingMergeModel: boolean;
|
|
11
|
-
generateMergeModel(): void;
|
|
12
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { BufferGeometry, Vector3 } from "three";
|
|
2
|
-
import { ViralBatchedMesh, ViralMergedModel } from "../..";
|
|
3
|
-
export declare enum LODStrategy {
|
|
4
|
-
VERTEX_DECIMATION = "vertex_decimation",
|
|
5
|
-
TRIANGLE_REDUCTION = "triangle_reduction",
|
|
6
|
-
GEOMETRIC_SIMPLIFICATION = "geometric_simplification",
|
|
7
|
-
BOUNDING_BOX_REPLACEMENT = "bounding_box_replacement"
|
|
8
|
-
}
|
|
9
|
-
export interface LODLevel {
|
|
10
|
-
distance: number;
|
|
11
|
-
reductionRatio: number;
|
|
12
|
-
strategy: LODStrategy;
|
|
13
|
-
}
|
|
14
|
-
export interface LODResult {
|
|
15
|
-
level: number;
|
|
16
|
-
geometry: BufferGeometry;
|
|
17
|
-
vertexCount: number;
|
|
18
|
-
triangleCount: number;
|
|
19
|
-
reductionRatio: number;
|
|
20
|
-
}
|
|
21
|
-
export declare class FastLODGenerator {
|
|
22
|
-
private workerPool;
|
|
23
|
-
private lodLevels;
|
|
24
|
-
constructor(numberOfWorkers?: number);
|
|
25
|
-
private initializeWorkerPool;
|
|
26
|
-
/**
|
|
27
|
-
* Generate all LOD levels for a mesh concurrently
|
|
28
|
-
*/
|
|
29
|
-
generateLODsForMesh(mesh: ViralBatchedMesh, customLODLevels?: LODLevel[]): Promise<Map<number, LODResult>>;
|
|
30
|
-
/**
|
|
31
|
-
* Generate LODs for entire merged model
|
|
32
|
-
*/
|
|
33
|
-
generateLODsForMergedModel(mergedModel: ViralMergedModel): Promise<Map<string, Map<number, LODResult>>>;
|
|
34
|
-
/**
|
|
35
|
-
* Generate LOD for instanced mesh (base geometry only)
|
|
36
|
-
*/
|
|
37
|
-
private generateLODsForInstancedMesh;
|
|
38
|
-
/**
|
|
39
|
-
* Generate single LOD level
|
|
40
|
-
*/
|
|
41
|
-
private generateSingleLOD;
|
|
42
|
-
/**
|
|
43
|
-
* Quick LOD generation with preset configurations
|
|
44
|
-
*/
|
|
45
|
-
generateQuickLODs(mergedModel: ViralMergedModel, preset?: "performance" | "balanced" | "quality"): Promise<Map<string, Map<number, LODResult>>>;
|
|
46
|
-
/**
|
|
47
|
-
* Set custom LOD levels
|
|
48
|
-
*/
|
|
49
|
-
setLODLevels(levels: LODLevel[]): void;
|
|
50
|
-
/**
|
|
51
|
-
* Get current LOD configuration
|
|
52
|
-
*/
|
|
53
|
-
getLODLevels(): LODLevel[];
|
|
54
|
-
dispose(): void;
|
|
55
|
-
}
|
|
56
|
-
export declare class LODManager {
|
|
57
|
-
private lodData;
|
|
58
|
-
private mergedModel;
|
|
59
|
-
private originalMeshes;
|
|
60
|
-
private currentLODLevels;
|
|
61
|
-
constructor(mergedModel: ViralMergedModel, lodData: Map<string, Map<number, LODResult>>);
|
|
62
|
-
private cacheOriginalMeshes;
|
|
63
|
-
/**
|
|
64
|
-
* Update LOD levels based on camera distance
|
|
65
|
-
*/
|
|
66
|
-
updateLODBasedOnCamera(cameraPosition: Vector3): void;
|
|
67
|
-
private calculateDistanceToMesh;
|
|
68
|
-
private determineOptimalLODLevel;
|
|
69
|
-
private switchToLODLevel;
|
|
70
|
-
/**
|
|
71
|
-
* Get current LOD statistics
|
|
72
|
-
*/
|
|
73
|
-
getLODStats(): Map<string, {
|
|
74
|
-
level: number;
|
|
75
|
-
vertexCount: number;
|
|
76
|
-
reductionRatio: number;
|
|
77
|
-
}>;
|
|
78
|
-
/**
|
|
79
|
-
* Force specific LOD level for all meshes
|
|
80
|
-
*/
|
|
81
|
-
setGlobalLODLevel(level: number): void;
|
|
82
|
-
/**
|
|
83
|
-
* Reset all meshes to highest detail (LOD 0)
|
|
84
|
-
*/
|
|
85
|
-
resetToHighestDetail(): void;
|
|
86
|
-
/**
|
|
87
|
-
* Get available LOD levels for a specific mesh
|
|
88
|
-
*/
|
|
89
|
-
getAvailableLODLevels(meshId: string): number[];
|
|
90
|
-
}
|
|
91
|
-
export declare class LODPerformanceMonitor {
|
|
92
|
-
private frameCount;
|
|
93
|
-
private lastFrameTime;
|
|
94
|
-
private currentFPS;
|
|
95
|
-
private lodManager;
|
|
96
|
-
private performanceHistory;
|
|
97
|
-
constructor(lodManager: LODManager);
|
|
98
|
-
private startMonitoring;
|
|
99
|
-
private recordPerformanceData;
|
|
100
|
-
getCurrentFPS(): number;
|
|
101
|
-
getAverageFPS(): number;
|
|
102
|
-
getPerformanceReport(): {
|
|
103
|
-
currentFPS: number;
|
|
104
|
-
averageFPS: number;
|
|
105
|
-
currentLODStats: any;
|
|
106
|
-
recommendations: string[];
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
export interface LODPresetConfig {
|
|
110
|
-
name: string;
|
|
111
|
-
levels: LODLevel[];
|
|
112
|
-
description: string;
|
|
113
|
-
}
|
|
114
|
-
export declare const LODPresets: Record<string, LODPresetConfig>;
|
|
115
|
-
export declare function detectDeviceCapability(): "mobile" | "desktop" | "workstation";
|
|
116
|
-
export declare function getOptimalWorkerCount(): number;
|