viral-viewer-2 6.8.2 → 6.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/components/animation/viral-animation.d.ts +36 -0
  2. package/dist/components/batcher/viral-batcher.d.ts +15 -0
  3. package/dist/components/camera/viral-camera.d.ts +17 -1
  4. package/dist/components/custom-objects/index.d.ts +2 -2
  5. package/dist/components/custom-objects/{viral-merged-mesh.d.ts → viral-batched-mesh.d.ts} +30 -5
  6. package/dist/components/custom-objects/viral-main.model.d.ts +3 -0
  7. package/dist/components/custom-objects/viral-merged-model.d.ts +14 -7
  8. package/dist/components/custom-objects/viral-spatial-merged-mesh.d.ts +7 -0
  9. package/dist/components/custom-objects/viral-spatial-mesh-manager.d.ts +70 -0
  10. package/dist/components/event-handler/viral-centralized-event-handler.d.ts +1 -0
  11. package/dist/components/loader/viral-revit.loader.d.ts +1 -0
  12. package/dist/components/material/viral-material-manager.d.ts +3 -2
  13. package/dist/components/post-processing/post-processing-renderer.d.ts +2 -0
  14. package/dist/components/renderer/viral-optimized-renderer.d.ts +96 -0
  15. package/dist/components/renderer/viral-renderer.d.ts +46 -1
  16. package/dist/components/scene/viral-scene.d.ts +41 -1
  17. package/dist/components/worker/load-element-patch.worker.d.ts +83 -1
  18. package/dist/gui/pivot-point/viral-pivot-point.d.ts +9 -0
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.mjs +20374 -17618
  21. package/dist/models/flat-buffer/model-management-camera-model.d.ts +24 -0
  22. package/dist/models/flat-buffer/parameter-dictionary.d.ts +20 -0
  23. package/dist/models/flat-buffer/point.d.ts +11 -0
  24. package/dist/models/flat-buffer/render-material.d.ts +26 -0
  25. package/dist/models/flat-buffer/revit-transform.d.ts +22 -0
  26. package/dist/models/flat-buffer/viralution-box.d.ts +11 -0
  27. package/dist/models/flat-buffer/viralution-element.d.ts +27 -0
  28. package/dist/models/{flatbuffers → flat-buffer}/viralution-information.d.ts +2 -2
  29. package/dist/models/flat-buffer/viralution-parameter.d.ts +35 -0
  30. package/dist/models/flat-buffer/viralution-solid.d.ts +28 -0
  31. package/dist/models/flat-buffer/viralution-standalone-model.d.ts +27 -0
  32. package/dist/models/index.d.ts +8 -3
  33. package/dist/serializers/index.d.ts +2 -0
  34. package/dist/serializers/viralution-flatbuffer.serializer.d.ts +86 -0
  35. package/dist/serializers/viralution-standalone.serializer.d.ts +14 -0
  36. package/dist/types.d.ts +5 -0
  37. package/dist/utils/device.d.ts +29 -1
  38. package/dist/viral-viewer-api.d.ts +4 -2
  39. package/package.json +1 -1
  40. package/dist/models/flatbuffers/inner-dictionary.d.ts +0 -20
  41. package/dist/models/flatbuffers/key-value.d.ts +0 -17
@@ -0,0 +1,24 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { Point } from './point.js';
3
+ import { ViralutionBox } from './viralution-box.js';
4
+ export declare class ModelManagementCameraModel {
5
+ bb: flatbuffers.ByteBuffer | null;
6
+ bb_pos: number;
7
+ __init(i: number, bb: flatbuffers.ByteBuffer): ModelManagementCameraModel;
8
+ static getRootAsModelManagementCameraModel(bb: flatbuffers.ByteBuffer, obj?: ModelManagementCameraModel): ModelManagementCameraModel;
9
+ static getSizePrefixedRootAsModelManagementCameraModel(bb: flatbuffers.ByteBuffer, obj?: ModelManagementCameraModel): ModelManagementCameraModel;
10
+ origin(obj?: Point): Point | null;
11
+ eyePosition(obj?: Point): Point | null;
12
+ upDirection(obj?: Point): Point | null;
13
+ forwardDirection(obj?: Point): Point | null;
14
+ target(obj?: Point): Point | null;
15
+ box(obj?: ViralutionBox): ViralutionBox | null;
16
+ static startModelManagementCameraModel(builder: flatbuffers.Builder): void;
17
+ static addOrigin(builder: flatbuffers.Builder, originOffset: flatbuffers.Offset): void;
18
+ static addEyePosition(builder: flatbuffers.Builder, eyePositionOffset: flatbuffers.Offset): void;
19
+ static addUpDirection(builder: flatbuffers.Builder, upDirectionOffset: flatbuffers.Offset): void;
20
+ static addForwardDirection(builder: flatbuffers.Builder, forwardDirectionOffset: flatbuffers.Offset): void;
21
+ static addTarget(builder: flatbuffers.Builder, targetOffset: flatbuffers.Offset): void;
22
+ static addBox(builder: flatbuffers.Builder, boxOffset: flatbuffers.Offset): void;
23
+ static endModelManagementCameraModel(builder: flatbuffers.Builder): flatbuffers.Offset;
24
+ }
@@ -0,0 +1,20 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { ViralutionParameter } from './viralution-parameter.js';
3
+ export declare class ParameterDictionary {
4
+ bb: flatbuffers.ByteBuffer | null;
5
+ bb_pos: number;
6
+ __init(i: number, bb: flatbuffers.ByteBuffer): ParameterDictionary;
7
+ static getRootAsParameterDictionary(bb: flatbuffers.ByteBuffer, obj?: ParameterDictionary): ParameterDictionary;
8
+ static getSizePrefixedRootAsParameterDictionary(bb: flatbuffers.ByteBuffer, obj?: ParameterDictionary): ParameterDictionary;
9
+ key(): string | null;
10
+ key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
11
+ parameters(index: number, obj?: ViralutionParameter): ViralutionParameter | null;
12
+ parametersLength(): number;
13
+ static startParameterDictionary(builder: flatbuffers.Builder): void;
14
+ static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset): void;
15
+ static addParameters(builder: flatbuffers.Builder, parametersOffset: flatbuffers.Offset): void;
16
+ static createParametersVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
17
+ static startParametersVector(builder: flatbuffers.Builder, numElems: number): void;
18
+ static endParameterDictionary(builder: flatbuffers.Builder): flatbuffers.Offset;
19
+ static createParameterDictionary(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, parametersOffset: flatbuffers.Offset): flatbuffers.Offset;
20
+ }
@@ -0,0 +1,11 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ export declare class Point {
3
+ bb: flatbuffers.ByteBuffer | null;
4
+ bb_pos: number;
5
+ __init(i: number, bb: flatbuffers.ByteBuffer): Point;
6
+ x(): number;
7
+ y(): number;
8
+ z(): number;
9
+ static sizeOf(): number;
10
+ static createPoint(builder: flatbuffers.Builder, x: number, y: number, z: number): flatbuffers.Offset;
11
+ }
@@ -0,0 +1,26 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ export declare class RenderMaterial {
3
+ bb: flatbuffers.ByteBuffer | null;
4
+ bb_pos: number;
5
+ __init(i: number, bb: flatbuffers.ByteBuffer): RenderMaterial;
6
+ static getRootAsRenderMaterial(bb: flatbuffers.ByteBuffer, obj?: RenderMaterial): RenderMaterial;
7
+ static getSizePrefixedRootAsRenderMaterial(bb: flatbuffers.ByteBuffer, obj?: RenderMaterial): RenderMaterial;
8
+ name(): string | null;
9
+ name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
10
+ opacity(): number;
11
+ metalness(): number;
12
+ roughness(): number;
13
+ red(): number;
14
+ green(): number;
15
+ blue(): number;
16
+ static startRenderMaterial(builder: flatbuffers.Builder): void;
17
+ static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void;
18
+ static addOpacity(builder: flatbuffers.Builder, opacity: number): void;
19
+ static addMetalness(builder: flatbuffers.Builder, metalness: number): void;
20
+ static addRoughness(builder: flatbuffers.Builder, roughness: number): void;
21
+ static addRed(builder: flatbuffers.Builder, red: number): void;
22
+ static addGreen(builder: flatbuffers.Builder, green: number): void;
23
+ static addBlue(builder: flatbuffers.Builder, blue: number): void;
24
+ static endRenderMaterial(builder: flatbuffers.Builder): flatbuffers.Offset;
25
+ static createRenderMaterial(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, opacity: number, metalness: number, roughness: number, red: number, green: number, blue: number): flatbuffers.Offset;
26
+ }
@@ -0,0 +1,22 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { Point } from './point.js';
3
+ export declare class RevitTransform {
4
+ bb: flatbuffers.ByteBuffer | null;
5
+ bb_pos: number;
6
+ __init(i: number, bb: flatbuffers.ByteBuffer): RevitTransform;
7
+ static getRootAsRevitTransform(bb: flatbuffers.ByteBuffer, obj?: RevitTransform): RevitTransform;
8
+ static getSizePrefixedRootAsRevitTransform(bb: flatbuffers.ByteBuffer, obj?: RevitTransform): RevitTransform;
9
+ basisX(obj?: Point): Point | null;
10
+ basisY(obj?: Point): Point | null;
11
+ basisZ(obj?: Point): Point | null;
12
+ offset(obj?: Point): Point | null;
13
+ id(): string | null;
14
+ id(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
15
+ static startRevitTransform(builder: flatbuffers.Builder): void;
16
+ static addBasisX(builder: flatbuffers.Builder, basisXOffset: flatbuffers.Offset): void;
17
+ static addBasisY(builder: flatbuffers.Builder, basisYOffset: flatbuffers.Offset): void;
18
+ static addBasisZ(builder: flatbuffers.Builder, basisZOffset: flatbuffers.Offset): void;
19
+ static addOffset(builder: flatbuffers.Builder, offsetOffset: flatbuffers.Offset): void;
20
+ static addId(builder: flatbuffers.Builder, idOffset: flatbuffers.Offset): void;
21
+ static endRevitTransform(builder: flatbuffers.Builder): flatbuffers.Offset;
22
+ }
@@ -0,0 +1,11 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { Point } from './point.js';
3
+ export declare class ViralutionBox {
4
+ bb: flatbuffers.ByteBuffer | null;
5
+ bb_pos: number;
6
+ __init(i: number, bb: flatbuffers.ByteBuffer): ViralutionBox;
7
+ min(obj?: Point): Point | null;
8
+ max(obj?: Point): Point | null;
9
+ static sizeOf(): number;
10
+ static createViralutionBox(builder: flatbuffers.Builder, min_x: number, min_y: number, min_z: number, max_x: number, max_y: number, max_z: number): flatbuffers.Offset;
11
+ }
@@ -0,0 +1,27 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { RevitTransform } from './revit-transform.js';
3
+ import { ViralutionSolid } from './viralution-solid.js';
4
+ export declare class ViralutionElement {
5
+ bb: flatbuffers.ByteBuffer | null;
6
+ bb_pos: number;
7
+ __init(i: number, bb: flatbuffers.ByteBuffer): ViralutionElement;
8
+ static getRootAsViralutionElement(bb: flatbuffers.ByteBuffer, obj?: ViralutionElement): ViralutionElement;
9
+ static getSizePrefixedRootAsViralutionElement(bb: flatbuffers.ByteBuffer, obj?: ViralutionElement): ViralutionElement;
10
+ solids(index: number, obj?: ViralutionSolid): ViralutionSolid | null;
11
+ solidsLength(): number;
12
+ id(): string | null;
13
+ id(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
14
+ instances(index: number, obj?: RevitTransform): RevitTransform | null;
15
+ instancesLength(): number;
16
+ coordinateSystem(obj?: RevitTransform): RevitTransform | null;
17
+ static startViralutionElement(builder: flatbuffers.Builder): void;
18
+ static addSolids(builder: flatbuffers.Builder, solidsOffset: flatbuffers.Offset): void;
19
+ static createSolidsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
20
+ static startSolidsVector(builder: flatbuffers.Builder, numElems: number): void;
21
+ static addId(builder: flatbuffers.Builder, idOffset: flatbuffers.Offset): void;
22
+ static addInstances(builder: flatbuffers.Builder, instancesOffset: flatbuffers.Offset): void;
23
+ static createInstancesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
24
+ static startInstancesVector(builder: flatbuffers.Builder, numElems: number): void;
25
+ static addCoordinateSystem(builder: flatbuffers.Builder, coordinateSystemOffset: flatbuffers.Offset): void;
26
+ static endViralutionElement(builder: flatbuffers.Builder): flatbuffers.Offset;
27
+ }
@@ -1,12 +1,12 @@
1
1
  import * as flatbuffers from 'flatbuffers';
2
- import { InnerDictionary } from './inner-dictionary';
2
+ import { ParameterDictionary } from './parameter-dictionary.js';
3
3
  export declare class ViralutionInformation {
4
4
  bb: flatbuffers.ByteBuffer | null;
5
5
  bb_pos: number;
6
6
  __init(i: number, bb: flatbuffers.ByteBuffer): ViralutionInformation;
7
7
  static getRootAsViralutionInformation(bb: flatbuffers.ByteBuffer, obj?: ViralutionInformation): ViralutionInformation;
8
8
  static getSizePrefixedRootAsViralutionInformation(bb: flatbuffers.ByteBuffer, obj?: ViralutionInformation): ViralutionInformation;
9
- data(index: number, obj?: InnerDictionary): InnerDictionary | null;
9
+ data(index: number, obj?: ParameterDictionary): ParameterDictionary | null;
10
10
  dataLength(): number;
11
11
  static startViralutionInformation(builder: flatbuffers.Builder): void;
12
12
  static addData(builder: flatbuffers.Builder, dataOffset: flatbuffers.Offset): void;
@@ -0,0 +1,35 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ export declare class ViralutionParameter {
3
+ bb: flatbuffers.ByteBuffer | null;
4
+ bb_pos: number;
5
+ __init(i: number, bb: flatbuffers.ByteBuffer): ViralutionParameter;
6
+ static getRootAsViralutionParameter(bb: flatbuffers.ByteBuffer, obj?: ViralutionParameter): ViralutionParameter;
7
+ static getSizePrefixedRootAsViralutionParameter(bb: flatbuffers.ByteBuffer, obj?: ViralutionParameter): ViralutionParameter;
8
+ name(): string | null;
9
+ name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
10
+ value(): string | null;
11
+ value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
12
+ applicationUnitType(): string | null;
13
+ applicationUnitType(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
14
+ applicationUnit(): string | null;
15
+ applicationUnit(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
16
+ applicationInternalName(): string | null;
17
+ applicationInternalName(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
18
+ isShared(): boolean;
19
+ isReadOnly(): boolean;
20
+ isTypeParameter(): boolean;
21
+ units(): string | null;
22
+ units(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
23
+ static startViralutionParameter(builder: flatbuffers.Builder): void;
24
+ static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void;
25
+ static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset): void;
26
+ static addApplicationUnitType(builder: flatbuffers.Builder, applicationUnitTypeOffset: flatbuffers.Offset): void;
27
+ static addApplicationUnit(builder: flatbuffers.Builder, applicationUnitOffset: flatbuffers.Offset): void;
28
+ static addApplicationInternalName(builder: flatbuffers.Builder, applicationInternalNameOffset: flatbuffers.Offset): void;
29
+ static addIsShared(builder: flatbuffers.Builder, isShared: boolean): void;
30
+ static addIsReadOnly(builder: flatbuffers.Builder, isReadOnly: boolean): void;
31
+ static addIsTypeParameter(builder: flatbuffers.Builder, isTypeParameter: boolean): void;
32
+ static addUnits(builder: flatbuffers.Builder, unitsOffset: flatbuffers.Offset): void;
33
+ static endViralutionParameter(builder: flatbuffers.Builder): flatbuffers.Offset;
34
+ static createViralutionParameter(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset, applicationUnitTypeOffset: flatbuffers.Offset, applicationUnitOffset: flatbuffers.Offset, applicationInternalNameOffset: flatbuffers.Offset, isShared: boolean, isReadOnly: boolean, isTypeParameter: boolean, unitsOffset: flatbuffers.Offset): flatbuffers.Offset;
35
+ }
@@ -0,0 +1,28 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { Point } from './point.js';
3
+ export declare class ViralutionSolid {
4
+ bb: flatbuffers.ByteBuffer | null;
5
+ bb_pos: number;
6
+ __init(i: number, bb: flatbuffers.ByteBuffer): ViralutionSolid;
7
+ static getRootAsViralutionSolid(bb: flatbuffers.ByteBuffer, obj?: ViralutionSolid): ViralutionSolid;
8
+ static getSizePrefixedRootAsViralutionSolid(bb: flatbuffers.ByteBuffer, obj?: ViralutionSolid): ViralutionSolid;
9
+ vertices(index: number, obj?: Point): Point | null;
10
+ verticesLength(): number;
11
+ indices(index: number): number | null;
12
+ indicesLength(): number;
13
+ indicesArray(): Int32Array | null;
14
+ materialIndex(): number;
15
+ static startViralutionSolid(builder: flatbuffers.Builder): void;
16
+ static addVertices(builder: flatbuffers.Builder, verticesOffset: flatbuffers.Offset): void;
17
+ static startVerticesVector(builder: flatbuffers.Builder, numElems: number): void;
18
+ static addIndices(builder: flatbuffers.Builder, indicesOffset: flatbuffers.Offset): void;
19
+ static createIndicesVector(builder: flatbuffers.Builder, data: number[] | Int32Array): flatbuffers.Offset;
20
+ /**
21
+ * @deprecated This Uint8Array overload will be removed in the future.
22
+ */
23
+ static createIndicesVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
24
+ static startIndicesVector(builder: flatbuffers.Builder, numElems: number): void;
25
+ static addMaterialIndex(builder: flatbuffers.Builder, materialIndex: number): void;
26
+ static endViralutionSolid(builder: flatbuffers.Builder): flatbuffers.Offset;
27
+ static createViralutionSolid(builder: flatbuffers.Builder, verticesOffset: flatbuffers.Offset, indicesOffset: flatbuffers.Offset, materialIndex: number): flatbuffers.Offset;
28
+ }
@@ -0,0 +1,27 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { ModelManagementCameraModel } from './model-management-camera-model.js';
3
+ import { RenderMaterial } from './render-material.js';
4
+ import { ViralutionElement } from './viralution-element.js';
5
+ export declare class ViralutionStandaloneModel {
6
+ bb: flatbuffers.ByteBuffer | null;
7
+ bb_pos: number;
8
+ __init(i: number, bb: flatbuffers.ByteBuffer): ViralutionStandaloneModel;
9
+ static getRootAsViralutionStandaloneModel(bb: flatbuffers.ByteBuffer, obj?: ViralutionStandaloneModel): ViralutionStandaloneModel;
10
+ static getSizePrefixedRootAsViralutionStandaloneModel(bb: flatbuffers.ByteBuffer, obj?: ViralutionStandaloneModel): ViralutionStandaloneModel;
11
+ materials(index: number, obj?: RenderMaterial): RenderMaterial | null;
12
+ materialsLength(): number;
13
+ elements(index: number, obj?: ViralutionElement): ViralutionElement | null;
14
+ elementsLength(): number;
15
+ camera(obj?: ModelManagementCameraModel): ModelManagementCameraModel | null;
16
+ static startViralutionStandaloneModel(builder: flatbuffers.Builder): void;
17
+ static addMaterials(builder: flatbuffers.Builder, materialsOffset: flatbuffers.Offset): void;
18
+ static createMaterialsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
19
+ static startMaterialsVector(builder: flatbuffers.Builder, numElems: number): void;
20
+ static addElements(builder: flatbuffers.Builder, elementsOffset: flatbuffers.Offset): void;
21
+ static createElementsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
22
+ static startElementsVector(builder: flatbuffers.Builder, numElems: number): void;
23
+ static addCamera(builder: flatbuffers.Builder, cameraOffset: flatbuffers.Offset): void;
24
+ static endViralutionStandaloneModel(builder: flatbuffers.Builder): flatbuffers.Offset;
25
+ static finishViralutionStandaloneModelBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
26
+ static finishSizePrefixedViralutionStandaloneModelBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void;
27
+ }
@@ -1,3 +1,8 @@
1
- export { InnerDictionary } from './flatbuffers/inner-dictionary.js';
2
- export { KeyValue } from './flatbuffers/key-value.js';
3
- export { ViralutionInformation } from './flatbuffers/viralution-information.js';
1
+ export { ModelManagementCameraModel } from './flat-buffer/model-management-camera-model.js';
2
+ export { Point } from './flat-buffer/point.js';
3
+ export { RenderMaterial } from './flat-buffer/render-material.js';
4
+ export { RevitTransform } from './flat-buffer/revit-transform.js';
5
+ export { ViralutionBox } from './flat-buffer/viralution-box.js';
6
+ export { ViralutionElement } from './flat-buffer/viralution-element.js';
7
+ export { ViralutionSolid } from './flat-buffer/viralution-solid.js';
8
+ export { ViralutionStandaloneModel } from './flat-buffer/viralution-standalone-model.js';
@@ -0,0 +1,2 @@
1
+ export { ViralutionFlatBufferSerializer } from "./viralution-flatbuffer.serializer";
2
+ export { ViralutionStandaloneSerializer } from "./viralution-standalone.serializer";
@@ -0,0 +1,86 @@
1
+ export declare class ViralutionFlatBufferSerializer {
2
+ /**
3
+ * Reads a FlatBuffer from a URL and parses it into the elementData structure
4
+ * @param url - Full URL or path to fetch the .fb file from
5
+ * @returns Parsed data in the format: { [key: number]: { [key: string]: { [key: string]: string } } }
6
+ */
7
+ static fetchAndParse(url: string): Promise<{
8
+ [key: number]: {
9
+ [key: string]: {
10
+ [key: string]: string;
11
+ };
12
+ };
13
+ }>;
14
+ /**
15
+ * Fetches from URL with flattened structure (properties as individual entries)
16
+ * @param url - Full URL or path to fetch the .fb file from
17
+ * @returns Parsed data with properties as individual entries
18
+ */
19
+ static fetchAndParseFlat(url: string): Promise<{
20
+ [key: number]: {
21
+ [key: string]: {
22
+ [key: string]: string;
23
+ };
24
+ };
25
+ }>;
26
+ /**
27
+ * Reads a FlatBuffer file from the file system and parses it (Node.js only)
28
+ * @param filePath - Path to the .fb file
29
+ * @returns Parsed data in the format: { [key: number]: { [key: string]: { [key: string]: string } } }
30
+ */
31
+ static readFlatBufferFile(filePath: string): {
32
+ [key: number]: {
33
+ [key: string]: {
34
+ [key: string]: string;
35
+ };
36
+ };
37
+ };
38
+ /**
39
+ * Reads a FlatBuffer file from the file system with flattened structure (Node.js only)
40
+ * @param filePath - Path to the .fb file
41
+ * @returns Parsed data with properties as individual entries
42
+ */
43
+ static readFlatBufferFileFlat(filePath: string): {
44
+ [key: number]: {
45
+ [key: string]: {
46
+ [key: string]: string;
47
+ };
48
+ };
49
+ };
50
+ /**
51
+ * Async version for reading from file system (Node.js only)
52
+ * @param filePath - Path to the .fb file
53
+ * @returns Promise with parsed data
54
+ */
55
+ static readFlatBufferFileAsync(filePath: string): Promise<{
56
+ [key: number]: {
57
+ [key: string]: {
58
+ [key: string]: string;
59
+ };
60
+ };
61
+ }>;
62
+ /**
63
+ * Core parsing logic - parses a Uint8Array buffer into the elementData structure
64
+ * @param data - Uint8Array containing the FlatBuffer data
65
+ * @returns Parsed data in the format: { [key: number]: { [key: string]: { [key: string]: string } } }
66
+ */
67
+ private static parseBuffer;
68
+ /**
69
+ * Core parsing logic with flattened structure - stores properties as individual entries
70
+ * @param data - Uint8Array containing the FlatBuffer data
71
+ * @returns Parsed data with properties as individual entries
72
+ */
73
+ private static parseBufferFlat;
74
+ /**
75
+ * Universal loader that detects whether to use fetch or file system
76
+ * @param pathOrUrl - Can be a file path or URL
77
+ * @returns Promise with parsed data
78
+ */
79
+ static load(pathOrUrl: string): Promise<{
80
+ [key: number]: {
81
+ [key: string]: {
82
+ [key: string]: string;
83
+ };
84
+ };
85
+ }>;
86
+ }
@@ -0,0 +1,14 @@
1
+ import { ViralutionStandaloneModel } from '../types';
2
+ export declare class ViralutionStandaloneSerializer {
3
+ /** Load from URL (browser or Node fetch) and parse */
4
+ static fetchAndParse(url: string): Promise<ViralutionStandaloneModel>;
5
+ /** Load from file (Node only) and parse */
6
+ static readFlatBufferFile(filePath: string): ViralutionStandaloneModel;
7
+ /** Async Node file read */
8
+ static readFlatBufferFileAsync(filePath: string): Promise<ViralutionStandaloneModel>;
9
+ /** Universal helper that decides URL vs file */
10
+ static load(pathOrUrl: string): Promise<ViralutionStandaloneModel>;
11
+ /** Parse Uint8Array FlatBuffer → ViralutionStandaloneModel */
12
+ static parseBuffer(data: Uint8Array): ViralutionStandaloneModel;
13
+ private static _toViralPoint;
14
+ }
package/dist/types.d.ts CHANGED
@@ -115,6 +115,11 @@ export declare class ViralutionElement {
115
115
  Id: string;
116
116
  Instances: RevitTransform[];
117
117
  }
118
+ export declare class ViralutionStandaloneModel {
119
+ Materials: RenderMaterial[];
120
+ Elements: ViralutionElement[];
121
+ Camera: ViralutionCamera;
122
+ }
118
123
  export declare class ViralutionSolid {
119
124
  MaterialIndex: number;
120
125
  Vertices: ViralPoint[];
@@ -1,3 +1,31 @@
1
1
  export declare class DeviceDetector {
2
- static getDeviceType(): 'mobile' | 'tablet' | 'pc';
2
+ static getDeviceType(): "mobile" | "tablet" | "pc";
3
3
  }
4
+ interface DeviceSpecs {
5
+ gpuTier: "low" | "medium" | "high";
6
+ cpuCores: number;
7
+ totalMemory: number;
8
+ isMobile: boolean;
9
+ renderer: string;
10
+ maxTextureSize: number;
11
+ supportsFloat32: boolean;
12
+ webglVersion: number;
13
+ }
14
+ export declare class DevicePerformanceChecker {
15
+ private gl;
16
+ private specs;
17
+ constructor();
18
+ private initWebGL;
19
+ private detectSpecs;
20
+ private classifyGPU;
21
+ private estimateMemory;
22
+ private getFallbackSpecs;
23
+ canHandleExpensiveEffects(): boolean;
24
+ canHandleMediumEffects(): boolean;
25
+ canHandleBasicEffects(): boolean;
26
+ private calculatePerformanceScore;
27
+ getSpecs(): DeviceSpecs | null;
28
+ getPerformanceProfile(): "potato" | "low" | "medium" | "high" | "ultra";
29
+ runBenchmark(): Promise<number>;
30
+ }
31
+ export {};
@@ -3,7 +3,6 @@ import { ViralCompressProcessor } from "./components/compress/viral-compress.pro
3
3
  import { ViralCamera } from "./components/camera/viral-camera";
4
4
  import { ViralMouse } from "./components/event-handler/mouse/viral-mouse";
5
5
  import { ViralScene } from "./components/scene/viral-scene";
6
- import { ViralRenderer } from "./components/renderer/viral-renderer";
7
6
  import { ViralAnimation } from "./components/animation/viral-animation";
8
7
  import { LocalStorageService } from "./services/local-storage.service";
9
8
  import { ViralKeyboard } from "./components/event-handler/keyboard/viral-keyboard";
@@ -24,6 +23,8 @@ import { ViralNavigationCube } from "./gui/navigation-cube/viral-navigation-cube
24
23
  import { ViralAvatarManager } from "./components/avatar-manager/viral-avatar-manager";
25
24
  import { ViralGeometryHandler } from "./components/handler/geometry.handler";
26
25
  import { ViralSectionBox } from "./components/section-box/viral-section-box";
26
+ import { ViralPivotPoint } from "./gui/pivot-point/viral-pivot-point";
27
+ import { OptimizedViralRenderer } from "./components/renderer/viral-optimized-renderer";
27
28
  /**
28
29
  * Root of library
29
30
  */
@@ -36,9 +37,10 @@ export declare class ViralViewerApi extends EventDispatcher {
36
37
  viralSpinner: ViralSpinner;
37
38
  viralDraggableModal: ViralDraggableModal;
38
39
  viralContextMenu: ViralContextMenu;
40
+ viralPivotPoint: ViralPivotPoint;
39
41
  viralScene: ViralScene;
40
42
  viralMaterialManager: ViralMaterialManager;
41
- viralRenderer: ViralRenderer;
43
+ viralRenderer: OptimizedViralRenderer;
42
44
  viralCamera: ViralCamera;
43
45
  viralMouse: ViralMouse;
44
46
  viralKeyboard: ViralKeyboard;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "viral-viewer-2",
3
- "version": "6.8.2",
3
+ "version": "6.8.4",
4
4
  "description": "",
5
5
  "main": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -1,20 +0,0 @@
1
- import * as flatbuffers from 'flatbuffers';
2
- import { KeyValue } from './key-value';
3
- export declare class InnerDictionary {
4
- bb: flatbuffers.ByteBuffer | null;
5
- bb_pos: number;
6
- __init(i: number, bb: flatbuffers.ByteBuffer): InnerDictionary;
7
- static getRootAsInnerDictionary(bb: flatbuffers.ByteBuffer, obj?: InnerDictionary): InnerDictionary;
8
- static getSizePrefixedRootAsInnerDictionary(bb: flatbuffers.ByteBuffer, obj?: InnerDictionary): InnerDictionary;
9
- key(): string | null;
10
- key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
11
- parameters(index: number, obj?: KeyValue): KeyValue | null;
12
- parametersLength(): number;
13
- static startInnerDictionary(builder: flatbuffers.Builder): void;
14
- static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset): void;
15
- static addParameters(builder: flatbuffers.Builder, parametersOffset: flatbuffers.Offset): void;
16
- static createParametersVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
17
- static startParametersVector(builder: flatbuffers.Builder, numElems: number): void;
18
- static endInnerDictionary(builder: flatbuffers.Builder): flatbuffers.Offset;
19
- static createInnerDictionary(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, parametersOffset: flatbuffers.Offset): flatbuffers.Offset;
20
- }
@@ -1,17 +0,0 @@
1
- import * as flatbuffers from 'flatbuffers';
2
- export declare class KeyValue {
3
- bb: flatbuffers.ByteBuffer | null;
4
- bb_pos: number;
5
- __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue;
6
- static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue;
7
- static getSizePrefixedRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue;
8
- key(): string | null;
9
- key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
10
- value(): string | null;
11
- value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
12
- static startKeyValue(builder: flatbuffers.Builder): void;
13
- static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset): void;
14
- static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset): void;
15
- static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset;
16
- static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset;
17
- }