@xtctwins/tctwins-core 1.0.30 → 1.0.31

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.
@@ -1,6 +1,6 @@
1
- import {Entity} from "../Entity";
2
- import {SceneModelMesh} from "./SceneModelMesh";
3
- import {SceneModel} from "./SceneModel";
1
+ import { Entity } from "../Entity";
2
+ import { SceneModelMesh } from "./SceneModelMesh";
3
+ import { SceneModel } from "./SceneModel";
4
4
 
5
5
  /**
6
6
  * An abstract 3D scene element that can be individually shown, hidden, selected,
@@ -9,410 +9,409 @@ import {SceneModel} from "./SceneModel";
9
9
  * @abstract
10
10
  */
11
11
  export declare abstract class SceneModelEntity implements Entity {
12
-
13
- /**
14
- * Component ID, unique within the {@link Scene}.
15
- *
16
- * @type {number|string}
17
- * @abstract
18
- */
19
- get id(): string;
20
-
21
- /**
22
- * ID of the corresponding object within the originating system, if any.
23
- *
24
- * By default, this has the same value as {@link SceneModelEntity.id}. When we load a model using {@link XKTLoaderPlugin.load},
25
- * with {@link XKTLoaderPlugin.globalizeObjectIds} set ````true````, then that plugin will prefix {@link SceneModelEntity.id}
26
- * with the model ID, while leaving this property holding the original value of {@link SceneModelEntity.id}. When loading an
27
- * IFC model, this property will hold the IFC product ID of the corresponding IFC element.
28
- *
29
- * @type {string}
30
- */
31
- get originalSystemId(): string;
32
-
33
- /**
34
- * Returns true to indicate that this is an SceneModelEntity.
35
- *
36
- * @returns {Boolean}
37
- */
38
- get isEntity(): boolean;
39
-
40
- /**
41
- * Returns ````true```` if this SceneModelEntity represents a model.
42
- *
43
- * When this is ````true````, the SceneModelEntity will be registered by {@link SceneModelEntity.id} in {@link Scene.models} and
44
- * may also have a corresponding {@link MetaModel}.
45
- *
46
- * @type {Boolean}
47
- * @abstract
48
- */
49
- get isModel(): boolean;
50
-
51
- /**
52
- * Returns ````true```` if this SceneModelEntity represents an object.
53
- *
54
- * When this is ````true````, the SceneModelEntity will be registered by {@link SceneModelEntity.id} in {@link Scene.objects} and
55
- * may also have a corresponding {@link MetaObject}.
56
- *
57
- * @type {Boolean}
58
- * @abstract
59
- */
60
- get isObject(): boolean;
61
-
62
- /** Returns the parent SceneModelEntity, if any. */
63
- get parent(): void;
64
-
65
- /**
66
- * Sets the 3D World-space origin for this SceneModelEntity.
67
- *
68
- * @type {Float64Array}
69
- * @abstract
70
- */
71
- set origin(arg: Float64Array);
72
-
73
- /**
74
- * Gets the 3D World-space origin for this SceneModelEntity.
75
- *
76
- * @type {Float64Array}
77
- * @abstract
78
- */
79
- get origin(): Float64Array;
80
-
81
- /**
82
- * World-space 3D axis-aligned bounding box (AABB) of this SceneModelEntity.
83
- *
84
- * Represented by a six-element Float64Array containing the min/max extents of the
85
- * axis-aligned volume, ie. ````[xmin, ymin,zmin,xmax,ymax, zmax]````.
86
- *
87
- * @type {Float64Array}
88
- * @abstract
89
- */
90
- get aabb(): number[];
91
-
92
- /**
93
- * The approximate number of triangles in this SceneModelEntity.
94
- *
95
- * @type {number}
96
- * @abstract
97
- */
98
- get numTriangles(): number;
99
-
100
- /**
101
- * Sets if this SceneModelEntity is visible.
102
- *
103
- * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
104
- *
105
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.visible} are both ````true```` the SceneModelEntity will be
106
- * registered by {@link SceneModelEntity.id} in {@link Scene.visibleObjects}.
107
- *
108
- * @type {Boolean}
109
- * @abstract
110
- */
111
- set visible(arg: boolean);
112
-
113
- /**
114
- * Gets if this SceneModelEntity is visible.
115
- *
116
- * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
117
- *
118
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.visible} are both ````true```` the SceneModelEntity will be
119
- * registered by {@link SceneModelEntity.id} in {@link Scene.visibleObjects}.
120
- *
121
- * @type {Boolean}
122
- * @abstract
123
- */
124
- get visible(): boolean;
125
-
126
- /**
127
- * Sets if this SceneModelEntity is xrayed.
128
- *
129
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.xrayed} are both ````true``` the SceneModelEntity will be
130
- * registered by {@link SceneModelEntity.id} in {@link Scene.xrayedObjects}.
131
- *
132
- * @type {Boolean}
133
- * @abstract
134
- */
135
- set xrayed(arg: boolean);
136
-
137
- /**
138
- * Gets if this SceneModelEntity is xrayed.
139
- *
140
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.xrayed} are both ````true``` the SceneModelEntity will be
141
- * registered by {@link SceneModelEntity.id} in {@link Scene.xrayedObjects}.
142
- *
143
- * @type {Boolean}
144
- * @abstract
145
- */
146
- get xrayed(): boolean;
147
-
148
- /**
149
- * Sets if this SceneModelEntity is highlighted.
150
- *
151
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.highlighted} are both ````true```` the SceneModelEntity will be
152
- * registered by {@link SceneModelEntity.id} in {@link Scene.highlightedObjects}.
153
- *
154
- * @type {Boolean}
155
- * @abstract
156
- */
157
- set highlighted(arg: boolean);
158
-
159
- /**
160
- * Gets if this SceneModelEntity is highlighted.
161
- *
162
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.highlighted} are both ````true```` the SceneModelEntity will be
163
- * registered by {@link SceneModelEntity.id} in {@link Scene.highlightedObjects}.
164
- *
165
- * @type {Boolean}
166
- * @abstract
167
- */
168
- get highlighted(): boolean;
169
-
170
- /**
171
- * Sets if this SceneModelEntity is selected.
172
- *
173
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.selected} are both ````true``` the SceneModelEntity will be
174
- * registered by {@link SceneModelEntity.id} in {@link Scene.selectedObjects}.
175
- *
176
- * @type {Boolean}
177
- * @abstract
178
- */
179
- set selected(arg: boolean);
180
-
181
- /**
182
- * Gets if this SceneModelEntity is selected.
183
- *
184
- * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.selected} are both ````true``` the SceneModelEntity will be
185
- * registered by {@link SceneModelEntity.id} in {@link Scene.selectedObjects}.
186
- *
187
- * @type {Boolean}
188
- * @abstract
189
- */
190
- get selected(): boolean;
191
-
192
- /**
193
- * Sets if this SceneModelEntity's edges are enhanced.
194
- *
195
- * @type {Boolean}
196
- * @abstract
197
- */
198
- set edges(arg: boolean);
199
-
200
- /**
201
- * Gets if this SceneModelEntity's edges are enhanced.
202
- *
203
- * @type {Boolean}
204
- * @abstract
205
- */
206
- get edges(): boolean;
207
-
208
- /**
209
- * Sets if this SceneModelEntity is culled.
210
- *
211
- * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
212
- *
213
- * @type {Boolean}
214
- * @abstract
215
- */
216
- set culled(arg: boolean);
217
-
218
- /**
219
- * Gets if this SceneModelEntity is culled.
220
- *
221
- * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
222
- *
223
- * @type {Boolean}
224
- * @abstract
225
- */
226
- get culled(): boolean;
227
-
228
- /**
229
- * Sets if this SceneModelEntity is clippable.
230
- *
231
- * Clipping is done by the {@link SectionPlane}s in {@link Scene.sectionPlanes}.
232
- *
233
- * @type {Boolean}
234
- * @abstract
235
- */
236
- set clippable(arg: boolean);
237
-
238
- /**
239
- * Gets if this SceneModelEntity is clippable.
240
- *
241
- * Clipping is done by the {@link SectionPlane}s in {@link Scene.sectionPlanes}.
242
- *
243
- * @type {Boolean}
244
- * @abstract
245
- */
246
- get clippable(): boolean;
247
-
248
- /**
249
- * Sets if this SceneModelEntity is included in boundary calculations.
250
- *
251
- * @type {Boolean}
252
- * @abstract
253
- */
254
- set collidable(arg: boolean);
255
-
256
- /**
257
- * Gets if this SceneModelEntity is included in boundary calculations.
258
- *
259
- * @type {Boolean}
260
- * @abstract
261
- */
262
- get collidable(): boolean;
263
-
264
- /**
265
- * Sets if this SceneModelEntity is pickable.
266
- *
267
- * Picking is done via calls to {@link Scene.pick}.
268
- *
269
- * @type {Boolean}
270
- * @abstract
271
- */
272
- set pickable(arg: boolean);
273
-
274
- /**
275
- * Gets if this SceneModelEntity is pickable.
276
- *
277
- * Picking is done via calls to {@link Scene.pick}.
278
- *
279
- * @type {Boolean}
280
- * @abstract
281
- */
282
- get pickable(): boolean;
283
-
284
- /**
285
- * Sets the SceneModelEntity's RGB colorize color, multiplies by the SceneModelEntity's rendered fragment colors.
286
- *
287
- * Each element of the color is in range ````[0..1]````.
288
- *
289
- * @type {number[]}
290
- * @abstract
291
- */
292
- set colorize(arg: number[]);
293
-
294
- /**
295
- * Gets the SceneModelEntity's RGB colorize color, multiplies by the SceneModelEntity's rendered fragment colors.
296
- *
297
- * Each element of the color is in range ````[0..1]````.
298
- *
299
- * @type {number[]}
300
- * @abstract
301
- */
302
- get colorize(): number[];
303
-
304
- /**
305
- * Sets the SceneModelEntity's opacity factor, multiplies by the SceneModelEntity's rendered fragment alphas.
306
- *
307
- * This is a factor in range ````[0..1]````.
308
- *
309
- * @type {number}
310
- * @abstract
311
- */
312
- set opacity(arg: number);
313
-
314
- /**
315
- * Gets the SceneModelEntity's opacity factor.
316
- *
317
- * This is a factor in range ````[0..1]```` which multiplies by the rendered fragment alphas.
318
- *
319
- * @type {number}
320
- * @abstract
321
- */
322
- get opacity(): number;
323
-
324
- /**
325
- * Sets if this SceneModelEntity casts shadows.
326
- *
327
- * @type {Boolean}
328
- * @abstract
329
- */
330
- set castsShadow(arg: boolean);
331
-
332
- /**
333
- * Gets if this SceneModelEntity casts shadows.
334
- *
335
- * @type {Boolean}
336
- * @abstract
337
- */
338
- get castsShadow(): boolean;
339
-
340
- /**
341
- * Sets if to this SceneModelEntity can have shadows cast upon it
342
- *
343
- * @type {Boolean}
344
- * @abstract
345
- */
346
- set receivesShadow(arg: boolean);
347
-
348
- /**
349
- * Gets if this SceneModelEntity can have shadows cast upon it
350
- *
351
- * @type {Boolean}
352
- * @abstract
353
- */
354
- get receivesShadow(): boolean;
355
-
356
- /**
357
- * Gets if this SceneModelEntity can have Scalable Ambient Obscurance (SAO) applied to it.
358
- *
359
- * SAO is configured by {@link SAO}.
360
- *
361
- * @type {Boolean}
362
- * @abstract
363
- */
364
- get saoEnabled(): boolean;
365
-
366
- /**
367
- * Sets the SceneModelEntity's 3D World-space offset.
368
- *
369
- * Since offsetting Entities comes with memory and rendering overhead on some systems, this feature
370
- * only works when {@link Viewer} is configured with ````entityOffsetsEnabled: true````.
371
- *
372
- * The offset dynamically translates the SceneModelEntity in World-space, which is useful for creating
373
- * effects like exploding parts assemblies etc.
374
- *
375
- * Default value is ````[0,0,0]````.
376
- *
377
- * Provide a null or undefined value to reset to the default value.
378
- *
379
- * @abstract
380
- * @type {number[]}
381
- */
382
- set offset(arg: number[]);
383
-
384
- /**
385
- * Gets the SceneModelEntity's 3D World-space offset.
386
- *
387
- * Default value is ````[0,0,0]````.
388
- *
389
- * @abstract
390
- * @type {number[]}
391
- */
392
- get offset(): number[];
393
-
394
- /**
395
- * Gets the World, View and Canvas-space positions of each vertex in a callback.
396
- *
397
- * @param callback
398
- */
399
- getEachVertex(callback: any): void;
400
-
401
- /**
402
- * The {@link SceneModel} to which this SceneModelEntity belongs.
403
- */
404
- model :SceneModel;
405
-
406
- /**
407
- * The {@link SceneModelMesh}es belonging to this SceneModelEntity.
408
- *
409
- * * These are created with {@link SceneModel#createMesh} and registered in {@ilnk SceneModel#meshes}
410
- * * Each SceneModelMesh belongs to one SceneModelEntity
411
- */
412
- meshes : SceneModelMesh[];
413
-
414
- /**
415
- * Destroys this SceneModelEntity.
416
- */
417
- destroy(): void;
12
+ /**
13
+ * Component ID, unique within the {@link Scene}.
14
+ *
15
+ * @type {number|string}
16
+ * @abstract
17
+ */
18
+ get id(): string;
19
+
20
+ /**
21
+ * ID of the corresponding object within the originating system, if any.
22
+ *
23
+ * By default, this has the same value as {@link SceneModelEntity.id}. When we load a model using {@link XTCLoaderPlugin.load},
24
+ * with {@link XTCLoaderPlugin.globalizeObjectIds} set ````true````, then that plugin will prefix {@link SceneModelEntity.id}
25
+ * with the model ID, while leaving this property holding the original value of {@link SceneModelEntity.id}. When loading an
26
+ * IFC model, this property will hold the IFC product ID of the corresponding IFC element.
27
+ *
28
+ * @type {string}
29
+ */
30
+ get originalSystemId(): string;
31
+
32
+ /**
33
+ * Returns true to indicate that this is an SceneModelEntity.
34
+ *
35
+ * @returns {Boolean}
36
+ */
37
+ get isEntity(): boolean;
38
+
39
+ /**
40
+ * Returns ````true```` if this SceneModelEntity represents a model.
41
+ *
42
+ * When this is ````true````, the SceneModelEntity will be registered by {@link SceneModelEntity.id} in {@link Scene.models} and
43
+ * may also have a corresponding {@link MetaModel}.
44
+ *
45
+ * @type {Boolean}
46
+ * @abstract
47
+ */
48
+ get isModel(): boolean;
49
+
50
+ /**
51
+ * Returns ````true```` if this SceneModelEntity represents an object.
52
+ *
53
+ * When this is ````true````, the SceneModelEntity will be registered by {@link SceneModelEntity.id} in {@link Scene.objects} and
54
+ * may also have a corresponding {@link MetaObject}.
55
+ *
56
+ * @type {Boolean}
57
+ * @abstract
58
+ */
59
+ get isObject(): boolean;
60
+
61
+ /** Returns the parent SceneModelEntity, if any. */
62
+ get parent(): void;
63
+
64
+ /**
65
+ * Sets the 3D World-space origin for this SceneModelEntity.
66
+ *
67
+ * @type {Float64Array}
68
+ * @abstract
69
+ */
70
+ set origin(arg: Float64Array);
71
+
72
+ /**
73
+ * Gets the 3D World-space origin for this SceneModelEntity.
74
+ *
75
+ * @type {Float64Array}
76
+ * @abstract
77
+ */
78
+ get origin(): Float64Array;
79
+
80
+ /**
81
+ * World-space 3D axis-aligned bounding box (AABB) of this SceneModelEntity.
82
+ *
83
+ * Represented by a six-element Float64Array containing the min/max extents of the
84
+ * axis-aligned volume, ie. ````[xmin, ymin,zmin,xmax,ymax, zmax]````.
85
+ *
86
+ * @type {Float64Array}
87
+ * @abstract
88
+ */
89
+ get aabb(): number[];
90
+
91
+ /**
92
+ * The approximate number of triangles in this SceneModelEntity.
93
+ *
94
+ * @type {number}
95
+ * @abstract
96
+ */
97
+ get numTriangles(): number;
98
+
99
+ /**
100
+ * Sets if this SceneModelEntity is visible.
101
+ *
102
+ * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
103
+ *
104
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.visible} are both ````true```` the SceneModelEntity will be
105
+ * registered by {@link SceneModelEntity.id} in {@link Scene.visibleObjects}.
106
+ *
107
+ * @type {Boolean}
108
+ * @abstract
109
+ */
110
+ set visible(arg: boolean);
111
+
112
+ /**
113
+ * Gets if this SceneModelEntity is visible.
114
+ *
115
+ * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
116
+ *
117
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.visible} are both ````true```` the SceneModelEntity will be
118
+ * registered by {@link SceneModelEntity.id} in {@link Scene.visibleObjects}.
119
+ *
120
+ * @type {Boolean}
121
+ * @abstract
122
+ */
123
+ get visible(): boolean;
124
+
125
+ /**
126
+ * Sets if this SceneModelEntity is xrayed.
127
+ *
128
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.xrayed} are both ````true``` the SceneModelEntity will be
129
+ * registered by {@link SceneModelEntity.id} in {@link Scene.xrayedObjects}.
130
+ *
131
+ * @type {Boolean}
132
+ * @abstract
133
+ */
134
+ set xrayed(arg: boolean);
135
+
136
+ /**
137
+ * Gets if this SceneModelEntity is xrayed.
138
+ *
139
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.xrayed} are both ````true``` the SceneModelEntity will be
140
+ * registered by {@link SceneModelEntity.id} in {@link Scene.xrayedObjects}.
141
+ *
142
+ * @type {Boolean}
143
+ * @abstract
144
+ */
145
+ get xrayed(): boolean;
146
+
147
+ /**
148
+ * Sets if this SceneModelEntity is highlighted.
149
+ *
150
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.highlighted} are both ````true```` the SceneModelEntity will be
151
+ * registered by {@link SceneModelEntity.id} in {@link Scene.highlightedObjects}.
152
+ *
153
+ * @type {Boolean}
154
+ * @abstract
155
+ */
156
+ set highlighted(arg: boolean);
157
+
158
+ /**
159
+ * Gets if this SceneModelEntity is highlighted.
160
+ *
161
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.highlighted} are both ````true```` the SceneModelEntity will be
162
+ * registered by {@link SceneModelEntity.id} in {@link Scene.highlightedObjects}.
163
+ *
164
+ * @type {Boolean}
165
+ * @abstract
166
+ */
167
+ get highlighted(): boolean;
168
+
169
+ /**
170
+ * Sets if this SceneModelEntity is selected.
171
+ *
172
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.selected} are both ````true``` the SceneModelEntity will be
173
+ * registered by {@link SceneModelEntity.id} in {@link Scene.selectedObjects}.
174
+ *
175
+ * @type {Boolean}
176
+ * @abstract
177
+ */
178
+ set selected(arg: boolean);
179
+
180
+ /**
181
+ * Gets if this SceneModelEntity is selected.
182
+ *
183
+ * When {@link SceneModelEntity.isObject} and {@link SceneModelEntity.selected} are both ````true``` the SceneModelEntity will be
184
+ * registered by {@link SceneModelEntity.id} in {@link Scene.selectedObjects}.
185
+ *
186
+ * @type {Boolean}
187
+ * @abstract
188
+ */
189
+ get selected(): boolean;
190
+
191
+ /**
192
+ * Sets if this SceneModelEntity's edges are enhanced.
193
+ *
194
+ * @type {Boolean}
195
+ * @abstract
196
+ */
197
+ set edges(arg: boolean);
198
+
199
+ /**
200
+ * Gets if this SceneModelEntity's edges are enhanced.
201
+ *
202
+ * @type {Boolean}
203
+ * @abstract
204
+ */
205
+ get edges(): boolean;
206
+
207
+ /**
208
+ * Sets if this SceneModelEntity is culled.
209
+ *
210
+ * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
211
+ *
212
+ * @type {Boolean}
213
+ * @abstract
214
+ */
215
+ set culled(arg: boolean);
216
+
217
+ /**
218
+ * Gets if this SceneModelEntity is culled.
219
+ *
220
+ * Only rendered when {@link SceneModelEntity.visible} is ````true```` and {@link SceneModelEntity.culled} is ````false````.
221
+ *
222
+ * @type {Boolean}
223
+ * @abstract
224
+ */
225
+ get culled(): boolean;
226
+
227
+ /**
228
+ * Sets if this SceneModelEntity is clippable.
229
+ *
230
+ * Clipping is done by the {@link SectionPlane}s in {@link Scene.sectionPlanes}.
231
+ *
232
+ * @type {Boolean}
233
+ * @abstract
234
+ */
235
+ set clippable(arg: boolean);
236
+
237
+ /**
238
+ * Gets if this SceneModelEntity is clippable.
239
+ *
240
+ * Clipping is done by the {@link SectionPlane}s in {@link Scene.sectionPlanes}.
241
+ *
242
+ * @type {Boolean}
243
+ * @abstract
244
+ */
245
+ get clippable(): boolean;
246
+
247
+ /**
248
+ * Sets if this SceneModelEntity is included in boundary calculations.
249
+ *
250
+ * @type {Boolean}
251
+ * @abstract
252
+ */
253
+ set collidable(arg: boolean);
254
+
255
+ /**
256
+ * Gets if this SceneModelEntity is included in boundary calculations.
257
+ *
258
+ * @type {Boolean}
259
+ * @abstract
260
+ */
261
+ get collidable(): boolean;
262
+
263
+ /**
264
+ * Sets if this SceneModelEntity is pickable.
265
+ *
266
+ * Picking is done via calls to {@link Scene.pick}.
267
+ *
268
+ * @type {Boolean}
269
+ * @abstract
270
+ */
271
+ set pickable(arg: boolean);
272
+
273
+ /**
274
+ * Gets if this SceneModelEntity is pickable.
275
+ *
276
+ * Picking is done via calls to {@link Scene.pick}.
277
+ *
278
+ * @type {Boolean}
279
+ * @abstract
280
+ */
281
+ get pickable(): boolean;
282
+
283
+ /**
284
+ * Sets the SceneModelEntity's RGB colorize color, multiplies by the SceneModelEntity's rendered fragment colors.
285
+ *
286
+ * Each element of the color is in range ````[0..1]````.
287
+ *
288
+ * @type {number[]}
289
+ * @abstract
290
+ */
291
+ set colorize(arg: number[]);
292
+
293
+ /**
294
+ * Gets the SceneModelEntity's RGB colorize color, multiplies by the SceneModelEntity's rendered fragment colors.
295
+ *
296
+ * Each element of the color is in range ````[0..1]````.
297
+ *
298
+ * @type {number[]}
299
+ * @abstract
300
+ */
301
+ get colorize(): number[];
302
+
303
+ /**
304
+ * Sets the SceneModelEntity's opacity factor, multiplies by the SceneModelEntity's rendered fragment alphas.
305
+ *
306
+ * This is a factor in range ````[0..1]````.
307
+ *
308
+ * @type {number}
309
+ * @abstract
310
+ */
311
+ set opacity(arg: number);
312
+
313
+ /**
314
+ * Gets the SceneModelEntity's opacity factor.
315
+ *
316
+ * This is a factor in range ````[0..1]```` which multiplies by the rendered fragment alphas.
317
+ *
318
+ * @type {number}
319
+ * @abstract
320
+ */
321
+ get opacity(): number;
322
+
323
+ /**
324
+ * Sets if this SceneModelEntity casts shadows.
325
+ *
326
+ * @type {Boolean}
327
+ * @abstract
328
+ */
329
+ set castsShadow(arg: boolean);
330
+
331
+ /**
332
+ * Gets if this SceneModelEntity casts shadows.
333
+ *
334
+ * @type {Boolean}
335
+ * @abstract
336
+ */
337
+ get castsShadow(): boolean;
338
+
339
+ /**
340
+ * Sets if to this SceneModelEntity can have shadows cast upon it
341
+ *
342
+ * @type {Boolean}
343
+ * @abstract
344
+ */
345
+ set receivesShadow(arg: boolean);
346
+
347
+ /**
348
+ * Gets if this SceneModelEntity can have shadows cast upon it
349
+ *
350
+ * @type {Boolean}
351
+ * @abstract
352
+ */
353
+ get receivesShadow(): boolean;
354
+
355
+ /**
356
+ * Gets if this SceneModelEntity can have Scalable Ambient Obscurance (SAO) applied to it.
357
+ *
358
+ * SAO is configured by {@link SAO}.
359
+ *
360
+ * @type {Boolean}
361
+ * @abstract
362
+ */
363
+ get saoEnabled(): boolean;
364
+
365
+ /**
366
+ * Sets the SceneModelEntity's 3D World-space offset.
367
+ *
368
+ * Since offsetting Entities comes with memory and rendering overhead on some systems, this feature
369
+ * only works when {@link Viewer} is configured with ````entityOffsetsEnabled: true````.
370
+ *
371
+ * The offset dynamically translates the SceneModelEntity in World-space, which is useful for creating
372
+ * effects like exploding parts assemblies etc.
373
+ *
374
+ * Default value is ````[0,0,0]````.
375
+ *
376
+ * Provide a null or undefined value to reset to the default value.
377
+ *
378
+ * @abstract
379
+ * @type {number[]}
380
+ */
381
+ set offset(arg: number[]);
382
+
383
+ /**
384
+ * Gets the SceneModelEntity's 3D World-space offset.
385
+ *
386
+ * Default value is ````[0,0,0]````.
387
+ *
388
+ * @abstract
389
+ * @type {number[]}
390
+ */
391
+ get offset(): number[];
392
+
393
+ /**
394
+ * Gets the World, View and Canvas-space positions of each vertex in a callback.
395
+ *
396
+ * @param callback
397
+ */
398
+ getEachVertex(callback: any): void;
399
+
400
+ /**
401
+ * The {@link SceneModel} to which this SceneModelEntity belongs.
402
+ */
403
+ model: SceneModel;
404
+
405
+ /**
406
+ * The {@link SceneModelMesh}es belonging to this SceneModelEntity.
407
+ *
408
+ * * These are created with {@link SceneModel#createMesh} and registered in {@ilnk SceneModel#meshes}
409
+ * * Each SceneModelMesh belongs to one SceneModelEntity
410
+ */
411
+ meshes: SceneModelMesh[];
412
+
413
+ /**
414
+ * Destroys this SceneModelEntity.
415
+ */
416
+ destroy(): void;
418
417
  }