f3d 3.5.0 → 4.0.0-RC1
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.
- package/README.md +16 -12
- package/dist/f3d.d.ts +290 -27
- package/dist/f3d.js +2 -14
- package/dist/f3d.wasm +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
[](https://github.com/f3d-app/f3d/actions/workflows/ci.yml) [](https://github.com/f3d-app/f3d-superbuild) [](https://codecov.io/gh/f3d-app/f3d) [](https://github.com/f3d-app/f3d/releases) [](https://f3d.app/thanks) [](https://discord.f3d.app) [](CODE_OF_CONDUCT.md)
|
|
2
2
|
|
|
3
|
-
# F3D -
|
|
3
|
+
# F3D - fast and minimalist 3D viewer
|
|
4
4
|
|
|
5
5
|
By the F3D-APP Foundation.
|
|
6
6
|
|
|
7
7
|
<img src="https://raw.githubusercontent.com/f3d-app/f3d/master/resources/logo.svg" align="left" width="20px"/>
|
|
8
|
-
F3D (pronounced `/fɛd/`) is a fast and minimalist 3D viewer desktop application. It supports many file formats, from digital content to scientific datasets
|
|
8
|
+
F3D (pronounced `/fɛd/`) is a fast and minimalist 3D viewer desktop application. It supports many file formats, from digital content to scientific datasets, including glTF, USD, STL, STEP, PLY, OBJ, FBX, and Alembic. It can show animations, generate thumbnails, and provide many rendering and texturing options including real-time physically based rendering and raytracing.
|
|
9
9
|
<br clear="left"/>
|
|
10
10
|
|
|
11
|
-
It is fully controllable from the command line and
|
|
11
|
+
It is fully controllable from the command line and supports configuration files. It supports interactive hotkeys, drag and drop, and integration into file managers.
|
|
12
12
|
|
|
13
|
-
F3D also contains
|
|
13
|
+
F3D also contains libf3d, a simple library to render meshes, with a C++17 API and C, Python, Java, and JavaScript bindings.
|
|
14
14
|
|
|
15
15
|
<img src="https://media.githubusercontent.com/media/f3d-app/f3d-website/refs/heads/main/static/images/typical.png" width="640" />
|
|
16
16
|
|
|
@@ -28,7 +28,11 @@ See the [gallery](https://f3d.app/gallery) for more images, take a look at the [
|
|
|
28
28
|
|
|
29
29
|
You can even use F3D directly in your [browser](https://f3d.app/viewer)!
|
|
30
30
|
|
|
31
|
-
If you need any help or want to discuss with other F3D users and developers, head over to our [
|
|
31
|
+
If you need any help or want to discuss with other F3D users and developers, head over to our [Discord](https://discord.f3d.app).
|
|
32
|
+
|
|
33
|
+
# Installation
|
|
34
|
+
|
|
35
|
+
Install F3D from the [download page](https://f3d.app/download), which lists the latest release packages and installation options for supported platforms. Once installed, the `f3d` command should be available from your terminal.
|
|
32
36
|
|
|
33
37
|
# Quickstart
|
|
34
38
|
|
|
@@ -40,7 +44,7 @@ f3d /path/to/file.ext
|
|
|
40
44
|
|
|
41
45
|
Optionally, append `--output=/path/to/img.png` to save the rendering into an image file.
|
|
42
46
|
|
|
43
|
-
See the [
|
|
47
|
+
See the [quickstart guide](doc/user/01-QUICKSTART.md) for more information about getting started with F3D.
|
|
44
48
|
|
|
45
49
|
# Documentation
|
|
46
50
|
|
|
@@ -54,18 +58,18 @@ See the [Quickstart Guide](doc/user/01-QUICKSTART.md) for more information about
|
|
|
54
58
|
F3D needs your help!
|
|
55
59
|
|
|
56
60
|
If you can, please consider sponsoring F3D. Even a small donation would help us offset the recurring maintenance costs.
|
|
57
|
-
With enough sponsors
|
|
61
|
+
With enough sponsors, F3D can grow faster and stronger! Read the [sponsorship page](https://f3d.app/thanks).
|
|
58
62
|
|
|
59
63
|
If you are an industry user of F3D and want to make sure it can keep growing and being maintained, [please reach out](https://f3d.app/thanks)!
|
|
60
64
|
|
|
61
|
-
In any case, please star it on
|
|
65
|
+
In any case, please star it on GitHub and share the word about it!
|
|
62
66
|
|
|
63
67
|
## Sponsors
|
|
64
68
|
|
|
65
69
|
Many thanks to our sponsors for supporting F3D
|
|
66
70
|
|
|
67
71
|
<a href="https://nlnet.nl/project/F3D/" target="_blank"><img src="https://nlnet.nl/image/logos/NGI0Core_tag.svg" height="45"/></a>
|
|
68
|
-
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=f3d-app" target="_blank"><img src="https://f3d
|
|
72
|
+
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=f3d-app" target="_blank"><img src="https://github.com/f3d-app/f3d-website/raw/refs/heads/main/static/sponsors/testmu.svg" height="32"/></a>
|
|
69
73
|
<a href="https://www.opendronemap.org/" target="_blank"><img src="https://f3d.app/assets/images/opendronemap-95d4ad6e24c091a06ec00e1828e1eb38.png" height="45" /></a>
|
|
70
74
|
|
|
71
75
|
# Vision
|
|
@@ -89,7 +93,7 @@ but there is no plan to:
|
|
|
89
93
|
|
|
90
94
|
# Contributing
|
|
91
95
|
|
|
92
|
-
F3D is a community-driven, inclusive and beginner-friendly project. We love to see how the project is growing thanks to the contributions from the community. We would love to see your face in the list below! If you want to contribute to F3D, you are very welcome to! Take a look at our [contribution documentation](CONTRIBUTING.md), [governance documentation](doc/dev/
|
|
96
|
+
F3D is a community-driven, inclusive and beginner-friendly project. We love to see how the project is growing thanks to the contributions from the community. We would love to see your face in the list below! If you want to contribute to F3D, you are very welcome to! Take a look at our [contribution documentation](CONTRIBUTING.md), [governance documentation](doc/dev/11-GOVERNANCE.md) and [code of conduct](CODE_OF_CONDUCT.md).
|
|
93
97
|
|
|
94
98
|
<a href="https://github.com/f3d-app/f3d/graphs/contributors">
|
|
95
99
|
<img src="https://contrib.rocks/image?repo=f3d-app/f3d" />
|
|
@@ -102,5 +106,5 @@ F3D was initially created by [Kitware SAS](https://www.kitware.eu/), by Joachim
|
|
|
102
106
|
# License
|
|
103
107
|
|
|
104
108
|
F3D can be used and distributed under the 3-Clause BSD License, see the [license](LICENSE.md).
|
|
105
|
-
F3D
|
|
106
|
-
F3D packages
|
|
109
|
+
F3D integrates the sources of other libraries and tools, all under permissive licenses, see the [third party licenses](THIRD_PARTY_LICENSES.md).
|
|
110
|
+
F3D packages rely on other libraries and tools, all under permissive licenses, all listed in the respective packages.
|
package/dist/f3d.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// TypeScript bindings for emscripten-generated code. Automatically generated at compile time.
|
|
2
2
|
declare namespace RuntimeExports {
|
|
3
|
+
function getExceptionMessage(ex: any): any;
|
|
4
|
+
function decrementExceptionRefcount(ex: any): void;
|
|
3
5
|
namespace FS {
|
|
4
6
|
export const root: any;
|
|
5
7
|
export const mounts: any[];
|
|
@@ -12,7 +14,6 @@ declare namespace RuntimeExports {
|
|
|
12
14
|
export const ignorePermissions: boolean;
|
|
13
15
|
export const filesystems: any;
|
|
14
16
|
export const syncFSRequests: number;
|
|
15
|
-
export const readFiles: {};
|
|
16
17
|
export { ErrnoError };
|
|
17
18
|
export { FSStream };
|
|
18
19
|
export { FSNode };
|
|
@@ -88,6 +89,7 @@ declare namespace RuntimeExports {
|
|
|
88
89
|
export function mkdirTree(path: any, mode: any): void;
|
|
89
90
|
export function mkdev(path: any, mode: any, dev: any): any;
|
|
90
91
|
export function symlink(oldpath: any, newpath: any): any;
|
|
92
|
+
export function link(oldpath: any, newpath: any, flags: any): any;
|
|
91
93
|
export function rename(old_path: any, new_path: any): void;
|
|
92
94
|
export function rmdir(path: any): void;
|
|
93
95
|
export function readdir(path: any): any;
|
|
@@ -107,7 +109,7 @@ declare namespace RuntimeExports {
|
|
|
107
109
|
export function doTruncate(stream: any, node: any, len: any): void;
|
|
108
110
|
export function truncate(path: any, len: any): void;
|
|
109
111
|
export function ftruncate(fd: any, len: any): void;
|
|
110
|
-
export function utime(path: any, atime: any, mtime: any): void;
|
|
112
|
+
export function utime(path: any, atime: any, mtime: any, dontFollow: any): void;
|
|
111
113
|
export function open(path: any, flags: any, mode?: number): any;
|
|
112
114
|
export function close(stream: any): void;
|
|
113
115
|
export function isClosed(stream: any): boolean;
|
|
@@ -149,17 +151,17 @@ declare namespace RuntimeExports {
|
|
|
149
151
|
}
|
|
150
152
|
function FS_createPath(...args: any[]): any;
|
|
151
153
|
function FS_createDataFile(...args: any[]): any;
|
|
152
|
-
function
|
|
154
|
+
function FS_preloadFile(parent: any, name: any, url: any, canRead: any, canWrite: any, dontCreateFile: any, canOwn: any, preFinish: any): Promise<void>;
|
|
153
155
|
function FS_unlink(...args: any[]): any;
|
|
154
156
|
function FS_createLazyFile(...args: any[]): any;
|
|
155
157
|
function FS_createDevice(...args: any[]): any;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
+
function addRunDependency(id: any): void;
|
|
159
|
+
function removeRunDependency(id: any): void;
|
|
158
160
|
}
|
|
159
|
-
declare class ErrnoError {
|
|
161
|
+
declare class ErrnoError extends Error {
|
|
160
162
|
constructor(errno: any);
|
|
161
|
-
name: string;
|
|
162
163
|
errno: any;
|
|
164
|
+
code: string;
|
|
163
165
|
}
|
|
164
166
|
declare class FSStream {
|
|
165
167
|
shared: {};
|
|
@@ -196,6 +198,15 @@ declare class FSNode {
|
|
|
196
198
|
get write(): boolean;
|
|
197
199
|
get isFolder(): any;
|
|
198
200
|
get isDevice(): any;
|
|
201
|
+
addListener(cb: any, exclusive?: boolean): {
|
|
202
|
+
listeners: any;
|
|
203
|
+
entry: {
|
|
204
|
+
cb: any;
|
|
205
|
+
exclusive: boolean;
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
notifyListeners(flags: any): void;
|
|
209
|
+
exclTurn: any;
|
|
199
210
|
}
|
|
200
211
|
interface WasmModule {
|
|
201
212
|
_setDefaultExpandVTKCanvasToContainer(_0: number): void;
|
|
@@ -212,6 +223,45 @@ export interface ClassHandle {
|
|
|
212
223
|
[Symbol.dispose](): void;
|
|
213
224
|
clone(): this;
|
|
214
225
|
}
|
|
226
|
+
export interface Color extends ClassHandle {
|
|
227
|
+
readonly r: number;
|
|
228
|
+
readonly g: number;
|
|
229
|
+
readonly b: number;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export interface LightTypeValue<T extends number> {
|
|
233
|
+
value: T;
|
|
234
|
+
}
|
|
235
|
+
export type LightType = LightTypeValue<1>|LightTypeValue<2>|LightTypeValue<3>;
|
|
236
|
+
|
|
237
|
+
export interface LightState extends ClassHandle {
|
|
238
|
+
type: LightType;
|
|
239
|
+
color: Color;
|
|
240
|
+
positionalLight: boolean;
|
|
241
|
+
switchState: boolean;
|
|
242
|
+
position: Point3;
|
|
243
|
+
direction: Vector3;
|
|
244
|
+
intensity: number;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
export interface Mesh extends ClassHandle {
|
|
248
|
+
points: any;
|
|
249
|
+
normals: any;
|
|
250
|
+
textureCoordinates: any;
|
|
251
|
+
faceSides: any;
|
|
252
|
+
faceIndices: any;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export interface OptionsDomainStyleValue<T extends number> {
|
|
256
|
+
value: T;
|
|
257
|
+
}
|
|
258
|
+
export type OptionsDomainStyle = OptionsDomainStyleValue<1>|OptionsDomainStyleValue<2>|OptionsDomainStyleValue<3>;
|
|
259
|
+
|
|
260
|
+
export interface OptionTypeValue<T extends number> {
|
|
261
|
+
value: T;
|
|
262
|
+
}
|
|
263
|
+
export type OptionType = OptionTypeValue<0>|OptionTypeValue<1>|OptionTypeValue<2>|OptionTypeValue<3>|OptionTypeValue<4>|OptionTypeValue<5>|OptionTypeValue<6>|OptionTypeValue<7>|OptionTypeValue<8>|OptionTypeValue<9>|OptionTypeValue<10>|OptionTypeValue<11>;
|
|
264
|
+
|
|
215
265
|
export interface Options extends ClassHandle {
|
|
216
266
|
setAsString(_0: EmbindString, _1: EmbindString): Options;
|
|
217
267
|
getAsString(_0: EmbindString): string;
|
|
@@ -220,24 +270,67 @@ export interface Options extends ClassHandle {
|
|
|
220
270
|
hasValue(_0: EmbindString): boolean;
|
|
221
271
|
copy(_0: Options, _1: EmbindString): Options;
|
|
222
272
|
isOptional(_0: EmbindString): boolean;
|
|
273
|
+
getType(_0: EmbindString): OptionType;
|
|
223
274
|
reset(_0: EmbindString): Options;
|
|
224
275
|
removeValue(_0: EmbindString): Options;
|
|
276
|
+
hasDomain(_0: EmbindString): boolean;
|
|
277
|
+
getDomainStyle(_0: EmbindString): OptionsDomainStyle;
|
|
278
|
+
increase(_0: EmbindString): Options;
|
|
279
|
+
decrease(_0: EmbindString): Options;
|
|
280
|
+
cycle(_0: EmbindString): Options;
|
|
225
281
|
get(_0: EmbindString): any;
|
|
226
282
|
getNames(): any;
|
|
227
283
|
getClosestOption(_0: EmbindString): any;
|
|
284
|
+
getRangeDomainAsNumber(_0: EmbindString): any;
|
|
285
|
+
getEnumDomainAsString(_0: EmbindString): any;
|
|
286
|
+
getIndexDomain(_0: EmbindString): any;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export interface AnimationDirectionValue<T extends number> {
|
|
290
|
+
value: T;
|
|
228
291
|
}
|
|
292
|
+
export type AnimationDirection = AnimationDirectionValue<0>|AnimationDirectionValue<1>;
|
|
293
|
+
|
|
294
|
+
export interface Animation extends ClassHandle {
|
|
295
|
+
toggle(): Animation;
|
|
296
|
+
start(): Animation;
|
|
297
|
+
stop(): Animation;
|
|
298
|
+
getDirection(): AnimationDirection;
|
|
299
|
+
isPlaying(): boolean;
|
|
300
|
+
count(): number;
|
|
301
|
+
loadTime(_0: number): Animation;
|
|
302
|
+
getName(): string;
|
|
303
|
+
getName(_0: number): string;
|
|
304
|
+
getTimeRange(): any;
|
|
305
|
+
getKeyFrames(): any;
|
|
306
|
+
getNames(): any;
|
|
307
|
+
toggle(_0: any): Animation;
|
|
308
|
+
start(_0: any): Animation;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export interface FileAvailabilityValue<T extends number> {
|
|
312
|
+
value: T;
|
|
313
|
+
}
|
|
314
|
+
export type FileAvailability = FileAvailabilityValue<0>|FileAvailabilityValue<1>|FileAvailabilityValue<2>;
|
|
229
315
|
|
|
230
316
|
export interface Scene extends ClassHandle {
|
|
317
|
+
addMesh(_0: Mesh): Scene;
|
|
231
318
|
clear(): Scene;
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
319
|
+
removeAllLights(): Scene;
|
|
320
|
+
getAnimation(): Animation;
|
|
321
|
+
addLight(_0: LightState): number;
|
|
322
|
+
getLightCount(): number;
|
|
323
|
+
getLight(_0: number): LightState;
|
|
324
|
+
updateLight(_0: number, _1: LightState): Scene;
|
|
325
|
+
removeLight(_0: number): Scene;
|
|
326
|
+
setNodeVisibility(_0: number, _1: boolean): Scene;
|
|
327
|
+
supports(_0: EmbindString): FileAvailability;
|
|
236
328
|
add(_0: any): Scene;
|
|
329
|
+
addMeshView(_0: any): Scene;
|
|
237
330
|
addBuffer(_0: any): Scene;
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
331
|
+
getAddedFiles(): any;
|
|
332
|
+
getSceneHierarchy(): any;
|
|
333
|
+
getSceneInfo(): any;
|
|
241
334
|
}
|
|
242
335
|
|
|
243
336
|
export interface ImageSaveFormatValue<T extends number> {
|
|
@@ -269,11 +362,19 @@ export interface Image extends ClassHandle {
|
|
|
269
362
|
allMetadata(): any;
|
|
270
363
|
}
|
|
271
364
|
|
|
365
|
+
export interface CameraState extends ClassHandle {
|
|
366
|
+
position: Point3;
|
|
367
|
+
focalPoint: Point3;
|
|
368
|
+
viewUp: Vector3;
|
|
369
|
+
viewAngle: number;
|
|
370
|
+
}
|
|
371
|
+
|
|
272
372
|
export interface Camera extends ClassHandle {
|
|
373
|
+
state: CameraState;
|
|
374
|
+
position: Point3;
|
|
375
|
+
focalPoint: Point3;
|
|
376
|
+
viewUp: Vector3;
|
|
273
377
|
viewAngle: number;
|
|
274
|
-
position: any;
|
|
275
|
-
focalPoint: any;
|
|
276
|
-
viewUp: any;
|
|
277
378
|
setCurrentAsDefault(): Camera;
|
|
278
379
|
resetToDefault(): Camera;
|
|
279
380
|
dolly(_0: number): Camera;
|
|
@@ -290,37 +391,132 @@ export interface Camera extends ClassHandle {
|
|
|
290
391
|
export interface Window extends ClassHandle {
|
|
291
392
|
readonly width: number;
|
|
292
393
|
readonly height: number;
|
|
394
|
+
size: any;
|
|
293
395
|
getCamera(): Camera;
|
|
396
|
+
getVideoFrame(): VideoFrame | null;
|
|
294
397
|
render(): boolean;
|
|
295
398
|
renderToImage(_0: boolean): Image;
|
|
399
|
+
setUseHDRICache(_0: boolean): Window;
|
|
296
400
|
setSize(_0: number, _1: number): Window;
|
|
401
|
+
getDPIScale(): number;
|
|
297
402
|
getWorldFromDisplay(_0: any): any;
|
|
298
403
|
getDisplayFromWorld(_0: any): any;
|
|
299
404
|
}
|
|
300
405
|
|
|
301
|
-
export interface
|
|
406
|
+
export interface VideoFrame extends ClassHandle {
|
|
407
|
+
setTimestamp(_0: bigint): VideoFrame;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
export interface VideoPacket extends ClassHandle {
|
|
411
|
+
isKeyFrame(): boolean;
|
|
412
|
+
getTimestamp(): bigint;
|
|
413
|
+
getPacketData(): any;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export interface VideoEncoderCodecValue<T extends number> {
|
|
417
|
+
value: T;
|
|
418
|
+
}
|
|
419
|
+
export type VideoEncoderCodec = VideoEncoderCodecValue<0>|VideoEncoderCodecValue<1>|VideoEncoderCodecValue<2>|VideoEncoderCodecValue<3>|VideoEncoderCodecValue<4>|VideoEncoderCodecValue<5>;
|
|
420
|
+
|
|
421
|
+
export interface VideoEncoder extends ClassHandle {
|
|
422
|
+
readonly width: number;
|
|
423
|
+
readonly height: number;
|
|
424
|
+
flush(): VideoEncoder;
|
|
425
|
+
submit(_0: VideoFrame | null): boolean;
|
|
426
|
+
listen(_0: any): VideoEncoder;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
export interface InteractionBindModifierKeysValue<T extends number> {
|
|
430
|
+
value: T;
|
|
431
|
+
}
|
|
432
|
+
export type InteractionBindModifierKeys = InteractionBindModifierKeysValue<128>|InteractionBindModifierKeysValue<0>|InteractionBindModifierKeysValue<1>|InteractionBindModifierKeysValue<2>|InteractionBindModifierKeysValue<3>;
|
|
433
|
+
|
|
434
|
+
export interface InteractionBind extends ClassHandle {
|
|
435
|
+
mod: InteractionBindModifierKeys;
|
|
436
|
+
get inter(): string;
|
|
437
|
+
set inter(value: EmbindString);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
export interface InteractorBindingTypeValue<T extends number> {
|
|
302
441
|
value: T;
|
|
303
442
|
}
|
|
304
|
-
export type
|
|
443
|
+
export type InteractorBindingType = InteractorBindingTypeValue<0>|InteractorBindingTypeValue<1>|InteractorBindingTypeValue<2>|InteractorBindingTypeValue<3>;
|
|
444
|
+
|
|
445
|
+
export interface InteractorMouseButtonValue<T extends number> {
|
|
446
|
+
value: T;
|
|
447
|
+
}
|
|
448
|
+
export type InteractorMouseButton = InteractorMouseButtonValue<0>|InteractorMouseButtonValue<1>|InteractorMouseButtonValue<2>;
|
|
449
|
+
|
|
450
|
+
export interface InteractorWheelDirectionValue<T extends number> {
|
|
451
|
+
value: T;
|
|
452
|
+
}
|
|
453
|
+
export type InteractorWheelDirection = InteractorWheelDirectionValue<0>|InteractorWheelDirectionValue<1>|InteractorWheelDirectionValue<2>|InteractorWheelDirectionValue<3>;
|
|
454
|
+
|
|
455
|
+
export interface InteractorInputActionValue<T extends number> {
|
|
456
|
+
value: T;
|
|
457
|
+
}
|
|
458
|
+
export type InteractorInputAction = InteractorInputActionValue<0>|InteractorInputActionValue<1>;
|
|
459
|
+
|
|
460
|
+
export interface InteractorInputModifierValue<T extends number> {
|
|
461
|
+
value: T;
|
|
462
|
+
}
|
|
463
|
+
export type InteractorInputModifier = InteractorInputModifierValue<0>|InteractorInputModifierValue<1>|InteractorInputModifierValue<2>|InteractorInputModifierValue<3>;
|
|
464
|
+
|
|
465
|
+
export interface InteractorState extends ClassHandle {
|
|
466
|
+
animationTime: number;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
export interface InteractorBindCommands extends ClassHandle, Iterable<string> {
|
|
470
|
+
size(): number;
|
|
471
|
+
get(_0: number): string | undefined;
|
|
472
|
+
push_back(_0: EmbindString): void;
|
|
473
|
+
resize(_0: number, _1: EmbindString): void;
|
|
474
|
+
set(_0: number, _1: EmbindString): boolean;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
export interface InteractorBindingParam extends ClassHandle {
|
|
478
|
+
bind: InteractionBind;
|
|
479
|
+
commands: InteractorBindCommands;
|
|
480
|
+
type: InteractorBindingType;
|
|
481
|
+
notify: boolean;
|
|
482
|
+
repeat: boolean;
|
|
483
|
+
get group(): string;
|
|
484
|
+
set group(value: EmbindString);
|
|
485
|
+
setDocCallback(_0: any): void;
|
|
486
|
+
getDocCallback(): any;
|
|
487
|
+
}
|
|
305
488
|
|
|
306
489
|
export interface Interactor extends ClassHandle {
|
|
307
490
|
initCommands(): Interactor;
|
|
308
|
-
|
|
309
|
-
|
|
491
|
+
initBindings(): Interactor;
|
|
492
|
+
addBinding(_0: InteractorBindingParam): Interactor;
|
|
493
|
+
removeBinding(_0: InteractionBind): Interactor;
|
|
494
|
+
getBindingType(_0: InteractionBind): InteractorBindingType;
|
|
310
495
|
enableCameraMovement(): Interactor;
|
|
311
496
|
disableCameraMovement(): Interactor;
|
|
497
|
+
triggerModUpdate(_0: InteractorInputModifier): Interactor;
|
|
498
|
+
triggerMouseButton(_0: InteractorInputAction, _1: InteractorMouseButton): Interactor;
|
|
499
|
+
triggerMouseWheel(_0: InteractorWheelDirection): Interactor;
|
|
312
500
|
start(): Interactor;
|
|
313
501
|
stop(): Interactor;
|
|
314
502
|
requestRender(): Interactor;
|
|
315
503
|
requestStop(): Interactor;
|
|
316
|
-
|
|
504
|
+
triggerTextCharacter(_0: number): Interactor;
|
|
505
|
+
triggerMousePosition(_0: number, _1: number): Interactor;
|
|
506
|
+
triggerEventLoop(_0: number): Interactor;
|
|
317
507
|
removeCommand(_0: EmbindString): Interactor;
|
|
318
508
|
triggerCommand(_0: EmbindString, _1: boolean): boolean;
|
|
319
|
-
|
|
509
|
+
triggerKeyboardKey(_0: InteractorInputAction, _1: EmbindString): Interactor;
|
|
510
|
+
triggerNotification(_0: EmbindString, _1: EmbindString, _2: number): Interactor;
|
|
511
|
+
playInteraction(_0: EmbindString, _1: number): boolean;
|
|
512
|
+
recordInteraction(_0: EmbindString): boolean;
|
|
320
513
|
addCommand(_0: EmbindString, _1: any): Interactor;
|
|
321
514
|
getCommandActions(): any;
|
|
322
|
-
|
|
323
|
-
|
|
515
|
+
getBindGroups(): any;
|
|
516
|
+
getBinds(): any;
|
|
517
|
+
getBindingDocumentation(_0: InteractionBind): any;
|
|
518
|
+
setNotificationCallback(_0: any): void;
|
|
519
|
+
setEventLoopUserCallback(_0: any): Interactor;
|
|
324
520
|
}
|
|
325
521
|
|
|
326
522
|
export interface EngineLibInformation extends ClassHandle {
|
|
@@ -355,13 +551,21 @@ export interface EngineReaderInformation extends ClassHandle {
|
|
|
355
551
|
readonly mimeTypes: any;
|
|
356
552
|
}
|
|
357
553
|
|
|
554
|
+
export interface EngineState extends ClassHandle {
|
|
555
|
+
toString(): string;
|
|
556
|
+
toFile(_0: EmbindString): void;
|
|
557
|
+
}
|
|
558
|
+
|
|
358
559
|
export interface Engine extends ClassHandle {
|
|
560
|
+
get cachePath(): string;
|
|
561
|
+
set cachePath(value: EmbindString);
|
|
359
562
|
setOptions(_0: Options): Engine;
|
|
360
563
|
getOptions(): Options;
|
|
361
564
|
getWindow(): Window;
|
|
362
565
|
getScene(): Scene;
|
|
566
|
+
dump(): EngineState;
|
|
567
|
+
load(_0: EngineState): Engine;
|
|
363
568
|
getInteractor(): Interactor;
|
|
364
|
-
setCachePath(_0: EmbindString): Engine;
|
|
365
569
|
}
|
|
366
570
|
|
|
367
571
|
export interface LogVerboseLevelValue<T extends number> {
|
|
@@ -372,11 +576,39 @@ export type LogVerboseLevel = LogVerboseLevelValue<0>|LogVerboseLevelValue<1>|Lo
|
|
|
372
576
|
export interface Log extends ClassHandle {
|
|
373
577
|
}
|
|
374
578
|
|
|
579
|
+
export type Point3 = [ number, number, number ];
|
|
580
|
+
|
|
581
|
+
export type Vector3 = [ number, number, number ];
|
|
582
|
+
|
|
583
|
+
export type VideoEncoderParams = {
|
|
584
|
+
codec: VideoEncoderCodec,
|
|
585
|
+
width: number,
|
|
586
|
+
height: number,
|
|
587
|
+
frameRate: number,
|
|
588
|
+
bitrate: number,
|
|
589
|
+
lowLatency: boolean
|
|
590
|
+
};
|
|
591
|
+
|
|
375
592
|
interface EmbindModule {
|
|
593
|
+
Color: {
|
|
594
|
+
new(_0: number, _1: number, _2: number): Color;
|
|
595
|
+
};
|
|
596
|
+
LightType: {HEADLIGHT: LightTypeValue<1>, CAMERA_LIGHT: LightTypeValue<2>, SCENE_LIGHT: LightTypeValue<3>};
|
|
597
|
+
LightState: {
|
|
598
|
+
new(): LightState;
|
|
599
|
+
};
|
|
600
|
+
Mesh: {
|
|
601
|
+
new(): Mesh;
|
|
602
|
+
};
|
|
603
|
+
OptionsDomainStyle: {RANGE: OptionsDomainStyleValue<1>, ENUM: OptionsDomainStyleValue<2>, INDEX: OptionsDomainStyleValue<3>};
|
|
604
|
+
OptionType: {BOOL: OptionTypeValue<0>, INT: OptionTypeValue<1>, DOUBLE: OptionTypeValue<2>, RATIO: OptionTypeValue<3>, STRING: OptionTypeValue<4>, PATH: OptionTypeValue<5>, COLOR: OptionTypeValue<6>, DIRECTION: OptionTypeValue<7>, COLORMAP: OptionTypeValue<8>, TRANSFORM2D: OptionTypeValue<9>, DOUBLE_VECTOR: OptionTypeValue<10>, INT_VECTOR: OptionTypeValue<11>};
|
|
376
605
|
Options: {
|
|
377
606
|
new(): Options;
|
|
378
607
|
getAllNames(): any;
|
|
379
608
|
};
|
|
609
|
+
AnimationDirection: {FORWARD: AnimationDirectionValue<0>, BACKWARD: AnimationDirectionValue<1>};
|
|
610
|
+
Animation: {};
|
|
611
|
+
FileAvailability: {SUPPORTED: FileAvailabilityValue<0>, UNSUPPORTED_EXTENSION: FileAvailabilityValue<1>, UNSUPPORTED_CONTENT: FileAvailabilityValue<2>};
|
|
380
612
|
Scene: {};
|
|
381
613
|
ImageSaveFormat: {PNG: ImageSaveFormatValue<0>, JPG: ImageSaveFormatValue<1>, TIF: ImageSaveFormatValue<2>, BMP: ImageSaveFormatValue<3>};
|
|
382
614
|
ImageChannelType: {BYTE: ImageChannelTypeValue<0>, SHORT: ImageChannelTypeValue<1>, FLOAT: ImageChannelTypeValue<2>};
|
|
@@ -384,18 +616,49 @@ interface EmbindModule {
|
|
|
384
616
|
new(): Image;
|
|
385
617
|
new(_0: number, _1: number, _2: number, _3: ImageChannelType): Image;
|
|
386
618
|
new(_0: EmbindString): Image;
|
|
619
|
+
createFromBuffer(_0: any): Image;
|
|
387
620
|
getSupportedFormats(): any;
|
|
388
621
|
};
|
|
622
|
+
CameraState: {
|
|
623
|
+
new(): CameraState;
|
|
624
|
+
};
|
|
389
625
|
Camera: {};
|
|
390
626
|
Window: {};
|
|
391
|
-
|
|
627
|
+
VideoFrame: {};
|
|
628
|
+
VideoPacket: {};
|
|
629
|
+
VideoEncoderCodec: {H264: VideoEncoderCodecValue<0>, HEVC: VideoEncoderCodecValue<1>, VP8: VideoEncoderCodecValue<2>, VP9: VideoEncoderCodecValue<3>, AV1: VideoEncoderCodecValue<4>, EXPLICIT: VideoEncoderCodecValue<5>};
|
|
630
|
+
VideoEncoder: {
|
|
631
|
+
create(_0: VideoEncoderParams): VideoEncoder | null;
|
|
632
|
+
getAvailableEncoders(): any;
|
|
633
|
+
};
|
|
634
|
+
InteractionBindModifierKeys: {ANY: InteractionBindModifierKeysValue<128>, NONE: InteractionBindModifierKeysValue<0>, CTRL: InteractionBindModifierKeysValue<1>, SHIFT: InteractionBindModifierKeysValue<2>, CTRL_SHIFT: InteractionBindModifierKeysValue<3>};
|
|
635
|
+
InteractionBind: {
|
|
636
|
+
new(): InteractionBind;
|
|
637
|
+
};
|
|
638
|
+
InteractorBindingType: {CYCLIC: InteractorBindingTypeValue<0>, NUMERICAL: InteractorBindingTypeValue<1>, TOGGLE: InteractorBindingTypeValue<2>, OTHER: InteractorBindingTypeValue<3>};
|
|
639
|
+
InteractorMouseButton: {LEFT: InteractorMouseButtonValue<0>, RIGHT: InteractorMouseButtonValue<1>, MIDDLE: InteractorMouseButtonValue<2>};
|
|
640
|
+
InteractorWheelDirection: {FORWARD: InteractorWheelDirectionValue<0>, BACKWARD: InteractorWheelDirectionValue<1>, LEFT: InteractorWheelDirectionValue<2>, RIGHT: InteractorWheelDirectionValue<3>};
|
|
641
|
+
InteractorInputAction: {PRESS: InteractorInputActionValue<0>, RELEASE: InteractorInputActionValue<1>};
|
|
642
|
+
InteractorInputModifier: {NONE: InteractorInputModifierValue<0>, CTRL: InteractorInputModifierValue<1>, SHIFT: InteractorInputModifierValue<2>, CTRL_SHIFT: InteractorInputModifierValue<3>};
|
|
643
|
+
InteractorState: {};
|
|
644
|
+
InteractorBindCommands: {
|
|
645
|
+
new(): InteractorBindCommands;
|
|
646
|
+
};
|
|
647
|
+
InteractorBindingParam: {
|
|
648
|
+
new(): InteractorBindingParam;
|
|
649
|
+
};
|
|
392
650
|
Interactor: {};
|
|
393
651
|
EngineLibInformation: {};
|
|
394
652
|
EngineReaderInformation: {};
|
|
653
|
+
EngineState: {
|
|
654
|
+
fromString(_0: EmbindString): EngineState;
|
|
655
|
+
fromFile(_0: EmbindString): EngineState;
|
|
656
|
+
};
|
|
395
657
|
Engine: {
|
|
396
658
|
create(): Engine;
|
|
397
659
|
getLibInfo(): EngineLibInformation;
|
|
398
660
|
autoloadPlugins(): void;
|
|
661
|
+
create(_0: EmbindString): Engine;
|
|
399
662
|
setReaderOption(_0: EmbindString, _1: EmbindString): void;
|
|
400
663
|
getAllReaderOptionNames(): any;
|
|
401
664
|
getReadersInfo(): any;
|