@thatopen/components 2.4.10 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +92 -92
  2. package/dist/index.cjs +18407 -25922
  3. package/dist/index.d.ts +4537 -6
  4. package/dist/index.min.cjs +3 -3
  5. package/dist/index.min.mjs +3 -3
  6. package/dist/index.mjs +18409 -25924
  7. package/package.json +58 -61
  8. package/dist/core/Clipper/index.d.ts +0 -142
  9. package/dist/core/Clipper/src/clipper-config.d.ts +0 -33
  10. package/dist/core/Clipper/src/index.d.ts +0 -1
  11. package/dist/core/Clipper/src/simple-plane.d.ts +0 -99
  12. package/dist/core/Components/index.d.ts +0 -93
  13. package/dist/core/ConfigManager/index.d.ts +0 -21
  14. package/dist/core/ConfigManager/src/configurator.d.ts +0 -13
  15. package/dist/core/ConfigManager/src/index.d.ts +0 -1
  16. package/dist/core/Cullers/index.d.ts +0 -56
  17. package/dist/core/Cullers/src/culler-renderer-config.d.ts +0 -74
  18. package/dist/core/Cullers/src/culler-renderer.d.ts +0 -76
  19. package/dist/core/Cullers/src/index.d.ts +0 -3
  20. package/dist/core/Cullers/src/mesh-culler-renderer.d.ts +0 -59
  21. package/dist/core/Cullers/src/screen-culler-helper.d.ts +0 -1
  22. package/dist/core/Disposer/index.d.ts +0 -45
  23. package/dist/core/Grids/index.d.ts +0 -46
  24. package/dist/core/Grids/src/index.d.ts +0 -2
  25. package/dist/core/Grids/src/simple-grid-config.d.ts +0 -80
  26. package/dist/core/Grids/src/simple-grid.d.ts +0 -48
  27. package/dist/core/MiniMap/index.d.ts +0 -50
  28. package/dist/core/MiniMap/src/index.d.ts +0 -2
  29. package/dist/core/MiniMap/src/mini-map-config.d.ts +0 -112
  30. package/dist/core/MiniMap/src/mini-map.d.ts +0 -100
  31. package/dist/core/OrthoPerspectiveCamera/index.d.ts +0 -65
  32. package/dist/core/OrthoPerspectiveCamera/src/first-person-mode.d.ts +0 -16
  33. package/dist/core/OrthoPerspectiveCamera/src/index.d.ts +0 -5
  34. package/dist/core/OrthoPerspectiveCamera/src/orbit-mode.d.ts +0 -16
  35. package/dist/core/OrthoPerspectiveCamera/src/plan-mode.d.ts +0 -20
  36. package/dist/core/OrthoPerspectiveCamera/src/projections.d.ts +0 -45
  37. package/dist/core/OrthoPerspectiveCamera/src/types.d.ts +0 -26
  38. package/dist/core/Raycasters/index.d.ts +0 -43
  39. package/dist/core/Raycasters/src/index.d.ts +0 -2
  40. package/dist/core/Raycasters/src/mouse.d.ts +0 -24
  41. package/dist/core/Raycasters/src/simple-raycaster.d.ts +0 -54
  42. package/dist/core/ShadowedScene/index.d.ts +0 -57
  43. package/dist/core/ShadowedScene/src/distance-renderer.d.ts +0 -67
  44. package/dist/core/ShadowedScene/src/index.d.ts +0 -1
  45. package/dist/core/Types/index.d.ts +0 -1
  46. package/dist/core/Types/src/async-event.d.ts +0 -32
  47. package/dist/core/Types/src/base-camera.d.ts +0 -28
  48. package/dist/core/Types/src/base-renderer.d.ts +0 -65
  49. package/dist/core/Types/src/base-scene.d.ts +0 -25
  50. package/dist/core/Types/src/base-world-item.d.ts +0 -23
  51. package/dist/core/Types/src/base.d.ts +0 -19
  52. package/dist/core/Types/src/component-with-ui.d.ts +0 -18
  53. package/dist/core/Types/src/component.d.ts +0 -13
  54. package/dist/core/Types/src/config-types.d.ts +0 -47
  55. package/dist/core/Types/src/data-map.d.ts +0 -73
  56. package/dist/core/Types/src/data-set.d.ts +0 -58
  57. package/dist/core/Types/src/event-manager.d.ts +0 -30
  58. package/dist/core/Types/src/event.d.ts +0 -32
  59. package/dist/core/Types/src/index.d.ts +0 -15
  60. package/dist/core/Types/src/interfaces.d.ts +0 -117
  61. package/dist/core/Types/src/world.d.ts +0 -34
  62. package/dist/core/Viewpoints/index.d.ts +0 -38
  63. package/dist/core/Viewpoints/src/index.d.ts +0 -2
  64. package/dist/core/Viewpoints/src/types.d.ts +0 -36
  65. package/dist/core/Viewpoints/src/viewpoint.d.ts +0 -197
  66. package/dist/core/Viewpoints/src/viewpoints-config.d.ts +0 -23
  67. package/dist/core/Worlds/index.d.ts +0 -54
  68. package/dist/core/Worlds/src/index.d.ts +0 -5
  69. package/dist/core/Worlds/src/simple-camera.d.ts +0 -62
  70. package/dist/core/Worlds/src/simple-renderer.d.ts +0 -54
  71. package/dist/core/Worlds/src/simple-scene-config.d.ts +0 -59
  72. package/dist/core/Worlds/src/simple-scene.d.ts +0 -25
  73. package/dist/core/Worlds/src/simple-world.d.ts +0 -79
  74. package/dist/core/index.d.ts +0 -13
  75. package/dist/fragments/BoundingBoxer/index.d.ts +0 -208
  76. package/dist/fragments/Classifier/index.d.ts +0 -197
  77. package/dist/fragments/Exploder/index.d.ts +0 -50
  78. package/dist/fragments/FragmentsManager/index.d.ts +0 -152
  79. package/dist/fragments/Hider/index.d.ts +0 -38
  80. package/dist/fragments/IfcGeometryTiler/index.d.ts +0 -103
  81. package/dist/fragments/IfcGeometryTiler/src/base-types.d.ts +0 -29
  82. package/dist/fragments/IfcGeometryTiler/src/index.d.ts +0 -2
  83. package/dist/fragments/IfcGeometryTiler/src/streaming-settings.d.ts +0 -20
  84. package/dist/fragments/IfcLoader/index.d.ts +0 -116
  85. package/dist/fragments/IfcLoader/src/civil-reader.d.ts +0 -15
  86. package/dist/fragments/IfcLoader/src/ifc-fragment-settings.d.ts +0 -41
  87. package/dist/fragments/IfcLoader/src/ifc-metadata-reader.d.ts +0 -5
  88. package/dist/fragments/IfcLoader/src/index.d.ts +0 -5
  89. package/dist/fragments/IfcLoader/src/spatial-ids-finder.d.ts +0 -5
  90. package/dist/fragments/IfcLoader/src/spatial-structure.d.ts +0 -8
  91. package/dist/fragments/IfcLoader/src/transform-helper.d.ts +0 -5
  92. package/dist/fragments/IfcLoader/src/units.d.ts +0 -10
  93. package/dist/fragments/IfcPropertiesTiler/index.d.ts +0 -66
  94. package/dist/fragments/IfcPropertiesTiler/src/index.d.ts +0 -1
  95. package/dist/fragments/IfcPropertiesTiler/src/streaming-settings.d.ts +0 -11
  96. package/dist/fragments/index.d.ts +0 -8
  97. package/dist/ifc/IfcFinder/index.d.ts +0 -50
  98. package/dist/ifc/IfcFinder/src/ifc-basic-query.d.ts +0 -35
  99. package/dist/ifc/IfcFinder/src/ifc-finder-query.d.ts +0 -96
  100. package/dist/ifc/IfcFinder/src/ifc-property-query.d.ts +0 -36
  101. package/dist/ifc/IfcFinder/src/ifc-query-group.d.ts +0 -69
  102. package/dist/ifc/IfcFinder/src/index.d.ts +0 -4
  103. package/dist/ifc/IfcFinder/src/types.d.ts +0 -84
  104. package/dist/ifc/IfcIsolator/index.d.ts +0 -24
  105. package/dist/ifc/IfcJsonExporter/index.d.ts +0 -26
  106. package/dist/ifc/IfcJsonExporter/src/ifc-geometry-types.d.ts +0 -4
  107. package/dist/ifc/IfcJsonExporter/src/index.d.ts +0 -1
  108. package/dist/ifc/IfcPropertiesManager/index.d.ts +0 -289
  109. package/dist/ifc/IfcPropertiesManager/src/index.d.ts +0 -3
  110. package/dist/ifc/IfcPropertiesManager/src/rel-attrs.d.ts +0 -7
  111. package/dist/ifc/IfcPropertiesManager/src/rel-names.d.ts +0 -3
  112. package/dist/ifc/IfcPropertiesManager/src/types.d.ts +0 -18
  113. package/dist/ifc/IfcRelationsIndexer/index.d.ts +0 -195
  114. package/dist/ifc/IfcRelationsIndexer/src/index.d.ts +0 -2
  115. package/dist/ifc/IfcRelationsIndexer/src/newVersion.d.ts +0 -51
  116. package/dist/ifc/IfcRelationsIndexer/src/relToAttributesMap.d.ts +0 -5
  117. package/dist/ifc/IfcRelationsIndexer/src/types.d.ts +0 -73
  118. package/dist/ifc/Utils/ifc-categories.d.ts +0 -7
  119. package/dist/ifc/Utils/ifc-category-case.d.ts +0 -3
  120. package/dist/ifc/Utils/ifc-category-map.d.ts +0 -6
  121. package/dist/ifc/Utils/ifc-elements-map.d.ts +0 -11
  122. package/dist/ifc/Utils/index.d.ts +0 -5
  123. package/dist/ifc/Utils/properties-utils.d.ts +0 -25
  124. package/dist/ifc/index.d.ts +0 -6
  125. package/dist/measurement/MeasurementUtils/index.d.ts +0 -105
  126. package/dist/measurement/index.d.ts +0 -1
  127. package/dist/namespace.d.ts +0 -6018
  128. package/dist/openbim/BCFTopics/index.d.ts +0 -114
  129. package/dist/openbim/BCFTopics/src/Comment.d.ts +0 -40
  130. package/dist/openbim/BCFTopics/src/Topic.d.ts +0 -127
  131. package/dist/openbim/BCFTopics/src/bcf-topics-config.d.ts +0 -121
  132. package/dist/openbim/BCFTopics/src/importers/extensions.d.ts +0 -2
  133. package/dist/openbim/BCFTopics/src/importers/index.d.ts +0 -1
  134. package/dist/openbim/BCFTopics/src/index.d.ts +0 -5
  135. package/dist/openbim/BCFTopics/src/types.d.ts +0 -19
  136. package/dist/openbim/IDSSpecifications/index.d.ts +0 -60
  137. package/dist/openbim/IDSSpecifications/src/Specification.d.ts +0 -40
  138. package/dist/openbim/IDSSpecifications/src/exporters/parameter.d.ts +0 -2
  139. package/dist/openbim/IDSSpecifications/src/facets/Attribute.d.ts +0 -13
  140. package/dist/openbim/IDSSpecifications/src/facets/Classification.d.ts +0 -21
  141. package/dist/openbim/IDSSpecifications/src/facets/Entity.d.ts +0 -15
  142. package/dist/openbim/IDSSpecifications/src/facets/Facet.d.ts +0 -26
  143. package/dist/openbim/IDSSpecifications/src/facets/Material.d.ts +0 -10
  144. package/dist/openbim/IDSSpecifications/src/facets/PartOf.d.ts +0 -26
  145. package/dist/openbim/IDSSpecifications/src/facets/Property.d.ts +0 -25
  146. package/dist/openbim/IDSSpecifications/src/facets/index.d.ts +0 -5
  147. package/dist/openbim/IDSSpecifications/src/importers/attribute.d.ts +0 -3
  148. package/dist/openbim/IDSSpecifications/src/importers/classification.d.ts +0 -3
  149. package/dist/openbim/IDSSpecifications/src/importers/entity.d.ts +0 -3
  150. package/dist/openbim/IDSSpecifications/src/importers/index.d.ts +0 -3
  151. package/dist/openbim/IDSSpecifications/src/importers/parameter.d.ts +0 -2
  152. package/dist/openbim/IDSSpecifications/src/importers/property.d.ts +0 -3
  153. package/dist/openbim/IDSSpecifications/src/index.d.ts +0 -3
  154. package/dist/openbim/IDSSpecifications/src/types.d.ts +0 -70
  155. package/dist/openbim/index.d.ts +0 -2
  156. package/dist/utils/bbox.d.ts +0 -7
  157. package/dist/utils/geometry.d.ts +0 -1
  158. package/dist/utils/index.d.ts +0 -6
  159. package/dist/utils/materials.d.ts +0 -4
  160. package/dist/utils/section-generator.d.ts +0 -31
  161. package/dist/utils/uuid.d.ts +0 -6
  162. package/dist/utils/vertex-picker.d.ts +0 -116
@@ -1,197 +0,0 @@
1
- import * as THREE from "three";
2
- import * as FRAGS from "@thatopen/fragments";
3
- import { BCFViewpoint, ViewpointOrthographicCamera, ViewpointPerspectiveCamera } from "./types";
4
- import { CameraProjection } from "../../OrthoPerspectiveCamera";
5
- import { Components } from "../../Components";
6
- import { DataMap, DataSet, World } from "../../Types";
7
- import { SimplePlane } from "../../Clipper";
8
- /**
9
- * Represents a BCF compliant viewpoint from BuildingSMART.
10
- *
11
- * The Viewpoint class provides methods for managing and interacting with viewpoints.
12
- * It includes functionality for setting viewpoint properties, updating the camera,
13
- * applying color to components, and serializing the viewpoint for export.
14
- */
15
- export declare class Viewpoint implements BCFViewpoint {
16
- title?: string;
17
- readonly guid: string;
18
- /**
19
- * ClippingPlanes can be used to define a subsection of a building model that is related to the topic.
20
- * Each clipping plane is defined by Location and Direction.
21
- * The Direction vector points in the invisible direction meaning the half-space that is clipped.
22
- * @experimental
23
- */
24
- clippingPlanes: DataSet<SimplePlane>;
25
- camera: ViewpointPerspectiveCamera | ViewpointOrthographicCamera;
26
- /**
27
- * A list of components GUIDs to hide when defaultVisibility = true or to show when defaultVisibility = false
28
- */
29
- readonly exceptionComponents: DataSet<string>;
30
- /**
31
- * A list of components GUIDs that should be selected (highlighted) when displaying a viewpoint.
32
- */
33
- readonly selectionComponents: DataSet<string>;
34
- /**
35
- * A map of colors and components GUIDs that should be colorized when displaying a viewpoint.
36
- * For this to work, call viewpoint.colorize()
37
- */
38
- readonly componentColors: DataMap<THREE.Color, string[]>;
39
- /**
40
- * Boolean flags to allow fine control over the visibility of spaces.
41
- * A typical use of these flags is when DefaultVisibility=true but spaces should remain hidden.
42
- * @default false
43
- */
44
- spacesVisible: boolean;
45
- /**
46
- * Boolean flags to allow fine control over the visibility of space boundaries.
47
- * A typical use of these flags is when DefaultVisibility=true but space boundaries should remain hidden.
48
- * @default false
49
- */
50
- spaceBoundariesVisible: boolean;
51
- /**
52
- * Boolean flags to allow fine control over the visibility of openings.
53
- * A typical use of these flags is when DefaultVisibility=true but openings should remain hidden.
54
- * @default false
55
- */
56
- openingsVisible: boolean;
57
- /**
58
- * When true, all components should be visible unless listed in the exceptions
59
- * When false all components should be invisible unless listed in the exceptions
60
- */
61
- defaultVisibility: boolean;
62
- private get _selectionModelIdMap();
63
- private get _exceptionModelIdMap();
64
- /**
65
- * A list of components that should be selected (highlighted) when displaying a viewpoint.
66
- * @returns The fragmentIdMap for components marked as selections.
67
- */
68
- get selection(): FRAGS.FragmentIdMap;
69
- /**
70
- * A list of components to hide when defaultVisibility = true or to show when defaultVisibility = false
71
- * @returns The fragmentIdMap for components marked as exceptions.
72
- */
73
- get exception(): FRAGS.FragmentIdMap;
74
- /**
75
- * Retrieves the projection type of the viewpoint's camera.
76
- *
77
- * @returns A string representing the projection type of the viewpoint's camera.
78
- * It can be either 'Perspective' or 'Orthographic'.
79
- */
80
- get projection(): CameraProjection;
81
- /**
82
- * Retrieves the position vector of the viewpoint's camera.
83
- *
84
- * @remarks
85
- * The position vector represents the camera's position in the world coordinate system.
86
- * The function applies the base coordinate system transformation to the position vector.
87
- *
88
- * @returns A THREE.Vector3 representing the position of the viewpoint's camera.
89
- */
90
- get position(): THREE.Vector3;
91
- /**
92
- * Retrieves the direction vector of the viewpoint's camera.
93
- *
94
- * @remarks
95
- * The direction vector represents the direction in which the camera is pointing.
96
- * It is calculated by extracting the x, y, and z components from the camera's direction property.
97
- *
98
- * @returns A THREE.Vector3 representing the direction of the viewpoint's camera.
99
- */
100
- get direction(): THREE.Vector3;
101
- private _components;
102
- /**
103
- * Represents the world in which the viewpoints are created and managed.
104
- */
105
- readonly world: World;
106
- private get _managerVersion();
107
- /**
108
- * Retrieves the list of BCF topics associated with the current viewpoint.
109
- *
110
- * @remarks
111
- * This function retrieves the BCFTopics manager from the components,
112
- * then filters the list of topics to find those associated with the current viewpoint.
113
- *
114
- * @returns An array of BCF topics associated with the current viewpoint.
115
- */
116
- get topics(): import("../../../openbim/BCFTopics").Topic[];
117
- constructor(components: Components, world: World, _config?: {
118
- data?: Partial<BCFViewpoint>;
119
- setCamera?: boolean;
120
- });
121
- /**
122
- * Adds components to the viewpoint based on the provided fragment ID map.
123
- *
124
- * @param fragmentIdMap - A map containing fragment IDs as keys and arrays of express IDs as values.
125
- */
126
- addComponentsFromMap(fragmentIdMap: FRAGS.FragmentIdMap): void;
127
- /**
128
- * Replace the properties of the viewpoint with the provided data.
129
- *
130
- * @remarks The guid will be ommited as it shouldn't change after it has been initially set.
131
- * @remarks The existing selection and exception components will be fully replaced in case new ones are provided.
132
- *
133
- * @param data - An object containing the properties to be set.
134
- * The properties not included in the object will remain unchanged.
135
- *
136
- * @returns The viewpoint instance with the updated properties.
137
- */
138
- set(data: Partial<BCFViewpoint>): this;
139
- /**
140
- * Sets the viewpoint of the camera in the world.
141
- *
142
- * @remarks
143
- * This function calculates the target position based on the viewpoint information.
144
- * It sets the visibility of the viewpoint components and then applies the viewpoint using the camera's controls.
145
- *
146
- * @param transition - Indicates whether the camera movement should have a transition effect.
147
- * Default value is `true`.
148
- *
149
- * @throws An error if the world's camera does not have camera controls.
150
- *
151
- * @returns A Promise that resolves when the camera has been set.
152
- */
153
- go(world?: World, transition?: boolean): Promise<void>;
154
- /**
155
- * Updates the camera settings of the viewpoint based on the current world's camera and renderer.
156
- *
157
- * @remarks
158
- * This function retrieves the camera's position, direction, and aspect ratio from the world's camera and renderer.
159
- * It then calculates the camera's perspective or orthographic settings based on the camera type.
160
- * Finally, it updates the viewpoint's camera settings and updates the viewpoint to the Viewpoints manager.
161
- *
162
- * @throws An error if the world's camera does not have camera controls.
163
- * @throws An error if the world's renderer is not available.
164
- */
165
- updateCamera(world?: World): void;
166
- applyVisibility(): void;
167
- /**
168
- * Applies color to the components in the viewpoint based on their GUIDs.
169
- *
170
- * This function iterates through the `componentColors` map, retrieves the fragment IDs
171
- * corresponding to each color, and then uses the `Classifier` to apply the color to those fragments.
172
- *
173
- * @remarks
174
- * The color is applied using the `Classifier.setColor` method, which sets the color of the specified fragments.
175
- * The color is provided as a hexadecimal string, prefixed with a '#'.
176
- */
177
- applyColors(): void;
178
- /**
179
- * Resets the colors of all components in the viewpoint to their original color.
180
- */
181
- resetColors(): void;
182
- private createComponentTags;
183
- private createColorTags;
184
- /**
185
- * Serializes the viewpoint into a buildingSMART compliant XML string for export.
186
- *
187
- * @param version - The version of the BCF Manager to use for serialization.
188
- * If not provided, the current version of the manager will be used.
189
- *
190
- * @returns A Promise that resolves to an XML string representing the viewpoint.
191
- * The XML string follows the BCF VisualizationInfo schema.
192
- *
193
- * @throws An error if the world's camera does not have camera controls.
194
- * @throws An error if the world's renderer is not available.
195
- */
196
- serialize(version?: string): Promise<string>;
197
- }
@@ -1,23 +0,0 @@
1
- import { BooleanSettingsControl } from "../../Types";
2
- import { Viewpoints } from "../index";
3
- import { Configurator } from "../../ConfigManager";
4
- /**
5
- * Configuration interface for the Viewpoints general behavior.
6
- */
7
- export interface ViewpointsConfig {
8
- /**
9
- * Indicates whether to overwrite the fragments colors when applying viewpoints.
10
- * @remarks BCF Viewpoints comes with information to indicate the colors to be applied to components, if any.
11
- * @default false
12
- */
13
- overwriteColors: boolean;
14
- }
15
- type ViewpointsConfigType = {
16
- overwriteColors: BooleanSettingsControl;
17
- };
18
- export declare class ViewpointsConfigManager extends Configurator<Viewpoints, ViewpointsConfigType> {
19
- protected _config: ViewpointsConfigType;
20
- get overwriteColors(): boolean;
21
- set overwriteColors(value: boolean);
22
- }
23
- export {};
@@ -1,54 +0,0 @@
1
- import { Component, Disposable, Updateable, World, Event, BaseScene, BaseCamera, BaseRenderer, DataMap } from "../Types";
2
- import { Components } from "../Components";
3
- import { SimpleWorld } from "./src";
4
- export * from "./src";
5
- /**
6
- * A class representing a collection of worlds within a game engine. It manages the creation, deletion, and update of worlds. 📕 [Tutorial](https://docs.thatopen.com/Tutorials/Components/Core/Worlds). 📘 [API](https://docs.thatopen.com/api/@thatopen/components/classes/Worlds).
7
- */
8
- export declare class Worlds extends Component implements Updateable, Disposable {
9
- /**
10
- * A unique identifier for the component.
11
- * This UUID is used to register the component within the Components system.
12
- */
13
- static readonly uuid: "fdb61dc4-2ec1-4966-b83d-54ea795fad4a";
14
- /** {@link Updateable.onAfterUpdate} */
15
- readonly onAfterUpdate: Event<unknown>;
16
- /** {@link Updateable.onBeforeUpdate} */
17
- readonly onBeforeUpdate: Event<unknown>;
18
- /** {@link Disposable.onDisposed} */
19
- readonly onDisposed: Event<unknown>;
20
- /**
21
- * A collection of worlds managed by this component.
22
- * The key is the unique identifier (UUID) of the world, and the value is the World instance.
23
- */
24
- list: DataMap<string, World>;
25
- /** {@link Component.enabled} */
26
- enabled: boolean;
27
- constructor(components: Components);
28
- /**
29
- * Creates a new instance of a SimpleWorld and adds it to the list of worlds.
30
- *
31
- * @template T - The type of the scene, extending from BaseScene. Defaults to BaseScene.
32
- * @template U - The type of the camera, extending from BaseCamera. Defaults to BaseCamera.
33
- * @template S - The type of the renderer, extending from BaseRenderer. Defaults to BaseRenderer.
34
- *
35
- * @throws {Error} - Throws an error if a world with the same UUID already exists in the list.
36
- */
37
- create<T extends BaseScene = BaseScene, U extends BaseCamera = BaseCamera, S extends BaseRenderer = BaseRenderer>(): SimpleWorld<T, U, S>;
38
- /**
39
- * Deletes a world from the list of worlds.
40
- *
41
- * @param {World} world - The world to be deleted.
42
- *
43
- * @throws {Error} - Throws an error if the provided world is not found in the list.
44
- */
45
- delete(world: World): void;
46
- /**
47
- * Disposes of the Worlds component and all its managed worlds.
48
- * This method sets the enabled flag to false, disposes of all worlds, clears the list,
49
- * and triggers the onDisposed event.
50
- */
51
- dispose(): void;
52
- /** {@link Updateable.update} */
53
- update(delta?: number): void | Promise<void>;
54
- }
@@ -1,5 +0,0 @@
1
- export * from "./simple-world";
2
- export * from "./simple-scene";
3
- export * from "./simple-renderer";
4
- export * from "./simple-camera";
5
- export * from "./simple-scene-config";
@@ -1,62 +0,0 @@
1
- import * as THREE from "three";
2
- import CameraControls from "camera-controls";
3
- import { Disposable, Updateable, Event, BaseCamera } from "../../Types";
4
- import { Components } from "../../Components";
5
- /**
6
- * A basic camera that uses [yomotsu's cameracontrols](https://github.com/yomotsu/camera-controls) to control the camera in 2D and 3D. Check out it's API to find out what features it offers.
7
- */
8
- export declare class SimpleCamera extends BaseCamera implements Updateable, Disposable {
9
- /** {@link Updateable.onBeforeUpdate} */
10
- readonly onBeforeUpdate: Event<SimpleCamera>;
11
- /** {@link Updateable.onAfterUpdate} */
12
- readonly onAfterUpdate: Event<SimpleCamera>;
13
- /**
14
- * Event that is triggered when the aspect of the camera has been updated.
15
- * This event is useful when you need to perform actions after the aspect of the camera has been changed.
16
- */
17
- readonly onAspectUpdated: Event<unknown>;
18
- /** {@link Disposable.onDisposed} */
19
- readonly onDisposed: Event<string>;
20
- /**
21
- * A three.js PerspectiveCamera or OrthographicCamera instance.
22
- * This camera is used for rendering the scene.
23
- */
24
- three: THREE.PerspectiveCamera | THREE.OrthographicCamera;
25
- private _allControls;
26
- /**
27
- * The object that controls the camera. An instance of
28
- * [yomotsu's cameracontrols](https://github.com/yomotsu/camera-controls).
29
- * Transforming the camera directly will have no effect: you need to use this
30
- * object to move, rotate, look at objects, etc.
31
- */
32
- get controls(): CameraControls;
33
- /**
34
- * Getter for the enabled state of the camera controls.
35
- * If the current world is null, it returns false.
36
- * Otherwise, it returns the enabled state of the camera controls.
37
- *
38
- * @returns {boolean} The enabled state of the camera controls.
39
- */
40
- get enabled(): boolean;
41
- /**
42
- * Setter for the enabled state of the camera controls.
43
- * If the current world is not null, it sets the enabled state of the camera controls to the provided value.
44
- *
45
- * @param {boolean} enabled - The new enabled state of the camera controls.
46
- */
47
- set enabled(enabled: boolean);
48
- constructor(components: Components);
49
- /** {@link Disposable.dispose} */
50
- dispose(): void;
51
- /** {@link Updateable.update} */
52
- update(_delta: number): void;
53
- /**
54
- * Updates the aspect of the camera to match the size of the
55
- * {@link Components.renderer}.
56
- */
57
- updateAspect: () => void;
58
- private setupCamera;
59
- private newCameraControls;
60
- private setupEvents;
61
- private static getSubsetOfThree;
62
- }
@@ -1,54 +0,0 @@
1
- import * as THREE from "three";
2
- import { BaseRenderer, Event } from "../../Types";
3
- import { Components } from "../../Components";
4
- /**
5
- * A basic renderer capable of rendering [Objec3Ds](https://threejs.org/docs/#api/en/core/Object3D).
6
- */
7
- export declare class SimpleRenderer extends BaseRenderer {
8
- /**
9
- * Indicates whether the renderer is enabled. If it's not, it won't be updated.
10
- * Default is `true`.
11
- */
12
- enabled: boolean;
13
- /**
14
- * The HTML container of the THREE.js canvas where the scene is rendered.
15
- */
16
- container: HTMLElement;
17
- /**
18
- * The THREE.js WebGLRenderer instance.
19
- */
20
- three: THREE.WebGLRenderer;
21
- protected _canvas: HTMLCanvasElement;
22
- protected _parameters?: Partial<THREE.WebGLRendererParameters>;
23
- protected _resizeObserver: ResizeObserver | null;
24
- protected onContainerUpdated: Event<unknown>;
25
- private _resizing;
26
- /**
27
- * Constructor for the SimpleRenderer class.
28
- *
29
- * @param components - The components instance.
30
- * @param container - The HTML container where the THREE.js canvas will be rendered.
31
- * @param parameters - Optional parameters for the THREE.js WebGLRenderer.
32
- */
33
- constructor(components: Components, container: HTMLElement, parameters?: Partial<THREE.WebGLRendererParameters>);
34
- /** {@link Updateable.update} */
35
- update(): void;
36
- /** {@link Disposable.dispose} */
37
- dispose(): void;
38
- /** {@link Resizeable.getSize}. */
39
- getSize(): THREE.Vector2;
40
- /** {@link Resizeable.resize} */
41
- resize: (size?: THREE.Vector2) => void;
42
- /**
43
- * Sets up and manages the event listeners for the renderer.
44
- *
45
- * @param active - A boolean indicating whether to activate or deactivate the event listeners.
46
- *
47
- * @throws Will throw an error if the renderer does not have an HTML container.
48
- */
49
- setupEvents(active: boolean): void;
50
- private resizeEvent;
51
- private setupRenderer;
52
- private onContextLost;
53
- private onContextBack;
54
- }
@@ -1,59 +0,0 @@
1
- import * as THREE from "three";
2
- import { SimpleScene } from "./simple-scene";
3
- import { ColorSettingsControl, NumberSettingControl, Vector3SettingControl } from "../../Types";
4
- import { Configurator } from "../../ConfigManager";
5
- type SimpleSceneConfigType = {
6
- backgroundColor: ColorSettingsControl;
7
- ambientLight: {
8
- color: ColorSettingsControl;
9
- intensity: NumberSettingControl;
10
- };
11
- directionalLight: {
12
- color: ColorSettingsControl;
13
- intensity: NumberSettingControl;
14
- position: Vector3SettingControl;
15
- };
16
- };
17
- declare class DirectionalLightConfig {
18
- private _list;
19
- private _scene;
20
- constructor(list: SimpleSceneConfigType, scene: SimpleScene);
21
- get color(): THREE.Color;
22
- set color(value: THREE.Color);
23
- get intensity(): number;
24
- set intensity(value: number);
25
- get position(): THREE.Vector3;
26
- set position(value: THREE.Vector3);
27
- }
28
- declare class AmbientLightConfig {
29
- private _list;
30
- private _scene;
31
- constructor(list: SimpleSceneConfigType, scene: SimpleScene);
32
- get color(): THREE.Color;
33
- set color(value: THREE.Color);
34
- get intensity(): number;
35
- set intensity(value: number);
36
- }
37
- /**
38
- * Configuration interface for the {@link SimpleScene}.
39
- */
40
- export interface SimpleSceneConfig {
41
- backgroundColor: THREE.Color;
42
- directionalLight: {
43
- color: THREE.Color;
44
- intensity: number;
45
- position: THREE.Vector3;
46
- };
47
- ambientLight: {
48
- color: THREE.Color;
49
- intensity: number;
50
- };
51
- }
52
- export declare class SimpleSceneConfigManager extends Configurator<SimpleScene, SimpleSceneConfigType> {
53
- protected _config: SimpleSceneConfigType;
54
- ambientLight: AmbientLightConfig;
55
- directionalLight: DirectionalLightConfig;
56
- get backgroundColor(): THREE.Color;
57
- set backgroundColor(value: THREE.Color);
58
- }
59
- export {};
@@ -1,25 +0,0 @@
1
- import * as THREE from "three";
2
- import { BaseScene, Configurable, Event } from "../../Types";
3
- import { Components } from "../../Components";
4
- import { SimpleSceneConfig, SimpleSceneConfigManager } from "./simple-scene-config";
5
- /**
6
- * A basic 3D [scene](https://threejs.org/docs/#api/en/scenes/Scene) to add objects hierarchically, and easily dispose them when you are finished with it.
7
- */
8
- export declare class SimpleScene extends BaseScene implements Configurable<SimpleSceneConfigManager, SimpleSceneConfig> {
9
- /** {@link Configurable.onSetup} */
10
- readonly onSetup: Event<unknown>;
11
- /** {@link Configurable.isSetup} */
12
- isSetup: boolean;
13
- /**
14
- * The underlying Three.js scene object.
15
- * It is used to define the 3D space containing objects, lights, and cameras.
16
- */
17
- three: THREE.Scene;
18
- /** {@link Configurable.config} */
19
- config: SimpleSceneConfigManager;
20
- protected _defaultConfig: SimpleSceneConfig;
21
- constructor(components: Components);
22
- /** {@link Configurable.setup} */
23
- setup(config?: Partial<SimpleSceneConfig>): void;
24
- dispose(): void;
25
- }
@@ -1,79 +0,0 @@
1
- import * as THREE from "three";
2
- import { Event, Base, World, BaseScene, BaseCamera, BaseRenderer, Disposable, Updateable } from "../../Types";
3
- /**
4
- * A class representing a simple world in a 3D environment. It extends the Base class and implements the World interface.
5
- *
6
- * @template T - The type of the scene. Default is BaseScene.
7
- * @template U - The type of the camera. Default is BaseCamera.
8
- * @template S - The type of the renderer. Default is BaseRenderer.
9
- */
10
- export declare class SimpleWorld<T extends BaseScene = BaseScene, U extends BaseCamera = BaseCamera, S extends BaseRenderer = BaseRenderer> extends Base implements World, Disposable, Updateable {
11
- /**
12
- * All the loaded [meshes](https://threejs.org/docs/#api/en/objects/Mesh). These meshes will be taken into account in operations like raycasting.
13
- */
14
- readonly meshes: Set<THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
15
- /** {@link Updateable.onAfterUpdate} */
16
- readonly onAfterUpdate: Event<unknown>;
17
- /** {@link Updateable.onBeforeUpdate} */
18
- readonly onBeforeUpdate: Event<unknown>;
19
- /** {@link Disposable.onDisposed} */
20
- readonly onDisposed: Event<unknown>;
21
- /**
22
- * Indicates whether the world is currently being disposed. This is useful to prevent trying to access world's elements when it's being disposed, which could cause errors when you dispose a world.
23
- */
24
- isDisposing: boolean;
25
- /**
26
- * Indicates whether the world is currently enabled.
27
- * When disabled, the world will not be updated.
28
- */
29
- enabled: boolean;
30
- /**
31
- * A unique identifier for the world. Is not meant to be changed at any moment.
32
- */
33
- readonly uuid: string;
34
- /**
35
- * An optional name for the world.
36
- */
37
- name?: string;
38
- private _scene?;
39
- private _camera?;
40
- private _renderer;
41
- /**
42
- * Getter for the scene. If no scene is initialized, it throws an error.
43
- * @returns The current scene.
44
- */
45
- get scene(): T;
46
- /**
47
- * Setter for the scene. It sets the current scene, adds the world to the scene's worlds set,
48
- * sets the current world in the scene, and triggers the scene's onWorldChanged event with the added action.
49
- * @param scene - The new scene to be set.
50
- */
51
- set scene(scene: T);
52
- /**
53
- * Getter for the camera. If no camera is initialized, it throws an error.
54
- * @returns The current camera.
55
- */
56
- get camera(): U;
57
- /**
58
- * Setter for the camera. It sets the current camera, adds the world to the camera's worlds set,
59
- * sets the current world in the camera, and triggers the camera's onWorldChanged event with the added action.
60
- * @param camera - The new camera to be set.
61
- */
62
- set camera(camera: U);
63
- /**
64
- * Getter for the renderer.
65
- * @returns The current renderer or null if no renderer is set. Some worlds don't need a renderer to work (when your mail goal is not to display a 3D viewport to the user).
66
- */
67
- get renderer(): S | null;
68
- /**
69
- * Setter for the renderer. It sets the current renderer, adds the world to the renderer's worlds set,
70
- * sets the current world in the renderer, and triggers the renderer's onWorldChanged event with the added action.
71
- * If a new renderer is set, it also triggers the onWorldChanged event with the removed action for the old renderer.
72
- * @param renderer - The new renderer to be set or null to remove the current renderer.
73
- */
74
- set renderer(renderer: S | null);
75
- /** {@link Updateable.update} */
76
- update(delta?: number): void;
77
- /** {@link Disposable.dispose} */
78
- dispose(disposeResources?: boolean): void;
79
- }
@@ -1,13 +0,0 @@
1
- export * from "./Components";
2
- export * from "./Disposer";
3
- export * from "./ShadowedScene";
4
- export * from "./Raycasters";
5
- export * from "./Types";
6
- export * from "./Worlds";
7
- export * from "./Grids";
8
- export * from "./Clipper";
9
- export * from "./Cullers";
10
- export * from "./Viewpoints";
11
- export * from "./MiniMap";
12
- export * from "./OrthoPerspectiveCamera";
13
- export * from "./ConfigManager";