@kingsy/viewer 2.25.7

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 (177) hide show
  1. package/dist/IViewer.d.ts +157 -0
  2. package/dist/helpers/flatten.d.ts +11 -0
  3. package/dist/helpers/typeHelper.d.ts +2 -0
  4. package/dist/index.d.ts +89 -0
  5. package/dist/index.js +42 -0
  6. package/dist/modules/Assets.d.ts +15 -0
  7. package/dist/modules/EventEmitter.d.ts +7 -0
  8. package/dist/modules/Helpers.d.ts +3 -0
  9. package/dist/modules/Intersections.d.ts +20 -0
  10. package/dist/modules/KingSyRenderer.d.ts +168 -0
  11. package/dist/modules/LegacyViewer.d.ts +77 -0
  12. package/dist/modules/Shadowcatcher.d.ts +25 -0
  13. package/dist/modules/ShadowcatcherConfig.d.ts +14 -0
  14. package/dist/modules/UrlHelper.d.ts +1 -0
  15. package/dist/modules/Utils.d.ts +10 -0
  16. package/dist/modules/Viewer.d.ts +74 -0
  17. package/dist/modules/WebXrViewer.d.ts +10 -0
  18. package/dist/modules/World.d.ts +31 -0
  19. package/dist/modules/batching/Batch.d.ts +62 -0
  20. package/dist/modules/batching/BatchObject.d.ts +53 -0
  21. package/dist/modules/batching/Batcher.d.ts +60 -0
  22. package/dist/modules/batching/DrawRanges.d.ts +6 -0
  23. package/dist/modules/batching/InstancedBatchObject.d.ts +8 -0
  24. package/dist/modules/batching/InstancedMeshBatch.d.ts +60 -0
  25. package/dist/modules/batching/LineBatch.d.ts +52 -0
  26. package/dist/modules/batching/MeshBatch.d.ts +35 -0
  27. package/dist/modules/batching/PointBatch.d.ts +29 -0
  28. package/dist/modules/batching/PrimitiveBatch.d.ts +57 -0
  29. package/dist/modules/batching/TextBatch.d.ts +41 -0
  30. package/dist/modules/converter/Geometry.d.ts +38 -0
  31. package/dist/modules/converter/MeshTriangulationHelper.d.ts +50 -0
  32. package/dist/modules/converter/Units.d.ts +12 -0
  33. package/dist/modules/extensions/CameraController.d.ts +95 -0
  34. package/dist/modules/extensions/Controls.d.ts +91 -0
  35. package/dist/modules/extensions/DiffExtension.d.ts +50 -0
  36. package/dist/modules/extensions/ExplodeExtension.d.ts +17 -0
  37. package/dist/modules/extensions/Extension.d.ts +15 -0
  38. package/dist/modules/extensions/FilteringExtension.d.ts +55 -0
  39. package/dist/modules/extensions/HybridCameraController.d.ts +14 -0
  40. package/dist/modules/extensions/SelectionExtension.d.ts +53 -0
  41. package/dist/modules/extensions/TransformControls.d.ts +157 -0
  42. package/dist/modules/extensions/ViewModes.d.ts +32 -0
  43. package/dist/modules/extensions/controls/FlyControls.d.ts +82 -0
  44. package/dist/modules/extensions/controls/KingSyControls.d.ts +25 -0
  45. package/dist/modules/extensions/controls/SmoothOrbitControls.d.ts +222 -0
  46. package/dist/modules/extensions/measurements/AreaMeasurement.d.ts +64 -0
  47. package/dist/modules/extensions/measurements/Measurement.d.ts +34 -0
  48. package/dist/modules/extensions/measurements/MeasurementPointGizmo.d.ts +42 -0
  49. package/dist/modules/extensions/measurements/MeasurementsExtension.d.ts +71 -0
  50. package/dist/modules/extensions/measurements/PerpendicularMeasurement.d.ts +19 -0
  51. package/dist/modules/extensions/measurements/PointMeasurement.d.ts +25 -0
  52. package/dist/modules/extensions/measurements/PointToPointMeasurement.d.ts +15 -0
  53. package/dist/modules/extensions/sections/SectionOutlines.d.ts +45 -0
  54. package/dist/modules/extensions/sections/SectionTool.d.ts +219 -0
  55. package/dist/modules/filtering/PropertyManager.d.ts +55 -0
  56. package/dist/modules/input/Input.d.ts +47 -0
  57. package/dist/modules/loaders/GeometryConverter.d.ts +32 -0
  58. package/dist/modules/loaders/KingSy/KingSyConverter.d.ts +118 -0
  59. package/dist/modules/loaders/KingSy/KingSyGeometryConverter.d.ts +127 -0
  60. package/dist/modules/loaders/KingSy/KingSyLoader.d.ts +18 -0
  61. package/dist/modules/loaders/KingSy/KingSyOfflineLoader.d.ts +8 -0
  62. package/dist/modules/loaders/Loader.d.ts +35 -0
  63. package/dist/modules/loaders/OBJ/ObjConverter.d.ts +18 -0
  64. package/dist/modules/loaders/OBJ/ObjGeometryConverter.d.ts +14 -0
  65. package/dist/modules/loaders/OBJ/ObjLoader.d.ts +16 -0
  66. package/dist/modules/materials/KingSyBasicMaterial.d.ts +26 -0
  67. package/dist/modules/materials/KingSyDepthMaterial.d.ts +22 -0
  68. package/dist/modules/materials/KingSyDepthNormalIdMaterial.d.ts +11 -0
  69. package/dist/modules/materials/KingSyDepthNormalMaterial.d.ts +6 -0
  70. package/dist/modules/materials/KingSyDisplaceMaterial.d.ts +11 -0
  71. package/dist/modules/materials/KingSyGhostMaterial.d.ts +8 -0
  72. package/dist/modules/materials/KingSyLineMaterial.d.ts +20 -0
  73. package/dist/modules/materials/KingSyMatcapMaterial.d.ts +19 -0
  74. package/dist/modules/materials/KingSyMaterial.d.ts +65 -0
  75. package/dist/modules/materials/KingSyNormalMaterial.d.ts +18 -0
  76. package/dist/modules/materials/KingSyPointColouredMaterial.d.ts +12 -0
  77. package/dist/modules/materials/KingSyPointMaterial.d.ts +18 -0
  78. package/dist/modules/materials/KingSyShadowcatcherMaterial.d.ts +10 -0
  79. package/dist/modules/materials/KingSyStandardColoredMaterial.d.ts +11 -0
  80. package/dist/modules/materials/KingSyStandardMaterial.d.ts +22 -0
  81. package/dist/modules/materials/KingSyTextMaterial.d.ts +26 -0
  82. package/dist/modules/materials/KingSyViewportMaterial.d.ts +13 -0
  83. package/dist/modules/materials/MaterialOptions.d.ts +6 -0
  84. package/dist/modules/materials/Materials.d.ts +111 -0
  85. package/dist/modules/materials/shaders/kingsy-apply-ao-frag.d.ts +1 -0
  86. package/dist/modules/materials/shaders/kingsy-apply-ao-vert.d.ts +1 -0
  87. package/dist/modules/materials/shaders/kingsy-basic-frag.d.ts +1 -0
  88. package/dist/modules/materials/shaders/kingsy-basic-vert.d.ts +1 -0
  89. package/dist/modules/materials/shaders/kingsy-copy-output-frag.d.ts +1 -0
  90. package/dist/modules/materials/shaders/kingsy-copy-output-vert.d.ts +1 -0
  91. package/dist/modules/materials/shaders/kingsy-depth-frag.d.ts +1 -0
  92. package/dist/modules/materials/shaders/kingsy-depth-normal-frag.d.ts +1 -0
  93. package/dist/modules/materials/shaders/kingsy-depth-normal-id-frag.d.ts +1 -0
  94. package/dist/modules/materials/shaders/kingsy-depth-normal-id-vert.d.ts +1 -0
  95. package/dist/modules/materials/shaders/kingsy-depth-normal-vert.d.ts +1 -0
  96. package/dist/modules/materials/shaders/kingsy-depth-vert.d.ts +1 -0
  97. package/dist/modules/materials/shaders/kingsy-displace-frag.d.ts +1 -0
  98. package/dist/modules/materials/shaders/kingsy-displace.vert.d.ts +1 -0
  99. package/dist/modules/materials/shaders/kingsy-edges-generator-frag.d.ts +1 -0
  100. package/dist/modules/materials/shaders/kingsy-edges-generator-vert.d.ts +1 -0
  101. package/dist/modules/materials/shaders/kingsy-ghost-frag.d.ts +1 -0
  102. package/dist/modules/materials/shaders/kingsy-ghost-vert.d.ts +1 -0
  103. package/dist/modules/materials/shaders/kingsy-line-frag.d.ts +1 -0
  104. package/dist/modules/materials/shaders/kingsy-line-vert.d.ts +1 -0
  105. package/dist/modules/materials/shaders/kingsy-normal-frag.d.ts +1 -0
  106. package/dist/modules/materials/shaders/kingsy-normal-vert.d.ts +1 -0
  107. package/dist/modules/materials/shaders/kingsy-point-frag.d.ts +1 -0
  108. package/dist/modules/materials/shaders/kingsy-point-vert.d.ts +1 -0
  109. package/dist/modules/materials/shaders/kingsy-sao-frag.d.ts +1 -0
  110. package/dist/modules/materials/shaders/kingsy-sao-vert.d.ts +1 -0
  111. package/dist/modules/materials/shaders/kingsy-shadowcatche-frag.d.ts +1 -0
  112. package/dist/modules/materials/shaders/kingsy-shadowcatcher-vert.d.ts +1 -0
  113. package/dist/modules/materials/shaders/kingsy-standard-colored-frag.d.ts +1 -0
  114. package/dist/modules/materials/shaders/kingsy-standard-colored-vert.d.ts +1 -0
  115. package/dist/modules/materials/shaders/kingsy-standard-frag.d.ts +1 -0
  116. package/dist/modules/materials/shaders/kingsy-standard-vert.d.ts +1 -0
  117. package/dist/modules/materials/shaders/kingsy-static-ao-accumulate-frag.d.ts +1 -0
  118. package/dist/modules/materials/shaders/kingsy-static-ao-accumulate-vert.d.ts +1 -0
  119. package/dist/modules/materials/shaders/kingsy-static-ao-generate-frag.d.ts +1 -0
  120. package/dist/modules/materials/shaders/kingsy-static-ao-generate-vert.d.ts +1 -0
  121. package/dist/modules/materials/shaders/kingsy-temporal-supersampling-frag.d.ts +1 -0
  122. package/dist/modules/materials/shaders/kingsy-temporal-supersampling-vert.d.ts +1 -0
  123. package/dist/modules/materials/shaders/kingsy-text-frag.d.ts +1 -0
  124. package/dist/modules/materials/shaders/kingsy-text-vert.d.ts +1 -0
  125. package/dist/modules/materials/shaders/kingsy-viewport-frag.d.ts +1 -0
  126. package/dist/modules/materials/shaders/kingsy-viewport-vert.d.ts +1 -0
  127. package/dist/modules/objects/AccelerationStructure.d.ts +72 -0
  128. package/dist/modules/objects/ExtendedInstancedMesh.d.ts +6 -0
  129. package/dist/modules/objects/JitterQuad.d.ts +10 -0
  130. package/dist/modules/objects/KingSyCamera.d.ts +31 -0
  131. package/dist/modules/objects/KingSyInstancedMesh.d.ts +44 -0
  132. package/dist/modules/objects/KingSyMesh.d.ts +43 -0
  133. package/dist/modules/objects/KingSyRaycaster.d.ts +42 -0
  134. package/dist/modules/objects/KingSyText.d.ts +39 -0
  135. package/dist/modules/objects/KingSyWebGLRenderer.d.ts +24 -0
  136. package/dist/modules/objects/RotatablePMREMGenerator.d.ts +5 -0
  137. package/dist/modules/objects/TopLevelAccelerationStructure.d.ts +41 -0
  138. package/dist/modules/pipeline/Passes/BlendPass.d.ts +17 -0
  139. package/dist/modules/pipeline/Passes/DepthNormalIdPass.d.ts +12 -0
  140. package/dist/modules/pipeline/Passes/DepthNormalPass.d.ts +25 -0
  141. package/dist/modules/pipeline/Passes/DepthPass.d.ts +23 -0
  142. package/dist/modules/pipeline/Passes/EdgesPass.d.ts +25 -0
  143. package/dist/modules/pipeline/Passes/GPass.d.ts +88 -0
  144. package/dist/modules/pipeline/Passes/GeometryPass.d.ts +7 -0
  145. package/dist/modules/pipeline/Passes/NormalsPass.d.ts +8 -0
  146. package/dist/modules/pipeline/Passes/OutputPass.d.ts +23 -0
  147. package/dist/modules/pipeline/Passes/ProgressiveAOPass.d.ts +30 -0
  148. package/dist/modules/pipeline/Passes/ShadedPass.d.ts +26 -0
  149. package/dist/modules/pipeline/Passes/ShadowcatcherPass.d.ts +43 -0
  150. package/dist/modules/pipeline/Passes/StencilMaskPass.d.ts +9 -0
  151. package/dist/modules/pipeline/Passes/StencilPass.d.ts +9 -0
  152. package/dist/modules/pipeline/Passes/TAAPass.d.ts +15 -0
  153. package/dist/modules/pipeline/Passes/ViewportPass.d.ts +22 -0
  154. package/dist/modules/pipeline/Pipelines/ArcticViewPipeline.d.ts +7 -0
  155. package/dist/modules/pipeline/Pipelines/DefaultPipeline.d.ts +6 -0
  156. package/dist/modules/pipeline/Pipelines/EdgesPipeline.d.ts +28 -0
  157. package/dist/modules/pipeline/Pipelines/PenViewPipeline.d.ts +6 -0
  158. package/dist/modules/pipeline/Pipelines/Pipeline.d.ts +43 -0
  159. package/dist/modules/pipeline/Pipelines/ProgressivePipeline.d.ts +24 -0
  160. package/dist/modules/pipeline/Pipelines/ShadedViewPipeline.d.ts +7 -0
  161. package/dist/modules/pipeline/Pipelines/SolidViewPipeline.d.ts +6 -0
  162. package/dist/modules/pipeline/Pipelines/TAAPipeline.d.ts +7 -0
  163. package/dist/modules/queries/IntersectionQuerySolver.d.ts +11 -0
  164. package/dist/modules/queries/PointQuerySolver.d.ts +9 -0
  165. package/dist/modules/queries/Queries.d.ts +9 -0
  166. package/dist/modules/queries/Query.d.ts +51 -0
  167. package/dist/modules/three/stats.d.ts +4 -0
  168. package/dist/modules/tree/NodeMap.d.ts +20 -0
  169. package/dist/modules/tree/NodeRenderView.d.ts +51 -0
  170. package/dist/modules/tree/RenderTree.d.ts +36 -0
  171. package/dist/modules/tree/WorldTree.d.ts +52 -0
  172. package/dist/modules/utils/AngleDamper.d.ts +18 -0
  173. package/dist/modules/utils/Damper.d.ts +17 -0
  174. package/dist/modules/utils/Logger.d.ts +2 -0
  175. package/dist/type-augmentations/three-extensions.d.ts +1 -0
  176. package/package.json +99 -0
  177. package/readme.md +30 -0
@@ -0,0 +1,118 @@
1
+ import { type TreeNode, WorldTree } from '../../tree/WorldTree.js';
2
+ import { type KingSyObject } from '../../../index.js';
3
+ import { ObjectLoader2 } from '@kingsy/objectloader2';
4
+ export type ConverterResultDelegate = () => Promise<void>;
5
+ export type KingSyConverterNodeDelegate = ((object: KingSyObject, node: TreeNode) => Promise<void>) | null;
6
+ /**
7
+ * Utility class providing some top level conversion methods.
8
+ * Warning: HIC SVNT DRACONES.
9
+ */
10
+ export default class KingSyConverter {
11
+ protected objectLoader: ObjectLoader2;
12
+ protected activePromises: number;
13
+ protected maxChildrenPromises: number;
14
+ protected spoofIDs: boolean;
15
+ protected tree: WorldTree;
16
+ protected subtree: TreeNode;
17
+ protected typeLookupTable: {
18
+ [type: string]: string;
19
+ };
20
+ protected instanceDefinitionLookupTable: {
21
+ [id: string]: TreeNode;
22
+ };
23
+ protected instancedObjectsLookupTable: {
24
+ [id: string]: KingSyObject;
25
+ };
26
+ protected instanceProxies: {
27
+ [id: string]: TreeNode;
28
+ };
29
+ protected renderMaterialMap: {
30
+ [id: string]: KingSyObject;
31
+ };
32
+ protected colorMap: {
33
+ [id: string]: KingSyObject;
34
+ };
35
+ protected instanceCounter: number;
36
+ protected readonly NodeConverterMapping: {
37
+ [name: string]: KingSyConverterNodeDelegate;
38
+ };
39
+ protected readonly IgnoreNodes: string[];
40
+ constructor(objectLoader: ObjectLoader2, tree: WorldTree);
41
+ /**
42
+ * If the object is convertible (there is a direct conversion routine), it will invoke the callback with the conversion result.
43
+ * If the object is not convertible, it will recursively iterate through it (arrays & objects) and invoke the callback on any positive conversion result.
44
+ * @param {[type]} obj [description]
45
+ * @param {Function} callback [description]
46
+ * @return {[type]} [description]
47
+ */
48
+ traverse(objectURL: string, obj: KingSyObject, callback: ConverterResultDelegate, node?: TreeNode | null): Promise<void>;
49
+ private getNodeId;
50
+ /**
51
+ * Takes an array composed of chunked references and dechunks it.
52
+ * @param {[type]} arr [description]
53
+ * @return {[type]} [description]
54
+ */
55
+ private dechunk;
56
+ /**
57
+ * Resolves an object reference by waiting for the loader to load it up.
58
+ * @param {[type]} obj [description]
59
+ * @return {[type]} [description]
60
+ */
61
+ private resolveReference;
62
+ /**
63
+ * Gets the kingsy type of an object in various scenarios.
64
+ * @param {[type]} obj [description]
65
+ * @return {[type]} [description]
66
+ */
67
+ private getKingSyType;
68
+ private getKingSyTypeChain;
69
+ private directNodeConverterExists;
70
+ private convertToNode;
71
+ private getDisplayValue;
72
+ private getElementsValue;
73
+ private getBlockDefinition;
74
+ private getBlockDefinitionGeometry;
75
+ /** We're wasting a few milis here, but it is what it is */
76
+ private getCompoundId;
77
+ private getEmptyTransformData;
78
+ /**
79
+ *
80
+ NODES
81
+ */
82
+ private View3DToNode;
83
+ /** This is only used for Blocks to search for convertible objects, without using the main 'traverse' function
84
+ * It's only looking for 'elements' and 'displayValues'
85
+ * I think it can be used for RevitInstances as well to replace it's current lookup, but I'm afraid to do it
86
+ */
87
+ private displayableLookup;
88
+ private parseInstanceDefinitionGeometry;
89
+ private parseInstanceElement;
90
+ private BlockInstanceToNode;
91
+ private RevitInstanceToNode;
92
+ private InstanceDefinitionProxyToNode;
93
+ private InstanceProxyToNode;
94
+ private RenderMaterialProxyToNode;
95
+ private ColorProxyToNode;
96
+ private getInstanceProxyDefinitionId;
97
+ private getInstanceProxyTransform;
98
+ private getInstanceProxyDefinitionObjects;
99
+ private createTransformNode;
100
+ private ConvertInstanceProxyToNode;
101
+ convertInstances(): Promise<void>;
102
+ applyMaterials(): Promise<void>;
103
+ private PointcloudToNode;
104
+ private BrepToNode;
105
+ private MeshToNode;
106
+ private RegionToNode;
107
+ private TextToNode;
108
+ private DimensionToNode;
109
+ private PointToNode;
110
+ private LineToNode;
111
+ private PolylineToNode;
112
+ private BoxToNode;
113
+ private PolycurveToNode;
114
+ private CurveToNode;
115
+ private CircleToNode;
116
+ private ArcToNode;
117
+ private EllipseToNode;
118
+ }
@@ -0,0 +1,127 @@
1
+ import { type GeometryData } from '../../converter/Geometry.js';
2
+ import { type NodeData } from '../../tree/WorldTree.js';
3
+ import { Vector2, Vector3 } from 'three';
4
+ import { GeometryConverter, KingSyType } from '../GeometryConverter.js';
5
+ export declare class KingSyGeometryConverter extends GeometryConverter {
6
+ typeLookupTable: {
7
+ [type: string]: KingSyType;
8
+ };
9
+ meshTriangulationTime: number;
10
+ actualTriangulateTime: number;
11
+ pushTime: number;
12
+ getKingSyType(node: NodeData): KingSyType;
13
+ convertNodeToGeometryData(node: NodeData): GeometryData | null;
14
+ disposeNodeGeometryData(node: NodeData): void;
15
+ protected View3DToGeometryData(node: NodeData): GeometryData;
16
+ protected TransformToGeometryData(node: NodeData): GeometryData;
17
+ /** BLOCK INSTANCE */
18
+ protected BlockInstanceToGeometryData(node: NodeData): GeometryData | null;
19
+ /** REVIT INSTANCE */
20
+ protected RevitInstanceToGeometryData(node: NodeData): GeometryData | null;
21
+ /** DUI3 INSTANCE PROXY */
22
+ protected InstanceProxyToGeometyData(node: NodeData): GeometryData | null;
23
+ /**
24
+ * POINT CLOUD
25
+ */
26
+ protected PointcloudToGeometryData(node: NodeData): GeometryData | null;
27
+ /**
28
+ * BREP
29
+ */
30
+ protected BrepToGeometryData(node: NodeData): GeometryData | null;
31
+ /**
32
+ * REGION
33
+ */
34
+ protected RegionGeometyData(node: NodeData): GeometryData | null;
35
+ /**
36
+ * MESH
37
+ */
38
+ protected MeshToGeometryData(node: NodeData): GeometryData | null;
39
+ /**
40
+ * TEXT
41
+ */
42
+ protected TextToGeometryData(node: NodeData): GeometryData | null;
43
+ /**
44
+ * POINT
45
+ */
46
+ protected PointToGeometryData(node: NodeData): GeometryData | null;
47
+ /**
48
+ * LINE
49
+ */
50
+ protected LineToGeometryData(node: NodeData): GeometryData | null;
51
+ /**
52
+ * POLYLINE
53
+ */
54
+ protected PolylineToGeometryData(node: NodeData): GeometryData | null;
55
+ /**
56
+ * BOX
57
+ */
58
+ protected BoxToGeometryData(node: NodeData): GeometryData | null;
59
+ /**
60
+ * POLYCURVE
61
+ */
62
+ protected PolycurveToGeometryData(node: NodeData): GeometryData | null;
63
+ /**
64
+ * CURVE
65
+ */
66
+ protected CurveToGeometryData(node: NodeData): GeometryData | null;
67
+ /**
68
+ * CIRCLE
69
+ */
70
+ protected CircleToGeometryData(node: NodeData): GeometryData | null;
71
+ /**
72
+ * ARC
73
+ */
74
+ protected ArcToGeometryData(node: NodeData): GeometryData | null;
75
+ /**
76
+ * ELLIPSE
77
+ */
78
+ protected EllipseToGeometryData(node: NodeData): GeometryData | null;
79
+ /**
80
+ * UTILS
81
+ */
82
+ protected getCircularCurvePoints(plane: {
83
+ xdir: {
84
+ value: Array<number>;
85
+ units: string;
86
+ } & {
87
+ x: number;
88
+ y: number;
89
+ z: number;
90
+ };
91
+ ydir: {
92
+ value: Array<number>;
93
+ units: string;
94
+ } & {
95
+ x: number;
96
+ y: number;
97
+ z: number;
98
+ };
99
+ origin: {
100
+ value: Array<number>;
101
+ units: string;
102
+ } & {
103
+ x: number;
104
+ y: number;
105
+ z: number;
106
+ };
107
+ }, radius: number, startAngle?: number, endAngle?: number, res?: number): Vector3[];
108
+ protected PointToVector3(obj: {
109
+ value: Array<number>;
110
+ units: string;
111
+ } & {
112
+ x: number;
113
+ y: number;
114
+ z: number;
115
+ }, scale?: boolean): Vector3;
116
+ protected PointToFloatArray(obj: {
117
+ value: Array<number>;
118
+ units: string;
119
+ } & {
120
+ x: number;
121
+ y: number;
122
+ z: number;
123
+ }): number[];
124
+ protected FlattenVector3Array(input: Vector3[] | Vector2[]): number[];
125
+ protected unpackColors(int32Colors: number[], tolinear?: boolean): number[];
126
+ protected srgbToLinear(x: number): number;
127
+ }
@@ -0,0 +1,18 @@
1
+ import KingSyConverter from './KingSyConverter.js';
2
+ import { Loader } from '../Loader.js';
3
+ import { WorldTree } from '../../../index.js';
4
+ import { ObjectLoader2 } from '@kingsy/objectloader2';
5
+ export declare class KingSyLoader extends Loader {
6
+ protected loader: ObjectLoader2;
7
+ protected converter: KingSyConverter;
8
+ protected tree: WorldTree;
9
+ protected isCancelled: boolean;
10
+ protected isFinished: boolean;
11
+ get resource(): string;
12
+ get finished(): boolean;
13
+ constructor(targetTree: WorldTree, resource: string, authToken?: string, enableCaching?: boolean, resourceData?: unknown);
14
+ protected initObjectLoader(resource: string, authToken?: string, _enableCaching?: boolean, resourceData?: unknown): ObjectLoader2;
15
+ load(): Promise<boolean>;
16
+ cancel(): void;
17
+ dispose(): void;
18
+ }
@@ -0,0 +1,8 @@
1
+ import { KingSyLoader } from './KingSyLoader.js';
2
+ import { WorldTree } from '../../tree/WorldTree.js';
3
+ import { ObjectLoader2 } from '@kingsy/objectloader2';
4
+ export declare class KingSyOfflineLoader extends KingSyLoader {
5
+ constructor(targetTree: WorldTree, resourceData: unknown, resourceId?: string);
6
+ protected initObjectLoader(_resource: string, _authToken?: string, _enableCaching?: boolean, resourceData?: unknown): ObjectLoader2;
7
+ load(): Promise<boolean>;
8
+ }
@@ -0,0 +1,35 @@
1
+ import EventEmitter from '../EventEmitter.js';
2
+ export declare enum LoaderEvent {
3
+ LoadProgress = "load-progress",
4
+ LoadCancelled = "load-cancelled",
5
+ LoadWarning = "load-warning",
6
+ Converted = "converted",
7
+ Traversed = "traversed"
8
+ }
9
+ export interface LoaderEventPayload {
10
+ [LoaderEvent.LoadProgress]: {
11
+ progress: number;
12
+ id: string;
13
+ };
14
+ [LoaderEvent.Converted]: {
15
+ count: number;
16
+ };
17
+ [LoaderEvent.Traversed]: {
18
+ count: number;
19
+ };
20
+ [LoaderEvent.LoadCancelled]: string;
21
+ [LoaderEvent.LoadWarning]: {
22
+ message: string;
23
+ };
24
+ }
25
+ export declare abstract class Loader extends EventEmitter {
26
+ protected _resource: string;
27
+ protected _resourceData: unknown;
28
+ abstract get resource(): string;
29
+ abstract get finished(): boolean;
30
+ protected constructor(resource: string, resourceData?: unknown);
31
+ on<T extends LoaderEvent>(eventType: T, listener: (arg: LoaderEventPayload[T]) => void): void;
32
+ abstract load(): Promise<boolean>;
33
+ abstract cancel(): void;
34
+ dispose(): void;
35
+ }
@@ -0,0 +1,18 @@
1
+ import { Object3D } from 'three';
2
+ import { type TreeNode, WorldTree } from '../../tree/WorldTree.js';
3
+ import type { ConverterResultDelegate } from '../KingSy/KingSyConverter.js';
4
+ export type ObjConverterNodeDelegate = ((object: Object3D, node: TreeNode) => Promise<void>) | null;
5
+ export declare class ObjConverter {
6
+ protected lastAsyncPause: number;
7
+ protected tree: WorldTree;
8
+ protected readonly NodeConverterMapping: {
9
+ [name: string]: ObjConverterNodeDelegate;
10
+ };
11
+ constructor(tree: WorldTree);
12
+ asyncPause(): Promise<void>;
13
+ traverse(objectURL: string, object: Object3D, callback: ConverterResultDelegate, node?: TreeNode | null): Promise<void>;
14
+ private directNodeConverterExists;
15
+ private convertToNode;
16
+ private MeshToNode;
17
+ private groupToNode;
18
+ }
@@ -0,0 +1,14 @@
1
+ import { type NodeData } from '../../../index.js';
2
+ import { type GeometryData } from '../../converter/Geometry.js';
3
+ import { GeometryConverter, KingSyType } from '../GeometryConverter.js';
4
+ export declare class ObjGeometryConverter extends GeometryConverter {
5
+ getKingSyType(node: NodeData): KingSyType;
6
+ convertNodeToGeometryData(node: NodeData): GeometryData | null;
7
+ disposeNodeGeometryData(node: NodeData): void;
8
+ /** BLOCK INSTANCE */
9
+ protected BlockInstanceToGeometryData(node: NodeData): GeometryData;
10
+ /**
11
+ * MESH
12
+ */
13
+ protected MeshToGeometryData(node: NodeData): GeometryData | null;
14
+ }
@@ -0,0 +1,16 @@
1
+ import { Loader } from '../Loader.js';
2
+ import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
3
+ import { ObjConverter } from './ObjConverter.js';
4
+ import { WorldTree } from '../../../index.js';
5
+ export declare class ObjLoader extends Loader {
6
+ protected baseLoader: OBJLoader;
7
+ protected converter: ObjConverter;
8
+ protected tree: WorldTree;
9
+ protected isFinished: boolean;
10
+ get resource(): string;
11
+ get finished(): boolean;
12
+ constructor(targetTree: WorldTree, resource: string, resourceData?: unknown);
13
+ load(): Promise<boolean>;
14
+ cancel(): void;
15
+ dispose(): void;
16
+ }
@@ -0,0 +1,26 @@
1
+ import { Material, type IUniform, Vector2, type MeshBasicMaterialParameters, Scene, Camera, BufferGeometry, Object3D } from 'three';
2
+ import { Matrix4 } from 'three';
3
+ import { ExtendedMeshBasicMaterial, type Uniforms } from './KingSyMaterial.js';
4
+ import type { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
5
+ declare class KingSyBasicMaterial extends ExtendedMeshBasicMaterial {
6
+ protected static readonly matBuff: Matrix4;
7
+ protected static readonly vecBuff: Vector2;
8
+ private _billboardPixelHeight;
9
+ private _billboardOffset;
10
+ protected get vertexProgram(): string;
11
+ protected get fragmentProgram(): string;
12
+ protected get baseUniforms(): {
13
+ [uniform: string]: IUniform;
14
+ };
15
+ protected get uniformsDef(): Uniforms;
16
+ set billboardPixelHeight(value: number);
17
+ set billboardOffset(value: Vector2);
18
+ constructor(parameters: MeshBasicMaterialParameters, defines?: string[]);
19
+ /** We need a unique key per program */
20
+ customProgramCacheKey(): string;
21
+ copy(source: Material): this;
22
+ fastCopy(from: Material, to: Material): void;
23
+ /** Called by three.js render loop */
24
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
25
+ }
26
+ export default KingSyBasicMaterial;
@@ -0,0 +1,22 @@
1
+ import { BufferGeometry, Camera, Object3D, Scene, type IUniform, type MeshDepthMaterialParameters } from 'three';
2
+ import { Material } from 'three';
3
+ import { ExtendedMeshDepthMaterial, type Uniforms } from './KingSyMaterial.js';
4
+ import type { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
5
+ declare class KingSyDepthMaterial extends ExtendedMeshDepthMaterial {
6
+ protected get vertexProgram(): string;
7
+ protected get fragmentProgram(): string;
8
+ protected get baseUniforms(): {
9
+ [uniform: string]: IUniform;
10
+ };
11
+ protected get uniformsDef(): Uniforms;
12
+ constructor(parameters: MeshDepthMaterialParameters, defines?: string[]);
13
+ /** We need a unique key per program */
14
+ customProgramCacheKey(): string;
15
+ copy(source: Material): this;
16
+ fastCopy(from: Material, to: Material): void;
17
+ /** Another note here, this will NOT get called by three when rendering shadowmaps. We update the uniforms manually
18
+ * inside KingSyRenderer for shadowmaps
19
+ */
20
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
21
+ }
22
+ export default KingSyDepthMaterial;
@@ -0,0 +1,11 @@
1
+ import { BufferGeometry, Camera, Object3D, Scene } from 'three';
2
+ import { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
3
+ import KingSyDepthNormalMaterial from './KingSyDepthNormalMaterial.js';
4
+ import { Uniforms } from './KingSyMaterial.js';
5
+ declare class KingSyDepthNormalIdMaterial extends KingSyDepthNormalMaterial {
6
+ protected get vertexProgram(): string;
7
+ protected get fragmentProgram(): string;
8
+ protected get uniformsDef(): Uniforms;
9
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
10
+ }
11
+ export default KingSyDepthNormalIdMaterial;
@@ -0,0 +1,6 @@
1
+ import KingSyDepthMaterial from './KingSyDepthMaterial.js';
2
+ declare class KingSyDepthNormalMaterial extends KingSyDepthMaterial {
3
+ protected get vertexProgram(): string;
4
+ protected get fragmentProgram(): string;
5
+ }
6
+ export default KingSyDepthNormalMaterial;
@@ -0,0 +1,11 @@
1
+ import { Material, type MeshBasicMaterialParameters } from 'three';
2
+ import KingSyBasicMaterial from './KingSyBasicMaterial.js';
3
+ import { type Uniforms } from './KingSyMaterial.js';
4
+ declare class KingSyDisplaceMaterial extends KingSyBasicMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get uniformsDef(): Uniforms;
8
+ constructor(parameters: MeshBasicMaterialParameters, defines?: string[]);
9
+ fastCopy(from: Material, to: Material): void;
10
+ }
11
+ export default KingSyDisplaceMaterial;
@@ -0,0 +1,8 @@
1
+ import KingSyBasicMaterial from './KingSyBasicMaterial.js';
2
+ import type { MeshBasicMaterialParameters } from 'three';
3
+ declare class KingSyGhostMaterial extends KingSyBasicMaterial {
4
+ protected get vertexProgram(): string;
5
+ protected get fragmentProgram(): string;
6
+ constructor(parameters: MeshBasicMaterialParameters, defines?: string[]);
7
+ }
8
+ export default KingSyGhostMaterial;
@@ -0,0 +1,20 @@
1
+ import { type IUniform, Material, Scene, Camera, BufferGeometry, Object3D } from 'three';
2
+ import { ExtendedLineMaterial, type Uniforms } from './KingSyMaterial.js';
3
+ import { type LineMaterialParameters } from 'three/examples/jsm/lines/LineMaterial.js';
4
+ import type { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
5
+ declare class KingSyLineMaterial extends ExtendedLineMaterial {
6
+ protected get vertexProgram(): string;
7
+ protected get fragmentProgram(): string;
8
+ protected get baseUniforms(): {
9
+ [uniform: string]: IUniform;
10
+ };
11
+ protected get uniformsDef(): Uniforms;
12
+ set pixelThreshold(value: number);
13
+ constructor(parameters: LineMaterialParameters, defines?: string[]);
14
+ /** We need a unique key per program */
15
+ customProgramCacheKey(): string;
16
+ copy(source: Material): this;
17
+ fastCopy(from: Material, to: Material): void;
18
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
19
+ }
20
+ export default KingSyLineMaterial;
@@ -0,0 +1,19 @@
1
+ import { BufferGeometry, Camera, Material, MeshMatcapMaterialParameters, Object3D, Scene, type IUniform } from 'three';
2
+ import { ExtendedMatcapMaterial, type Uniforms } from './KingSyMaterial.js';
3
+ import type { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
4
+ declare class KingSyMatcapMaterial extends ExtendedMatcapMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get baseUniforms(): {
8
+ [uniform: string]: IUniform;
9
+ };
10
+ protected get uniformsDef(): Uniforms;
11
+ constructor(parameters: MeshMatcapMaterialParameters, defines?: never[]);
12
+ /** We need a unique key per program */
13
+ customProgramCacheKey(): string;
14
+ copy(source: Material): this;
15
+ fastCopy(from: Material, to: Material): void;
16
+ /** Called by three.js render loop */
17
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
18
+ }
19
+ export default KingSyMatcapMaterial;
@@ -0,0 +1,65 @@
1
+ import { type IUniform, Material, MeshBasicMaterial, MeshDepthMaterial, MeshNormalMaterial, MeshStandardMaterial, PointsMaterial, type Shader, MeshMatcapMaterial } from 'three';
2
+ import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial.js';
3
+ import { StencilOutlineType } from '../../IViewer.js';
4
+ import { type MaterialOptions } from './MaterialOptions.js';
5
+ declare class KingSyUserData {
6
+ [k: string]: unknown;
7
+ toJSON(): {};
8
+ }
9
+ export type Uniforms = Record<string, any>;
10
+ export declare class KingSyMaterial {
11
+ protected _internalUniforms: Shader;
12
+ protected _stencilOutline: StencilOutlineType;
13
+ needsCopy: boolean;
14
+ protected get kingsyUserData(): KingSyUserData;
15
+ protected set kingsyUserData(value: KingSyUserData);
16
+ protected get kingsyDefines(): Record<string, unknown> | undefined;
17
+ protected set kingsyDefines(value: Record<string, unknown> | undefined);
18
+ protected get vertexProgram(): string;
19
+ protected get fragmentProgram(): string;
20
+ protected get uniformsDef(): Uniforms;
21
+ protected get baseUniforms(): {
22
+ [uniform: string]: IUniform;
23
+ };
24
+ protected set stencilOutline(value: StencilOutlineType);
25
+ protected set pointSize(value: number);
26
+ protected init(defines?: Array<string>): void;
27
+ protected setUniforms(def: Uniforms): void;
28
+ protected setDefines(defines?: Array<string>): void;
29
+ protected copyUniforms(material: Material): void;
30
+ protected bindUniforms(): void;
31
+ protected copyFrom(source: Material): void;
32
+ protected onCompile(shader: Shader): void;
33
+ fastCopy(from: Material, to: Material): void;
34
+ setMaterialOptions(options: MaterialOptions): void;
35
+ }
36
+ export declare class ExtendedMeshStandardMaterial extends MeshStandardMaterial {
37
+ }
38
+ export declare class ExtendedMeshBasicMaterial extends MeshBasicMaterial {
39
+ }
40
+ export declare class ExtendedMeshDepthMaterial extends MeshDepthMaterial {
41
+ }
42
+ export declare class ExtendedMeshNormalMaterial extends MeshNormalMaterial {
43
+ }
44
+ export declare class ExtendedMatcapMaterial extends MeshMatcapMaterial {
45
+ }
46
+ export declare class ExtendedLineMaterial extends LineMaterial {
47
+ }
48
+ export declare class ExtendedPointsMaterial extends PointsMaterial {
49
+ }
50
+ export interface ExtendedMeshStandardMaterial extends KingSyMaterial {
51
+ }
52
+ export interface ExtendedMeshBasicMaterial extends KingSyMaterial {
53
+ }
54
+ export interface ExtendedMeshDepthMaterial extends KingSyMaterial {
55
+ }
56
+ export interface ExtendedMeshNormalMaterial extends KingSyMaterial {
57
+ }
58
+ export interface ExtendedMatcapMaterial extends KingSyMaterial {
59
+ }
60
+ export interface ExtendedLineMaterial extends KingSyMaterial {
61
+ }
62
+ export interface ExtendedPointsMaterial extends KingSyMaterial {
63
+ }
64
+ export declare function applyMixins(derivedCtor: any, constructors: any[]): void;
65
+ export {};
@@ -0,0 +1,18 @@
1
+ import { BufferGeometry, Camera, Material, Object3D, Scene, type IUniform, type MeshNormalMaterialParameters } from 'three';
2
+ import { ExtendedMeshNormalMaterial, type Uniforms } from './KingSyMaterial.js';
3
+ import type { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
4
+ declare class KingSyNormalMaterial extends ExtendedMeshNormalMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get baseUniforms(): {
8
+ [uniform: string]: IUniform;
9
+ };
10
+ protected get uniformsDef(): Uniforms;
11
+ constructor(parameters: MeshNormalMaterialParameters, defines?: string[]);
12
+ /** We need a unique key per program */
13
+ customProgramCacheKey(): string;
14
+ copy(source: Material): this;
15
+ /** Called by three.js render loop */
16
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
17
+ }
18
+ export default KingSyNormalMaterial;
@@ -0,0 +1,12 @@
1
+ import { Material, Texture, type PointsMaterialParameters } from 'three';
2
+ import type { Uniforms } from './KingSyMaterial.js';
3
+ import KingSyPointMaterial from './KingSyPointMaterial.js';
4
+ declare class KingSyPointColouredMaterial extends KingSyPointMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get uniformsDef(): Uniforms;
8
+ constructor(parameters: PointsMaterialParameters, defines?: string[]);
9
+ setGradientTexture(texture: Texture): void;
10
+ fastCopy(from: Material, to: Material): void;
11
+ }
12
+ export default KingSyPointColouredMaterial;
@@ -0,0 +1,18 @@
1
+ import { type IUniform, Material, type PointsMaterialParameters, Scene, Camera, BufferGeometry, Object3D } from 'three';
2
+ import { ExtendedPointsMaterial, type Uniforms } from './KingSyMaterial.js';
3
+ import type { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
4
+ declare class KingSyPointMaterial extends ExtendedPointsMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get baseUniforms(): {
8
+ [uniform: string]: IUniform;
9
+ };
10
+ protected get uniformsDef(): Uniforms;
11
+ constructor(parameters: PointsMaterialParameters, defines?: string[]);
12
+ /** We need a unique key per program */
13
+ customProgramCacheKey(): string;
14
+ copy(source: Material): this;
15
+ fastCopy(from: Material, to: Material): void;
16
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
17
+ }
18
+ export default KingSyPointMaterial;
@@ -0,0 +1,10 @@
1
+ import KingSyBasicMaterial from './KingSyBasicMaterial.js';
2
+ import { type MeshBasicMaterialParameters } from 'three';
3
+ import { type Uniforms } from './KingSyMaterial.js';
4
+ declare class KingSyShadowcatcherMaterial extends KingSyBasicMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get uniformsDef(): Uniforms;
8
+ constructor(parameters: MeshBasicMaterialParameters, defines?: never[]);
9
+ }
10
+ export default KingSyShadowcatcherMaterial;
@@ -0,0 +1,11 @@
1
+ import { Texture, type MeshStandardMaterialParameters } from 'three';
2
+ import KingSyStandardMaterial from './KingSyStandardMaterial.js';
3
+ import { type Uniforms } from './KingSyMaterial.js';
4
+ declare class KingSyStandardColoredMaterial extends KingSyStandardMaterial {
5
+ protected get vertexProgram(): string;
6
+ protected get fragmentProgram(): string;
7
+ protected get uniformsDef(): Uniforms;
8
+ constructor(parameters: MeshStandardMaterialParameters, defines?: never[]);
9
+ setGradientTexture(texture: Texture): void;
10
+ }
11
+ export default KingSyStandardColoredMaterial;
@@ -0,0 +1,22 @@
1
+ import { Material, type IUniform, type MeshStandardMaterialParameters, Scene, Camera, BufferGeometry, Object3D } from 'three';
2
+ import { ExtendedMeshStandardMaterial, type Uniforms } from './KingSyMaterial.js';
3
+ import { KingSyWebGLRenderer } from '../objects/KingSyWebGLRenderer.js';
4
+ declare class KingSyStandardMaterial extends ExtendedMeshStandardMaterial {
5
+ protected originalRoughness: number | undefined;
6
+ protected artificialRoughness: number | undefined;
7
+ protected get vertexProgram(): string;
8
+ protected get fragmentProgram(): string;
9
+ protected get baseUniforms(): {
10
+ [uniform: string]: IUniform;
11
+ };
12
+ protected get uniformsDef(): Uniforms;
13
+ constructor(parameters: MeshStandardMaterialParameters, defines?: string[]);
14
+ /** We need a unique key per program */
15
+ customProgramCacheKey(): string;
16
+ copy(source: Material): this;
17
+ fastCopy(from: Material, to: Material): void;
18
+ updateArtificialRoughness(artificialRougness?: number): void;
19
+ /** Called by three.js render loop */
20
+ onBeforeRender(_this: KingSyWebGLRenderer, _scene: Scene, _camera: Camera, _geometry: BufferGeometry, object: Object3D): void;
21
+ }
22
+ export default KingSyStandardMaterial;