@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,18 +0,0 @@
1
- import { Component } from "./component";
2
- import { Configurator } from "../../ConfigManager";
3
- import { Components } from "../../Components";
4
- export type ComponentUIElement = {
5
- name: string;
6
- id: string;
7
- icon: string;
8
- componentID: string;
9
- get: (components: Components) => {
10
- element: HTMLElement;
11
- config?: Configurator;
12
- dispose?: () => void;
13
- };
14
- };
15
- export declare abstract class ComponentWithUI extends Component {
16
- abstract name: string;
17
- abstract getUI(): ComponentUIElement[];
18
- }
@@ -1,13 +0,0 @@
1
- import { Base } from "./base";
2
- /**
3
- * Components are the building blocks of this library. Components are singleton elements that contain specific functionality. For instance, the Clipper Component can create, delete and handle 3D clipping planes. Components must be unique (they can't be instanced more than once per Components instance), and have a static UUID that identifies them uniquely. The can be accessed globally using the {@link Components} instance.
4
- */
5
- export declare abstract class Component extends Base {
6
- /**
7
- * Whether this component is active or not. The behaviour can vary depending
8
- * on the type of component. E.g. a disabled dimension tool will stop creating
9
- * dimensions, while a disabled camera will stop moving. A disabled component
10
- * will not be updated automatically each frame.
11
- */
12
- abstract enabled: boolean;
13
- }
@@ -1,47 +0,0 @@
1
- import * as THREE from "three";
2
- export interface BooleanSettingsControl {
3
- type: "Boolean";
4
- value: boolean;
5
- }
6
- export interface ColorSettingsControl {
7
- type: "Color";
8
- value: THREE.Color;
9
- }
10
- export interface TextSettingsControl {
11
- type: "Text";
12
- value: string;
13
- }
14
- export interface NumberSettingControl {
15
- type: "Number";
16
- interpolable: boolean;
17
- min?: number;
18
- max?: number;
19
- value: number;
20
- }
21
- export interface SelectSettingControl {
22
- type: "Select";
23
- multiple: boolean;
24
- options: Set<string>;
25
- value: string;
26
- }
27
- export interface Vector3SettingControl {
28
- type: "Vector3";
29
- value: THREE.Vector3;
30
- }
31
- export interface TextSetSettingControl {
32
- type: "TextSet";
33
- value: Set<string>;
34
- }
35
- export interface NoControl {
36
- type: "None";
37
- value: any;
38
- }
39
- export type ControlEntry = BooleanSettingsControl | ColorSettingsControl | TextSettingsControl | NumberSettingControl | SelectSettingControl | Vector3SettingControl | TextSetSettingControl | NoControl;
40
- export interface ControlsSchema {
41
- [name: string]: ControlEntry | ControlsSchema;
42
- }
43
- export declare class ControlsUtils {
44
- static isEntry(item: any): boolean;
45
- static copySchema<T extends ControlsSchema = ControlsSchema>(schema: T, copy?: ControlsSchema): T;
46
- static copyEntry(controlEntry: ControlEntry): ControlEntry;
47
- }
@@ -1,73 +0,0 @@
1
- import { Event } from "./event";
2
- /**
3
- * A class that extends the built-in Map class and provides additional events for item set, update, delete, and clear operations.
4
- *
5
- * @template K - The type of keys in the map.
6
- * @template V - The type of values in the map.
7
- */
8
- export declare class DataMap<K, V> extends Map<K, V> {
9
- /**
10
- * An event triggered when a new item is set in the map.
11
- */
12
- readonly onItemSet: Event<{
13
- key: K;
14
- value: V;
15
- }>;
16
- /**
17
- * An event triggered when an existing item in the map is updated.
18
- */
19
- readonly onItemUpdated: Event<{
20
- key: K;
21
- value: V;
22
- }>;
23
- /**
24
- * An event triggered when an item is deleted from the map.
25
- */
26
- readonly onItemDeleted: Event<K>;
27
- /**
28
- * An event triggered when the map is cleared.
29
- */
30
- readonly onCleared: Event<unknown>;
31
- /**
32
- * Constructs a new DataMap instance.
33
- *
34
- * @param iterable - An iterable object containing key-value pairs to populate the map.
35
- */
36
- constructor(iterable?: Iterable<readonly [K, V]> | null | undefined);
37
- /**
38
- * Clears the map and triggers the onCleared event.
39
- */
40
- clear(): void;
41
- /**
42
- * Sets the value for the specified key in the map.
43
- * If the item is new, then onItemSet is triggered.
44
- * If the item is already in the map, then onItemUpdated is triggered.
45
- *
46
- * @param key - The key of the item to set.
47
- * @param value - The value of the item to set.
48
- * @returns The DataMap instance.
49
- */
50
- set(key: K, value: V): this;
51
- /**
52
- * A function that acts as a guard for adding items to the set.
53
- * It determines whether a given value should be allowed to be added to the set.
54
- *
55
- * @param key - The key of the entry to be checked against the guard.
56
- * @param value - The value of the entry to be checked against the guard.
57
- * @returns A boolean indicating whether the value should be allowed to be added to the set.
58
- * By default, this function always returns true, allowing all values to be added.
59
- * You can override this behavior by providing a custom implementation.
60
- */
61
- guard: (key: K, value: V) => boolean;
62
- /**
63
- * Deletes the specified key from the map and triggers the onItemDeleted event if the key was found.
64
- *
65
- * @param key - The key of the item to delete.
66
- * @returns True if the key was found and deleted; otherwise, false.
67
- */
68
- delete(key: K): boolean;
69
- /**
70
- * Clears the map and resets the events.
71
- */
72
- dispose(): void;
73
- }
@@ -1,58 +0,0 @@
1
- import { Event } from "./event";
2
- /**
3
- * A class that extends the built-in Set class and provides additional functionality. It triggers events when items are added, deleted, or the set is cleared.
4
- *
5
- * @template T - The type of elements in the set.
6
- */
7
- export declare class DataSet<T> extends Set<T> {
8
- /**
9
- * An event that is triggered when a new item is added to the set.
10
- */
11
- readonly onItemAdded: Event<T>;
12
- /**
13
- * An event that is triggered when an item is deleted from the set.
14
- */
15
- readonly onItemDeleted: Event<unknown>;
16
- /**
17
- * An event that is triggered when the set is cleared.
18
- */
19
- readonly onCleared: Event<unknown>;
20
- /**
21
- * Constructs a new instance of the DataSet class.
22
- *
23
- * @param iterable - An optional iterable object to initialize the set with.
24
- */
25
- constructor(iterable?: Iterable<T> | null);
26
- /**
27
- * Clears the set and triggers the onCleared event.
28
- */
29
- clear(): void;
30
- /**
31
- * Adds one or multiple values to the set and triggers the onItemAdded event per each.
32
- *
33
- * @param value - The value to add to the set.
34
- * @returns - The set instance.
35
- */
36
- add(...value: T[]): this;
37
- /**
38
- * A function that acts as a guard for adding items to the set.
39
- * It determines whether a given value should be allowed to be added to the set.
40
- *
41
- * @param value - The value to be checked against the guard.
42
- * @returns A boolean indicating whether the value should be allowed to be added to the set.
43
- * By default, this function always returns true, allowing all values to be added.
44
- * You can override this behavior by providing a custom implementation.
45
- */
46
- guard: (value: T) => boolean;
47
- /**
48
- * Deletes a value from the set and triggers the onItemDeleted event.
49
- *
50
- * @param value - The value to delete from the set.
51
- * @returns - True if the value was successfully deleted, false otherwise.
52
- */
53
- delete(value: T): boolean;
54
- /**
55
- * Clears the set and resets the onItemAdded, onItemDeleted, and onCleared events.
56
- */
57
- dispose(): void;
58
- }
@@ -1,30 +0,0 @@
1
- import { Event } from "./event";
2
- import { AsyncEvent } from "./async-event";
3
- /**
4
- * Simple class to easily toggle and reset event lists.
5
- */
6
- export declare class EventManager {
7
- /**
8
- * The list of events managed by this instance.
9
- */
10
- list: Set<Event<any> | AsyncEvent<any>>;
11
- /**
12
- * Adds events to this manager.
13
- * @param events the events to add.
14
- */
15
- add(events: Iterable<Event<any> | AsyncEvent<any>>): void;
16
- /**
17
- * Removes events from this manager.
18
- * @param events the events to remove.
19
- */
20
- remove(events: Iterable<Event<any> | AsyncEvent<any>>): void;
21
- /**
22
- * Sets all the events managed by this instance as enabled or disabled.
23
- * @param active whether to turn on or off the events.
24
- */
25
- set(active: boolean): void;
26
- /**
27
- * Resets all the events managed by this instance.
28
- */
29
- reset(): void;
30
- }
@@ -1,32 +0,0 @@
1
- /**
2
- * Simple event handler by [Jason Kleban](https://gist.github.com/JasonKleban/50cee44960c225ac1993c922563aa540). Keep in mind that if you want to remove it later, you might want to declare the callback as an object. If you want to maintain the reference to `this`, you will need to declare the callback as an arrow function.
3
- */
4
- export declare class Event<T> {
5
- /**
6
- * Whether this event is active or not. If not, it won't trigger.
7
- */
8
- enabled: boolean;
9
- /**
10
- * Add a callback to this event instance.
11
- * @param handler - the callback to be added to this event.
12
- */
13
- add(handler: T extends void ? {
14
- (): void;
15
- } : {
16
- (data: T): void;
17
- }): void;
18
- /**
19
- * Removes a callback from this event instance.
20
- * @param handler - the callback to be removed from this event.
21
- */
22
- remove(handler: T extends void ? {
23
- (): void;
24
- } : {
25
- (data: T): void;
26
- }): void;
27
- /** Triggers all the callbacks assigned to this event. */
28
- trigger: (data?: T) => void;
29
- /** Gets rid of all the suscribed events. */
30
- reset(): void;
31
- private handlers;
32
- }
@@ -1,15 +0,0 @@
1
- export * from "./event";
2
- export * from "./async-event";
3
- export * from "./interfaces";
4
- export * from "./component";
5
- export * from "./base";
6
- export * from "./base-world-item";
7
- export * from "./base-camera";
8
- export * from "./base-renderer";
9
- export * from "./base-scene";
10
- export * from "./world";
11
- export * from "./data-set";
12
- export * from "./data-map";
13
- export * from "./component-with-ui";
14
- export * from "./config-types";
15
- export * from "./event-manager";
@@ -1,117 +0,0 @@
1
- import * as THREE from "three";
2
- import CameraControls from "camera-controls";
3
- import { Event } from "./event";
4
- import { EventManager } from "./event-manager";
5
- /**
6
- * Whether this component has to be manually destroyed once you are done with it to prevent [memory leaks](https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects). This also ensures that the DOM events created by that component will be cleaned up.
7
- */
8
- export interface Disposable {
9
- /**
10
- * Destroys the object from memory to prevent a
11
- * [memory leak](https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects).
12
- */
13
- dispose: () => void | Promise<void>;
14
- /** Fired after the tool has been disposed. */
15
- readonly onDisposed: Event<any>;
16
- }
17
- /**
18
- * Whether the geometric representation of this component can be hidden or shown in the [Three.js scene](https://threejs.org/docs/#api/en/scenes/Scene).
19
- */
20
- export interface Hideable {
21
- /**
22
- * Whether the geometric representation of this component is
23
- * currently visible or not in the
24
- * [Three.js scene](https://threejs.org/docs/#api/en/scenes/Scene).
25
- */
26
- visible: boolean;
27
- }
28
- /**
29
- * Whether this component can be resized. The meaning of this can vary depending on the component: resizing a [Renderer](https://threejs.org/docs/#api/en/renderers/WebGLRenderer) component could mean changing its resolution, whereas resizing a [Mesh](https://threejs.org/docs/#api/en/objects/Mesh) would change its scale.
30
- */
31
- export interface Resizeable {
32
- /**
33
- * Sets size of this component (e.g. the resolution of a
34
- * [Renderer](https://threejs.org/docs/#api/en/renderers/WebGLRenderer)
35
- * component.
36
- */
37
- resize: (size?: THREE.Vector2) => void;
38
- /** Event that fires when the component has been resized. */
39
- onResize: Event<THREE.Vector2>;
40
- /**
41
- * Gets the current size of this component (e.g. the resolution of a
42
- * [Renderer](https://threejs.org/docs/#api/en/renderers/WebGLRenderer)
43
- * component.
44
- */
45
- getSize: () => THREE.Vector2;
46
- }
47
- /** Whether this component should be updated each frame. */
48
- export interface Updateable {
49
- /** Actions that should be executed after updating the component. */
50
- onAfterUpdate: Event<any>;
51
- /** Actions that should be executed before updating the component. */
52
- onBeforeUpdate: Event<any>;
53
- /**
54
- * Function used to update the state of this component each frame. For
55
- * instance, a renderer component will make a render each frame.
56
- */
57
- update(delta?: number): void;
58
- }
59
- /** Basic type to describe the progress of any kind of process. */
60
- export interface Progress {
61
- /** The amount of things that have been done already. */
62
- current: number;
63
- /** The total amount of things to be done by the process. */
64
- total: number;
65
- }
66
- /**
67
- * Whether this component supports create and destroy operations. This generally applies for components that work with instances, such as clipping planes or dimensions.
68
- */
69
- export interface Createable {
70
- /** Creates a new instance of an element (e.g. a new Dimension). */
71
- create: (data: any) => void;
72
- /**
73
- * Finish the creation process of the component, successfully creating an
74
- * instance of whatever the component creates.
75
- */
76
- endCreation?: (data: any) => void;
77
- /**
78
- * Cancels the creation process of the component, going back to the state
79
- * before starting to create.
80
- */
81
- cancelCreation?: (data: any) => void;
82
- /** Deletes an existing instance of an element (e.g. a Dimension). */
83
- delete: (data: any) => void;
84
- }
85
- /**
86
- * Whether this component supports to be configured.
87
- */
88
- export interface Configurable<T, U> {
89
- /** Wether this components has been already configured. */
90
- isSetup: boolean;
91
- /** Use the provided configuration to set up the tool. */
92
- setup: (config?: Partial<U>) => void | Promise<void>;
93
- /** Fired after successfully calling {@link Configurable.setup()} */
94
- readonly onSetup: Event<any>;
95
- /** Object holding the tool configuration. You can edit this directly to change the object.
96
- */
97
- config: Required<T>;
98
- }
99
- /**
100
- * Whether a camera uses the Camera Controls library.
101
- */
102
- export interface CameraControllable {
103
- /**
104
- * An instance of CameraControls that provides camera control functionalities.
105
- * This instance is used to manipulate the camera.
106
- */
107
- controls: CameraControls;
108
- }
109
- /**
110
- * Whether it has events or not.
111
- */
112
- export interface Eventable {
113
- /**
114
- * The object in charge of managing all the events.
115
- */
116
- eventManager: EventManager;
117
- }
@@ -1,34 +0,0 @@
1
- import * as THREE from "three";
2
- import { BaseScene } from "./base-scene";
3
- import { BaseCamera } from "./base-camera";
4
- import { BaseRenderer } from "./base-renderer";
5
- import { Updateable, Disposable } from "./interfaces";
6
- /**
7
- * Represents a 3D world with meshes, scene, camera, renderer, and other properties.
8
- */
9
- export interface World extends Disposable, Updateable {
10
- /**
11
- * A set of meshes present in the world. This is taken into account for operations like raycasting.
12
- */
13
- meshes: Set<THREE.Mesh>;
14
- /**
15
- * The base scene of the world.
16
- */
17
- scene: BaseScene;
18
- /**
19
- * The base camera of the world.
20
- */
21
- camera: BaseCamera;
22
- /**
23
- * The base renderer of the world. Can be null if this world doesn't use a renderer (e.g. in a backend environment).
24
- */
25
- renderer: BaseRenderer | null;
26
- /**
27
- * A unique identifier for the world.
28
- */
29
- uuid: string;
30
- /**
31
- * Indicates whether the world is currently disposing. This is useful for cancelling logic that access the elements of a world (which are also disposed).
32
- */
33
- isDisposing: boolean;
34
- }
@@ -1,38 +0,0 @@
1
- import { World, Component, Disposable, Event, DataMap, Configurable } from "../Types";
2
- import { Components } from "../Components";
3
- import { BCFViewpoint, Viewpoint } from "./src";
4
- import { ViewpointsConfigManager, ViewpointsConfig } from "./src/viewpoints-config";
5
- export * from "./src";
6
- export declare class Viewpoints extends Component implements Disposable, Configurable<ViewpointsConfigManager, ViewpointsConfig> {
7
- static readonly uuid: "ee867824-a796-408d-8aa0-4e5962a83c66";
8
- enabled: boolean;
9
- /**
10
- * A DataMap that stores Viewpoint instances, indexed by their unique identifiers (guid).
11
- * This map is used to manage and retrieve Viewpoint instances within the Viewpoints component.
12
- */
13
- readonly list: DataMap<string, Viewpoint>;
14
- /**
15
- * Creates a new Viewpoint instance and adds it to the list.
16
- *
17
- * @param world - The world in which the Viewpoint will be created.
18
- * @param data - Optional partial data for the Viewpoint. If not provided, default data will be used.
19
- *
20
- * @returns The newly created Viewpoint instance.
21
- */
22
- create(world: World, data?: Partial<BCFViewpoint>): Viewpoint;
23
- constructor(components: Components);
24
- isSetup: boolean;
25
- setup(): void;
26
- onSetup: Event<unknown>;
27
- config: ViewpointsConfigManager;
28
- /** {@link Disposable.onDisposed} */
29
- readonly onDisposed: Event<unknown>;
30
- /**
31
- * Disposes of the Viewpoints component and its associated resources.
32
- *
33
- * This method is responsible for cleaning up any resources held by the Viewpoints component,
34
- * such as disposing of the DataMap of Viewpoint instances and triggering and resetting the
35
- * onDisposed event.
36
- */
37
- dispose(): void;
38
- }
@@ -1,2 +0,0 @@
1
- export * from "./types";
2
- export * from "./viewpoint";
@@ -1,36 +0,0 @@
1
- import { SimplePlane } from "../../Clipper";
2
- import { DataSet } from "../../Types";
3
- export interface ViewpointCamera {
4
- direction: {
5
- x: number;
6
- y: number;
7
- z: number;
8
- };
9
- position: {
10
- x: number;
11
- y: number;
12
- z: number;
13
- };
14
- aspectRatio: number;
15
- }
16
- export interface ViewpointPerspectiveCamera extends ViewpointCamera {
17
- fov: number;
18
- }
19
- export interface ViewpointOrthographicCamera extends ViewpointCamera {
20
- viewToWorldScale: number;
21
- }
22
- /**
23
- * Represents a viewpoint in a BCF file.
24
- */
25
- export interface BCFViewpoint {
26
- title?: string;
27
- guid: string;
28
- camera: ViewpointPerspectiveCamera | ViewpointOrthographicCamera;
29
- selectionComponents: Iterable<string>;
30
- exceptionComponents: Iterable<string>;
31
- clippingPlanes: DataSet<SimplePlane>;
32
- spacesVisible: boolean;
33
- spaceBoundariesVisible: boolean;
34
- openingsVisible: boolean;
35
- defaultVisibility: boolean;
36
- }