f3d 3.3.0rc6__cp314-cp314t-macosx_11_0_arm64.whl

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.

Potentially problematic release.


This version of f3d might be problematic. Click here for more details.

f3d/pyf3d.pyi ADDED
@@ -0,0 +1,1126 @@
1
+ """
2
+ f3d library bindings
3
+ """
4
+ from __future__ import annotations
5
+ import f3d
6
+ import os
7
+ import typing
8
+ __all__: list[str] = ['CAMERA_LIGHT', 'Camera', 'CameraState', 'Color', 'Engine', 'HEADLIGHT', 'Image', 'InteractionBind', 'Interactor', 'LibInformation', 'LightState', 'LightType', 'Log', 'Mesh', 'Options', 'ReaderInformation', 'SCENE_LIGHT', 'Scene', 'Utils', 'Window']
9
+ class Camera:
10
+ focal_point: tuple[float, float, float]
11
+ position: tuple[float, float, float]
12
+ state: CameraState
13
+ view_angle: float
14
+ view_up: tuple[float, float, float]
15
+ def azimuth(self, arg0: float) -> Camera:
16
+ ...
17
+ def dolly(self, arg0: float) -> Camera:
18
+ ...
19
+ def elevation(self, arg0: float) -> Camera:
20
+ ...
21
+ def pan(self, right: float, up: float, forward: float = 0.0) -> Camera:
22
+ ...
23
+ def pitch(self, arg0: float) -> Camera:
24
+ ...
25
+ def reset_to_bounds(self, zoom_factor: float = 0.9) -> Camera:
26
+ ...
27
+ def reset_to_default(self) -> Camera:
28
+ ...
29
+ def roll(self, arg0: float) -> Camera:
30
+ ...
31
+ def set_current_as_default(self) -> Camera:
32
+ ...
33
+ def yaw(self, arg0: float) -> Camera:
34
+ ...
35
+ def zoom(self, arg0: float) -> Camera:
36
+ ...
37
+ class CameraState:
38
+ focal_point: tuple[float, float, float]
39
+ position: tuple[float, float, float]
40
+ view_angle: float
41
+ view_up: tuple[float, float, float]
42
+ @typing.overload
43
+ def __init__(self) -> None:
44
+ ...
45
+ @typing.overload
46
+ def __init__(self, position: tuple[float, float, float] = (0.0, 0.0, 1.0), focal_point: tuple[float, float, float] = (0.0, 0.0, 0.0), view_up: tuple[float, float, float] = (0.0, 1.0, 0.0), view_angle: float = 30.0) -> None:
47
+ ...
48
+ class Color:
49
+ b: float
50
+ g: float
51
+ r: float
52
+ @typing.overload
53
+ def __init__(self) -> None:
54
+ ...
55
+ @typing.overload
56
+ def __init__(self, r: float, g: float, b: float) -> None:
57
+ ...
58
+ def from_tuple(self, arg0: tuple[float, float, float]) -> None:
59
+ """
60
+ Set color from a tuple of (r, g, b)
61
+ """
62
+ def to_tuple(self) -> tuple[float, float, float]:
63
+ """
64
+ Convert color to a tuple of (r, g, b)
65
+ """
66
+ class Engine:
67
+ options: Options
68
+ @staticmethod
69
+ def autoload_plugins() -> None:
70
+ """
71
+ Automatically load internal plugins
72
+ """
73
+ @staticmethod
74
+ def create(offscreen: bool = False) -> Engine:
75
+ """
76
+ Create an engine with a automatic window
77
+ """
78
+ @staticmethod
79
+ def create_egl() -> Engine:
80
+ """
81
+ Create an engine with an EGL window (Windows/Linux only)
82
+ """
83
+ @staticmethod
84
+ def create_external_cocoa() -> Engine:
85
+ """
86
+ Create an engine with an existing COCOA context (macOS only)
87
+ """
88
+ @staticmethod
89
+ def create_external_egl() -> Engine:
90
+ """
91
+ Create an engine with an existing EGL context (Windows/Linux only)
92
+ """
93
+ @staticmethod
94
+ def create_external_glx() -> Engine:
95
+ """
96
+ Create an engine with an existing GLX context (Linux only)
97
+ """
98
+ @staticmethod
99
+ def create_external_osmesa() -> Engine:
100
+ """
101
+ Create an engine with an existing OSMesa context (Windows/Linux only)
102
+ """
103
+ @staticmethod
104
+ def create_external_wgl() -> Engine:
105
+ """
106
+ Create an engine with an existing WGL context (Windows only)
107
+ """
108
+ @staticmethod
109
+ def create_glx(arg0: bool) -> Engine:
110
+ """
111
+ Create an engine with an GLX window (Linux only)
112
+ """
113
+ @staticmethod
114
+ def create_none() -> Engine:
115
+ """
116
+ Create an engine with no window
117
+ """
118
+ @staticmethod
119
+ def create_osmesa() -> Engine:
120
+ """
121
+ Create an engine with an OSMesa window (Windows/Linux only)
122
+ """
123
+ @staticmethod
124
+ def create_wgl(arg0: bool) -> Engine:
125
+ """
126
+ Create an engine with an WGL window (Windows only)
127
+ """
128
+ @staticmethod
129
+ def get_all_reader_option_names() -> list[str]:
130
+ ...
131
+ @staticmethod
132
+ def get_lib_info() -> LibInformation:
133
+ ...
134
+ @staticmethod
135
+ def get_plugins_list(arg0: os.PathLike[str]) -> list[str]:
136
+ ...
137
+ @staticmethod
138
+ def get_readers_info() -> list[ReaderInformation]:
139
+ ...
140
+ @staticmethod
141
+ def get_rendering_backend_list() -> dict[str, bool]:
142
+ ...
143
+ @staticmethod
144
+ def load_plugin(arg0: str, arg1: typing.Sequence[os.PathLike[str]]) -> None:
145
+ """
146
+ Load a plugin
147
+ """
148
+ @staticmethod
149
+ def set_reader_option(arg0: str, arg1: str) -> None:
150
+ ...
151
+ def set_cache_path(self, arg0: os.PathLike[str]) -> Engine:
152
+ """
153
+ Set the cache path directory
154
+ """
155
+ @property
156
+ def interactor(self) -> Interactor:
157
+ ...
158
+ @property
159
+ def scene(self) -> Scene:
160
+ ...
161
+ @property
162
+ def window(self) -> Window:
163
+ ...
164
+ class Image:
165
+ class ChannelType:
166
+ """
167
+ Members:
168
+
169
+ BYTE
170
+
171
+ SHORT
172
+
173
+ FLOAT
174
+ """
175
+ BYTE: typing.ClassVar[Image.ChannelType] # value = <ChannelType.BYTE: 0>
176
+ FLOAT: typing.ClassVar[Image.ChannelType] # value = <ChannelType.FLOAT: 2>
177
+ SHORT: typing.ClassVar[Image.ChannelType] # value = <ChannelType.SHORT: 1>
178
+ __members__: typing.ClassVar[dict[str, Image.ChannelType]] # value = {'BYTE': <ChannelType.BYTE: 0>, 'SHORT': <ChannelType.SHORT: 1>, 'FLOAT': <ChannelType.FLOAT: 2>}
179
+ def __eq__(self, other: typing.Any) -> bool:
180
+ ...
181
+ def __getstate__(self) -> int:
182
+ ...
183
+ def __hash__(self) -> int:
184
+ ...
185
+ def __index__(self) -> int:
186
+ ...
187
+ def __init__(self, value: int) -> None:
188
+ ...
189
+ def __int__(self) -> int:
190
+ ...
191
+ def __ne__(self, other: typing.Any) -> bool:
192
+ ...
193
+ def __repr__(self) -> str:
194
+ ...
195
+ def __setstate__(self, state: int) -> None:
196
+ ...
197
+ def __str__(self) -> str:
198
+ ...
199
+ @property
200
+ def name(self) -> str:
201
+ ...
202
+ @property
203
+ def value(self) -> int:
204
+ ...
205
+ class SaveFormat:
206
+ """
207
+ Members:
208
+
209
+ PNG
210
+
211
+ JPG
212
+
213
+ TIF
214
+
215
+ BMP
216
+ """
217
+ BMP: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.BMP: 3>
218
+ JPG: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.JPG: 1>
219
+ PNG: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.PNG: 0>
220
+ TIF: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.TIF: 2>
221
+ __members__: typing.ClassVar[dict[str, Image.SaveFormat]] # value = {'PNG': <SaveFormat.PNG: 0>, 'JPG': <SaveFormat.JPG: 1>, 'TIF': <SaveFormat.TIF: 2>, 'BMP': <SaveFormat.BMP: 3>}
222
+ def __eq__(self, other: typing.Any) -> bool:
223
+ ...
224
+ def __getstate__(self) -> int:
225
+ ...
226
+ def __hash__(self) -> int:
227
+ ...
228
+ def __index__(self) -> int:
229
+ ...
230
+ def __init__(self, value: int) -> None:
231
+ ...
232
+ def __int__(self) -> int:
233
+ ...
234
+ def __ne__(self, other: typing.Any) -> bool:
235
+ ...
236
+ def __repr__(self) -> str:
237
+ ...
238
+ def __setstate__(self, state: int) -> None:
239
+ ...
240
+ def __str__(self) -> str:
241
+ ...
242
+ @property
243
+ def name(self) -> str:
244
+ ...
245
+ @property
246
+ def value(self) -> int:
247
+ ...
248
+ BMP: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.BMP: 3>
249
+ BYTE: typing.ClassVar[Image.ChannelType] # value = <ChannelType.BYTE: 0>
250
+ FLOAT: typing.ClassVar[Image.ChannelType] # value = <ChannelType.FLOAT: 2>
251
+ JPG: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.JPG: 1>
252
+ PNG: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.PNG: 0>
253
+ SHORT: typing.ClassVar[Image.ChannelType] # value = <ChannelType.SHORT: 1>
254
+ TIF: typing.ClassVar[Image.SaveFormat] # value = <SaveFormat.TIF: 2>
255
+ __hash__: typing.ClassVar[None] = None
256
+ content: bytes
257
+ @staticmethod
258
+ def supported_formats() -> list[str]:
259
+ ...
260
+ def __eq__(self, arg0: Image) -> bool:
261
+ ...
262
+ @typing.overload
263
+ def __init__(self) -> None:
264
+ ...
265
+ @typing.overload
266
+ def __init__(self, arg0: os.PathLike[str]) -> None:
267
+ ...
268
+ @typing.overload
269
+ def __init__(self, arg0: int, arg1: int, arg2: int, arg3: Image.ChannelType) -> None:
270
+ ...
271
+ def __ne__(self, arg0: Image) -> bool:
272
+ ...
273
+ def _repr_png_(self) -> bytes:
274
+ ...
275
+ def all_metadata(self) -> list[str]:
276
+ ...
277
+ def compare(self, arg0: Image) -> float:
278
+ ...
279
+ def get_metadata(self, arg0: str) -> str:
280
+ ...
281
+ def normalized_pixel(self, arg0: tuple[int, int]) -> list[float]:
282
+ ...
283
+ def save(self, path: os.PathLike[str], format: Image.SaveFormat = Image.SaveFormat.PNG) -> Image:
284
+ ...
285
+ def save_buffer(self, format: Image.SaveFormat = Image.SaveFormat.PNG) -> bytes:
286
+ ...
287
+ def set_metadata(self, arg0: str, arg1: str) -> Image:
288
+ ...
289
+ def to_terminal_text(self) -> str:
290
+ ...
291
+ @property
292
+ def channel_count(self) -> int:
293
+ ...
294
+ @property
295
+ def channel_type(self) -> Image.ChannelType:
296
+ ...
297
+ @property
298
+ def channel_type_size(self) -> int:
299
+ ...
300
+ @property
301
+ def height(self) -> int:
302
+ ...
303
+ @property
304
+ def width(self) -> int:
305
+ ...
306
+ class InteractionBind:
307
+ class ModifierKeys:
308
+ """
309
+ Members:
310
+
311
+ ANY
312
+
313
+ NONE
314
+
315
+ CTRL
316
+
317
+ SHIFT
318
+
319
+ CTRL_SHIFT
320
+ """
321
+ ANY: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.ANY: 128>
322
+ CTRL: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.CTRL: 1>
323
+ CTRL_SHIFT: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.CTRL_SHIFT: 3>
324
+ NONE: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.NONE: 0>
325
+ SHIFT: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.SHIFT: 2>
326
+ __members__: typing.ClassVar[dict[str, InteractionBind.ModifierKeys]] # value = {'ANY': <ModifierKeys.ANY: 128>, 'NONE': <ModifierKeys.NONE: 0>, 'CTRL': <ModifierKeys.CTRL: 1>, 'SHIFT': <ModifierKeys.SHIFT: 2>, 'CTRL_SHIFT': <ModifierKeys.CTRL_SHIFT: 3>}
327
+ def __eq__(self, other: typing.Any) -> bool:
328
+ ...
329
+ def __getstate__(self) -> int:
330
+ ...
331
+ def __hash__(self) -> int:
332
+ ...
333
+ def __index__(self) -> int:
334
+ ...
335
+ def __init__(self, value: int) -> None:
336
+ ...
337
+ def __int__(self) -> int:
338
+ ...
339
+ def __ne__(self, other: typing.Any) -> bool:
340
+ ...
341
+ def __repr__(self) -> str:
342
+ ...
343
+ def __setstate__(self, state: int) -> None:
344
+ ...
345
+ def __str__(self) -> str:
346
+ ...
347
+ @property
348
+ def name(self) -> str:
349
+ ...
350
+ @property
351
+ def value(self) -> int:
352
+ ...
353
+ ANY: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.ANY: 128>
354
+ CTRL: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.CTRL: 1>
355
+ CTRL_SHIFT: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.CTRL_SHIFT: 3>
356
+ NONE: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.NONE: 0>
357
+ SHIFT: typing.ClassVar[InteractionBind.ModifierKeys] # value = <ModifierKeys.SHIFT: 2>
358
+ inter: str
359
+ mod: InteractionBind.ModifierKeys
360
+ def __init__(self, arg0: InteractionBind.ModifierKeys, arg1: str) -> None:
361
+ ...
362
+ def format(self) -> str:
363
+ ...
364
+ class Interactor:
365
+ class BindingType:
366
+ """
367
+ Members:
368
+
369
+ CYCLIC
370
+
371
+ NUMERICAL
372
+
373
+ TOGGLE
374
+
375
+ OTHER
376
+ """
377
+ CYCLIC: typing.ClassVar[Interactor.BindingType] # value = <BindingType.CYCLIC: 0>
378
+ NUMERICAL: typing.ClassVar[Interactor.BindingType] # value = <BindingType.NUMERICAL: 1>
379
+ OTHER: typing.ClassVar[Interactor.BindingType] # value = <BindingType.OTHER: 3>
380
+ TOGGLE: typing.ClassVar[Interactor.BindingType] # value = <BindingType.TOGGLE: 2>
381
+ __members__: typing.ClassVar[dict[str, Interactor.BindingType]] # value = {'CYCLIC': <BindingType.CYCLIC: 0>, 'NUMERICAL': <BindingType.NUMERICAL: 1>, 'TOGGLE': <BindingType.TOGGLE: 2>, 'OTHER': <BindingType.OTHER: 3>}
382
+ def __eq__(self, other: typing.Any) -> bool:
383
+ ...
384
+ def __getstate__(self) -> int:
385
+ ...
386
+ def __hash__(self) -> int:
387
+ ...
388
+ def __index__(self) -> int:
389
+ ...
390
+ def __init__(self, value: int) -> None:
391
+ ...
392
+ def __int__(self) -> int:
393
+ ...
394
+ def __ne__(self, other: typing.Any) -> bool:
395
+ ...
396
+ def __repr__(self) -> str:
397
+ ...
398
+ def __setstate__(self, state: int) -> None:
399
+ ...
400
+ def __str__(self) -> str:
401
+ ...
402
+ @property
403
+ def name(self) -> str:
404
+ ...
405
+ @property
406
+ def value(self) -> int:
407
+ ...
408
+ class InputAction:
409
+ """
410
+ Members:
411
+
412
+ PRESS
413
+
414
+ RELEASE
415
+ """
416
+ PRESS: typing.ClassVar[Interactor.InputAction] # value = <InputAction.PRESS: 0>
417
+ RELEASE: typing.ClassVar[Interactor.InputAction] # value = <InputAction.RELEASE: 1>
418
+ __members__: typing.ClassVar[dict[str, Interactor.InputAction]] # value = {'PRESS': <InputAction.PRESS: 0>, 'RELEASE': <InputAction.RELEASE: 1>}
419
+ def __eq__(self, other: typing.Any) -> bool:
420
+ ...
421
+ def __getstate__(self) -> int:
422
+ ...
423
+ def __hash__(self) -> int:
424
+ ...
425
+ def __index__(self) -> int:
426
+ ...
427
+ def __init__(self, value: int) -> None:
428
+ ...
429
+ def __int__(self) -> int:
430
+ ...
431
+ def __ne__(self, other: typing.Any) -> bool:
432
+ ...
433
+ def __repr__(self) -> str:
434
+ ...
435
+ def __setstate__(self, state: int) -> None:
436
+ ...
437
+ def __str__(self) -> str:
438
+ ...
439
+ @property
440
+ def name(self) -> str:
441
+ ...
442
+ @property
443
+ def value(self) -> int:
444
+ ...
445
+ class InputModifier:
446
+ """
447
+ Members:
448
+
449
+ NONE
450
+
451
+ CTRL
452
+
453
+ SHIFT
454
+
455
+ CTRL_SHIFT
456
+ """
457
+ CTRL: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.CTRL: 1>
458
+ CTRL_SHIFT: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.CTRL_SHIFT: 3>
459
+ NONE: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.NONE: 0>
460
+ SHIFT: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.SHIFT: 2>
461
+ __members__: typing.ClassVar[dict[str, Interactor.InputModifier]] # value = {'NONE': <InputModifier.NONE: 0>, 'CTRL': <InputModifier.CTRL: 1>, 'SHIFT': <InputModifier.SHIFT: 2>, 'CTRL_SHIFT': <InputModifier.CTRL_SHIFT: 3>}
462
+ def __eq__(self, other: typing.Any) -> bool:
463
+ ...
464
+ def __getstate__(self) -> int:
465
+ ...
466
+ def __hash__(self) -> int:
467
+ ...
468
+ def __index__(self) -> int:
469
+ ...
470
+ def __init__(self, value: int) -> None:
471
+ ...
472
+ def __int__(self) -> int:
473
+ ...
474
+ def __ne__(self, other: typing.Any) -> bool:
475
+ ...
476
+ def __repr__(self) -> str:
477
+ ...
478
+ def __setstate__(self, state: int) -> None:
479
+ ...
480
+ def __str__(self) -> str:
481
+ ...
482
+ @property
483
+ def name(self) -> str:
484
+ ...
485
+ @property
486
+ def value(self) -> int:
487
+ ...
488
+ class MouseButton:
489
+ """
490
+ Members:
491
+
492
+ LEFT
493
+
494
+ MIDDLE
495
+
496
+ RIGHT
497
+ """
498
+ LEFT: typing.ClassVar[Interactor.MouseButton] # value = <MouseButton.LEFT: 0>
499
+ MIDDLE: typing.ClassVar[Interactor.MouseButton] # value = <MouseButton.MIDDLE: 2>
500
+ RIGHT: typing.ClassVar[Interactor.MouseButton] # value = <MouseButton.RIGHT: 1>
501
+ __members__: typing.ClassVar[dict[str, Interactor.MouseButton]] # value = {'LEFT': <MouseButton.LEFT: 0>, 'MIDDLE': <MouseButton.MIDDLE: 2>, 'RIGHT': <MouseButton.RIGHT: 1>}
502
+ def __eq__(self, other: typing.Any) -> bool:
503
+ ...
504
+ def __getstate__(self) -> int:
505
+ ...
506
+ def __hash__(self) -> int:
507
+ ...
508
+ def __index__(self) -> int:
509
+ ...
510
+ def __init__(self, value: int) -> None:
511
+ ...
512
+ def __int__(self) -> int:
513
+ ...
514
+ def __ne__(self, other: typing.Any) -> bool:
515
+ ...
516
+ def __repr__(self) -> str:
517
+ ...
518
+ def __setstate__(self, state: int) -> None:
519
+ ...
520
+ def __str__(self) -> str:
521
+ ...
522
+ @property
523
+ def name(self) -> str:
524
+ ...
525
+ @property
526
+ def value(self) -> int:
527
+ ...
528
+ class WheelDirection:
529
+ """
530
+ Members:
531
+
532
+ FORWARD
533
+
534
+ BACKWARD
535
+
536
+ LEFT
537
+
538
+ RIGHT
539
+ """
540
+ BACKWARD: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.BACKWARD: 1>
541
+ FORWARD: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.FORWARD: 0>
542
+ LEFT: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.LEFT: 2>
543
+ RIGHT: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.RIGHT: 3>
544
+ __members__: typing.ClassVar[dict[str, Interactor.WheelDirection]] # value = {'FORWARD': <WheelDirection.FORWARD: 0>, 'BACKWARD': <WheelDirection.BACKWARD: 1>, 'LEFT': <WheelDirection.LEFT: 2>, 'RIGHT': <WheelDirection.RIGHT: 3>}
545
+ def __eq__(self, other: typing.Any) -> bool:
546
+ ...
547
+ def __getstate__(self) -> int:
548
+ ...
549
+ def __hash__(self) -> int:
550
+ ...
551
+ def __index__(self) -> int:
552
+ ...
553
+ def __init__(self, value: int) -> None:
554
+ ...
555
+ def __int__(self) -> int:
556
+ ...
557
+ def __ne__(self, other: typing.Any) -> bool:
558
+ ...
559
+ def __repr__(self) -> str:
560
+ ...
561
+ def __setstate__(self, state: int) -> None:
562
+ ...
563
+ def __str__(self) -> str:
564
+ ...
565
+ @property
566
+ def name(self) -> str:
567
+ ...
568
+ @property
569
+ def value(self) -> int:
570
+ ...
571
+ BACKWARD: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.BACKWARD: 1>
572
+ CTRL: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.CTRL: 1>
573
+ CTRL_SHIFT: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.CTRL_SHIFT: 3>
574
+ CYCLIC: typing.ClassVar[Interactor.BindingType] # value = <BindingType.CYCLIC: 0>
575
+ FORWARD: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.FORWARD: 0>
576
+ LEFT: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.LEFT: 2>
577
+ MIDDLE: typing.ClassVar[Interactor.MouseButton] # value = <MouseButton.MIDDLE: 2>
578
+ NONE: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.NONE: 0>
579
+ NUMERICAL: typing.ClassVar[Interactor.BindingType] # value = <BindingType.NUMERICAL: 1>
580
+ OTHER: typing.ClassVar[Interactor.BindingType] # value = <BindingType.OTHER: 3>
581
+ PRESS: typing.ClassVar[Interactor.InputAction] # value = <InputAction.PRESS: 0>
582
+ RELEASE: typing.ClassVar[Interactor.InputAction] # value = <InputAction.RELEASE: 1>
583
+ RIGHT: typing.ClassVar[Interactor.WheelDirection] # value = <WheelDirection.RIGHT: 3>
584
+ SHIFT: typing.ClassVar[Interactor.InputModifier] # value = <InputModifier.SHIFT: 2>
585
+ TOGGLE: typing.ClassVar[Interactor.BindingType] # value = <BindingType.TOGGLE: 2>
586
+ @typing.overload
587
+ def add_binding(self, bind: InteractionBind, command: str, group: str, documentationCallback: typing.Callable[[], tuple[str, str]] = None, type: Interactor.BindingType = Interactor.BindingType.OTHER) -> Interactor:
588
+ """
589
+ Add a binding command
590
+ """
591
+ @typing.overload
592
+ def add_binding(self, bind: InteractionBind, command: typing.Sequence[str], group: str, documentationCallback: typing.Callable[[], tuple[str, str]] = None, type: Interactor.BindingType = Interactor.BindingType.OTHER) -> Interactor:
593
+ """
594
+ Add binding commands
595
+ """
596
+ def add_command(self, action: str, callback: typing.Callable[[list[str]], None], doc: tuple[str, str] | None = None, completionCallback: typing.Callable[[list[str]], typing.Sequence[str]] = None) -> Interactor:
597
+ """
598
+ Add a command
599
+ """
600
+ def disable_camera_movement(self) -> Interactor:
601
+ """
602
+ Disable the camera interaction
603
+ """
604
+ def enable_camera_movement(self) -> Interactor:
605
+ """
606
+ Enable the camera interaction
607
+ """
608
+ def get_bind_groups(self) -> list[str]:
609
+ ...
610
+ def get_binding_documentation(self, arg0: InteractionBind) -> tuple[str, str]:
611
+ ...
612
+ def get_binding_type(self, arg0: InteractionBind) -> Interactor.BindingType:
613
+ ...
614
+ def get_binds(self) -> list[InteractionBind]:
615
+ ...
616
+ def get_binds_for_group(self, arg0: str) -> list[InteractionBind]:
617
+ ...
618
+ def get_command_actions(self) -> list[str]:
619
+ """
620
+ Get all command actions
621
+ """
622
+ def init_bindings(self) -> Interactor:
623
+ """
624
+ Remove all bindings and add default bindings
625
+ """
626
+ def init_commands(self) -> Interactor:
627
+ """
628
+ Remove all commands and add all default command callbacks
629
+ """
630
+ def is_playing_animation(self) -> bool:
631
+ """
632
+ Returns True if the animation is currently started
633
+ """
634
+ def play_interaction(self, arg0: os.PathLike[str], arg1: float, arg2: typing.Callable[[], None]) -> bool:
635
+ """
636
+ Play an interaction file
637
+ """
638
+ def record_interaction(self, arg0: os.PathLike[str]) -> bool:
639
+ """
640
+ Record an interaction file
641
+ """
642
+ def remove_binding(self, arg0: InteractionBind) -> Interactor:
643
+ """
644
+ Remove interaction commands
645
+ """
646
+ def remove_command(self, arg0: str) -> Interactor:
647
+ """
648
+ Remove a command
649
+ """
650
+ def request_render(self) -> Interactor:
651
+ """
652
+ Request a render on the next event loop
653
+ """
654
+ def start(self, delta_time: float = 0.03333333333333333, user_callback: typing.Callable[[], None] = None) -> Interactor:
655
+ """
656
+ Start the interactor and the event loop
657
+ """
658
+ def start_animation(self) -> Interactor:
659
+ """
660
+ Start the animation
661
+ """
662
+ def stop(self) -> Interactor:
663
+ """
664
+ Stop the interactor and the event loop
665
+ """
666
+ def stop_animation(self) -> Interactor:
667
+ """
668
+ Stop the animation
669
+ """
670
+ def toggle_animation(self) -> Interactor:
671
+ """
672
+ Toggle the animation
673
+ """
674
+ def trigger_command(self, command: str, keep_comments: bool = True) -> bool:
675
+ """
676
+ Trigger a command
677
+ """
678
+ def trigger_keyboard_key(self, arg0: Interactor.InputAction, arg1: str) -> Interactor:
679
+ """
680
+ Trigger a keyboard input
681
+ """
682
+ def trigger_mod_update(self, arg0: Interactor.InputModifier) -> Interactor:
683
+ """
684
+ Trigger a key modifier update
685
+ """
686
+ def trigger_mouse_button(self, arg0: Interactor.InputAction, arg1: Interactor.MouseButton) -> Interactor:
687
+ """
688
+ Trigger a mouse button
689
+ """
690
+ def trigger_mouse_position(self, arg0: float, arg1: float) -> Interactor:
691
+ """
692
+ Trigger a mouse position
693
+ """
694
+ def trigger_mouse_wheel(self, arg0: Interactor.WheelDirection) -> Interactor:
695
+ """
696
+ Trigger a mouse wheel
697
+ """
698
+ def trigger_text_character(self, arg0: int) -> Interactor:
699
+ """
700
+ Trigger a text character input
701
+ """
702
+ class LibInformation:
703
+ @property
704
+ def build_date(self) -> str:
705
+ ...
706
+ @property
707
+ def build_system(self) -> str:
708
+ ...
709
+ @property
710
+ def compiler(self) -> str:
711
+ ...
712
+ @property
713
+ def copyrights(self) -> list[str]:
714
+ ...
715
+ @property
716
+ def license(self) -> str:
717
+ ...
718
+ @property
719
+ def modules(self) -> dict[str, bool]:
720
+ ...
721
+ @property
722
+ def version(self) -> str:
723
+ ...
724
+ @property
725
+ def version_full(self) -> str:
726
+ ...
727
+ @property
728
+ def vtk_version(self) -> str:
729
+ ...
730
+ class LightState:
731
+ color: Color
732
+ direction: tuple[float, float, float]
733
+ intensity: float
734
+ position: tuple[float, float, float]
735
+ positional_light: bool
736
+ switch_state: bool
737
+ type: LightType
738
+ @typing.overload
739
+ def __init__(self) -> None:
740
+ ...
741
+ @typing.overload
742
+ def __init__(self, type: LightType = f3d.LightType.SCENE_LIGHT, position: tuple[float, float, float] = (0.0, 0.0, 0.0), color: Color = ..., direction: tuple[float, float, float] = (1.0, 0.0, 0.0), positional_light: bool = False, intensity: float = 1.0, switch_state: bool = True) -> None:
743
+ ...
744
+ class LightType:
745
+ """
746
+ Members:
747
+
748
+ HEADLIGHT
749
+
750
+ CAMERA_LIGHT
751
+
752
+ SCENE_LIGHT
753
+ """
754
+ CAMERA_LIGHT: typing.ClassVar[LightType] # value = <LightType.CAMERA_LIGHT: 2>
755
+ HEADLIGHT: typing.ClassVar[LightType] # value = <LightType.HEADLIGHT: 1>
756
+ SCENE_LIGHT: typing.ClassVar[LightType] # value = <LightType.SCENE_LIGHT: 3>
757
+ __members__: typing.ClassVar[dict[str, LightType]] # value = {'HEADLIGHT': <LightType.HEADLIGHT: 1>, 'CAMERA_LIGHT': <LightType.CAMERA_LIGHT: 2>, 'SCENE_LIGHT': <LightType.SCENE_LIGHT: 3>}
758
+ def __eq__(self, other: typing.Any) -> bool:
759
+ ...
760
+ def __getstate__(self) -> int:
761
+ ...
762
+ def __hash__(self) -> int:
763
+ ...
764
+ def __index__(self) -> int:
765
+ ...
766
+ def __init__(self, value: int) -> None:
767
+ ...
768
+ def __int__(self) -> int:
769
+ ...
770
+ def __ne__(self, other: typing.Any) -> bool:
771
+ ...
772
+ def __repr__(self) -> str:
773
+ ...
774
+ def __setstate__(self, state: int) -> None:
775
+ ...
776
+ def __str__(self) -> str:
777
+ ...
778
+ @property
779
+ def name(self) -> str:
780
+ ...
781
+ @property
782
+ def value(self) -> int:
783
+ ...
784
+ class Log:
785
+ class VerboseLevel:
786
+ """
787
+ Members:
788
+
789
+ DEBUG
790
+
791
+ INFO
792
+
793
+ WARN
794
+
795
+ ERROR
796
+
797
+ QUIET
798
+ """
799
+ DEBUG: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.DEBUG: 0>
800
+ ERROR: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.ERROR: 3>
801
+ INFO: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.INFO: 1>
802
+ QUIET: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.QUIET: 4>
803
+ WARN: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.WARN: 2>
804
+ __members__: typing.ClassVar[dict[str, Log.VerboseLevel]] # value = {'DEBUG': <VerboseLevel.DEBUG: 0>, 'INFO': <VerboseLevel.INFO: 1>, 'WARN': <VerboseLevel.WARN: 2>, 'ERROR': <VerboseLevel.ERROR: 3>, 'QUIET': <VerboseLevel.QUIET: 4>}
805
+ def __eq__(self, other: typing.Any) -> bool:
806
+ ...
807
+ def __getstate__(self) -> int:
808
+ ...
809
+ def __hash__(self) -> int:
810
+ ...
811
+ def __index__(self) -> int:
812
+ ...
813
+ def __init__(self, value: int) -> None:
814
+ ...
815
+ def __int__(self) -> int:
816
+ ...
817
+ def __ne__(self, other: typing.Any) -> bool:
818
+ ...
819
+ def __repr__(self) -> str:
820
+ ...
821
+ def __setstate__(self, state: int) -> None:
822
+ ...
823
+ def __str__(self) -> str:
824
+ ...
825
+ @property
826
+ def name(self) -> str:
827
+ ...
828
+ @property
829
+ def value(self) -> int:
830
+ ...
831
+ DEBUG: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.DEBUG: 0>
832
+ ERROR: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.ERROR: 3>
833
+ INFO: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.INFO: 1>
834
+ QUIET: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.QUIET: 4>
835
+ WARN: typing.ClassVar[Log.VerboseLevel] # value = <VerboseLevel.WARN: 2>
836
+ @staticmethod
837
+ def get_verbose_level() -> Log.VerboseLevel:
838
+ ...
839
+ @staticmethod
840
+ def print(arg0: Log.VerboseLevel, arg1: str) -> None:
841
+ ...
842
+ @staticmethod
843
+ def set_use_coloring(arg0: bool) -> None:
844
+ ...
845
+ @staticmethod
846
+ def set_verbose_level(level: Log.VerboseLevel, force_std_err: bool = False) -> None:
847
+ ...
848
+ class Mesh:
849
+ face_indices: list[int]
850
+ face_sides: list[int]
851
+ normals: list[float]
852
+ points: list[float]
853
+ texture_coordinates: list[float]
854
+ @typing.overload
855
+ def __init__(self) -> None:
856
+ ...
857
+ @typing.overload
858
+ def __init__(self, points: typing.Sequence[float], normals: typing.Sequence[float] = [], texture_coordinates: typing.Sequence[float] = [], face_sides: typing.Sequence[int] = [], face_indices: typing.Sequence[int] = []) -> None:
859
+ ...
860
+ class Options:
861
+ def __getitem__(self, arg0: str) -> bool | int | float | str | list[float] | list[int]:
862
+ ...
863
+ def __init__(self) -> None:
864
+ ...
865
+ def __iter__(self) -> typing.Iterator[typing.Any]:
866
+ ...
867
+ def __len__(self) -> int:
868
+ ...
869
+ def __setitem__(self, arg0: str, arg1: bool | int | float | str | typing.Sequence[float] | typing.Sequence[int]) -> None:
870
+ ...
871
+ def copy(self, arg0: Options, arg1: str) -> Options:
872
+ ...
873
+ def get_closest_option(self, arg0: str) -> tuple[str, int]:
874
+ ...
875
+ def is_same(self, arg0: Options, arg1: str) -> bool:
876
+ ...
877
+ def keys(self) -> list[str]:
878
+ ...
879
+ def toggle(self, arg0: str) -> Options:
880
+ ...
881
+ def update(self, arg: typing.Mapping[str, typing.Any] | typing.Iterable[tuple[str, typing.Any]]) -> None:
882
+ ...
883
+ class ReaderInformation:
884
+ @property
885
+ def description(self) -> str:
886
+ ...
887
+ @property
888
+ def extensions(self) -> list[str]:
889
+ ...
890
+ @property
891
+ def has_geometry_reader(self) -> bool:
892
+ ...
893
+ @property
894
+ def has_scene_reader(self) -> bool:
895
+ ...
896
+ @property
897
+ def mime_types(self) -> list[str]:
898
+ ...
899
+ @property
900
+ def name(self) -> str:
901
+ ...
902
+ @property
903
+ def plugin_name(self) -> str:
904
+ ...
905
+ class Scene:
906
+ @typing.overload
907
+ def add(self, file_path: os.PathLike[str]) -> Scene:
908
+ """
909
+ Add a file the scene
910
+ """
911
+ @typing.overload
912
+ def add(self, file_path_vector: typing.Sequence[os.PathLike[str]]) -> Scene:
913
+ """
914
+ Add multiple filepaths to the scene
915
+ """
916
+ @typing.overload
917
+ def add(self, file_name_vector: typing.Sequence[str]) -> Scene:
918
+ """
919
+ Add multiple filenames to the scene
920
+ """
921
+ @typing.overload
922
+ def add(self, mesh: Mesh) -> Scene:
923
+ """
924
+ Add a surfacic mesh from memory into the scene
925
+ """
926
+ def add_light(self, light_state: LightState) -> int:
927
+ """
928
+ Add a light to the scene
929
+ """
930
+ def animation_time_range(self) -> tuple[float, float]:
931
+ ...
932
+ def available_animations(self) -> int:
933
+ ...
934
+ def clear(self) -> Scene:
935
+ ...
936
+ def get_light(self, index: int) -> LightState:
937
+ """
938
+ Get a light from the scene
939
+ """
940
+ def get_light_count(self) -> int:
941
+ """
942
+ Get the number of lights in the scene
943
+ """
944
+ def load_animation_time(self, arg0: float) -> Scene:
945
+ ...
946
+ def remove_all_lights(self) -> Scene:
947
+ """
948
+ Remove all lights from the scene
949
+ """
950
+ def remove_light(self, index: int) -> Scene:
951
+ """
952
+ Remove a light from the scene
953
+ """
954
+ def supports(self, arg0: os.PathLike[str]) -> bool:
955
+ ...
956
+ def update_light(self, index: int, light_state: LightState) -> Scene:
957
+ """
958
+ Update a light in the scene
959
+ """
960
+ class Utils:
961
+ class KnownFolder:
962
+ """
963
+ Members:
964
+
965
+ ROAMINGAPPDATA
966
+
967
+ LOCALAPPDATA
968
+
969
+ PICTURES
970
+ """
971
+ LOCALAPPDATA: typing.ClassVar[Utils.KnownFolder] # value = <KnownFolder.LOCALAPPDATA: 1>
972
+ PICTURES: typing.ClassVar[Utils.KnownFolder] # value = <KnownFolder.PICTURES: 2>
973
+ ROAMINGAPPDATA: typing.ClassVar[Utils.KnownFolder] # value = <KnownFolder.ROAMINGAPPDATA: 0>
974
+ __members__: typing.ClassVar[dict[str, Utils.KnownFolder]] # value = {'ROAMINGAPPDATA': <KnownFolder.ROAMINGAPPDATA: 0>, 'LOCALAPPDATA': <KnownFolder.LOCALAPPDATA: 1>, 'PICTURES': <KnownFolder.PICTURES: 2>}
975
+ def __eq__(self, other: typing.Any) -> bool:
976
+ ...
977
+ def __getstate__(self) -> int:
978
+ ...
979
+ def __hash__(self) -> int:
980
+ ...
981
+ def __index__(self) -> int:
982
+ ...
983
+ def __init__(self, value: int) -> None:
984
+ ...
985
+ def __int__(self) -> int:
986
+ ...
987
+ def __ne__(self, other: typing.Any) -> bool:
988
+ ...
989
+ def __repr__(self) -> str:
990
+ ...
991
+ def __setstate__(self, state: int) -> None:
992
+ ...
993
+ def __str__(self) -> str:
994
+ ...
995
+ @property
996
+ def name(self) -> str:
997
+ ...
998
+ @property
999
+ def value(self) -> int:
1000
+ ...
1001
+ LOCALAPPDATA: typing.ClassVar[Utils.KnownFolder] # value = <KnownFolder.LOCALAPPDATA: 1>
1002
+ PICTURES: typing.ClassVar[Utils.KnownFolder] # value = <KnownFolder.PICTURES: 2>
1003
+ ROAMINGAPPDATA: typing.ClassVar[Utils.KnownFolder] # value = <KnownFolder.ROAMINGAPPDATA: 0>
1004
+ @staticmethod
1005
+ def collapse_path(arg0: os.PathLike[str], arg1: os.PathLike[str]) -> os.PathLike[str]:
1006
+ ...
1007
+ @staticmethod
1008
+ def get_env(arg0: str) -> str | None:
1009
+ ...
1010
+ @staticmethod
1011
+ def get_known_folder(arg0: Utils.KnownFolder) -> str | None:
1012
+ ...
1013
+ @staticmethod
1014
+ def glob_to_regex(glob: str, path_separator: str = '/') -> str:
1015
+ ...
1016
+ @staticmethod
1017
+ def text_distance(arg0: str, arg1: str) -> int:
1018
+ ...
1019
+ @staticmethod
1020
+ def tokenize(str: str, keep_comments: bool = True) -> list[str]:
1021
+ ...
1022
+ class Window:
1023
+ class Type:
1024
+ """
1025
+ Members:
1026
+
1027
+ NONE
1028
+
1029
+ EXTERNAL
1030
+
1031
+ GLX
1032
+
1033
+ WGL
1034
+
1035
+ COCOA
1036
+
1037
+ EGL
1038
+
1039
+ OSMESA
1040
+
1041
+ UNKNOWN
1042
+ """
1043
+ COCOA: typing.ClassVar[Window.Type] # value = <Type.COCOA: 4>
1044
+ EGL: typing.ClassVar[Window.Type] # value = <Type.EGL: 5>
1045
+ EXTERNAL: typing.ClassVar[Window.Type] # value = <Type.EXTERNAL: 1>
1046
+ GLX: typing.ClassVar[Window.Type] # value = <Type.GLX: 2>
1047
+ NONE: typing.ClassVar[Window.Type] # value = <Type.NONE: 0>
1048
+ OSMESA: typing.ClassVar[Window.Type] # value = <Type.OSMESA: 6>
1049
+ UNKNOWN: typing.ClassVar[Window.Type] # value = <Type.UNKNOWN: 8>
1050
+ WGL: typing.ClassVar[Window.Type] # value = <Type.WGL: 3>
1051
+ __members__: typing.ClassVar[dict[str, Window.Type]] # value = {'NONE': <Type.NONE: 0>, 'EXTERNAL': <Type.EXTERNAL: 1>, 'GLX': <Type.GLX: 2>, 'WGL': <Type.WGL: 3>, 'COCOA': <Type.COCOA: 4>, 'EGL': <Type.EGL: 5>, 'OSMESA': <Type.OSMESA: 6>, 'UNKNOWN': <Type.UNKNOWN: 8>}
1052
+ def __eq__(self, other: typing.Any) -> bool:
1053
+ ...
1054
+ def __getstate__(self) -> int:
1055
+ ...
1056
+ def __hash__(self) -> int:
1057
+ ...
1058
+ def __index__(self) -> int:
1059
+ ...
1060
+ def __init__(self, value: int) -> None:
1061
+ ...
1062
+ def __int__(self) -> int:
1063
+ ...
1064
+ def __ne__(self, other: typing.Any) -> bool:
1065
+ ...
1066
+ def __repr__(self) -> str:
1067
+ ...
1068
+ def __setstate__(self, state: int) -> None:
1069
+ ...
1070
+ def __str__(self) -> str:
1071
+ ...
1072
+ @property
1073
+ def name(self) -> str:
1074
+ ...
1075
+ @property
1076
+ def value(self) -> int:
1077
+ ...
1078
+ COCOA: typing.ClassVar[Window.Type] # value = <Type.COCOA: 4>
1079
+ EGL: typing.ClassVar[Window.Type] # value = <Type.EGL: 5>
1080
+ EXTERNAL: typing.ClassVar[Window.Type] # value = <Type.EXTERNAL: 1>
1081
+ GLX: typing.ClassVar[Window.Type] # value = <Type.GLX: 2>
1082
+ NONE: typing.ClassVar[Window.Type] # value = <Type.NONE: 0>
1083
+ OSMESA: typing.ClassVar[Window.Type] # value = <Type.OSMESA: 6>
1084
+ UNKNOWN: typing.ClassVar[Window.Type] # value = <Type.UNKNOWN: 8>
1085
+ WGL: typing.ClassVar[Window.Type] # value = <Type.WGL: 3>
1086
+ height: int
1087
+ size: tuple[int, int]
1088
+ width: int
1089
+ def get_display_from_world(self, arg0: tuple[float, float, float]) -> tuple[float, float, float]:
1090
+ """
1091
+ Get display coordinate point from world coordinate
1092
+ """
1093
+ def get_world_from_display(self, arg0: tuple[float, float, float]) -> tuple[float, float, float]:
1094
+ """
1095
+ Get world coordinate point from display coordinate
1096
+ """
1097
+ def render(self) -> bool:
1098
+ """
1099
+ Render the window
1100
+ """
1101
+ def render_to_image(self, no_background: bool = False) -> Image:
1102
+ """
1103
+ Render the window to an image
1104
+ """
1105
+ def set_icon(self, arg0: int, arg1: int) -> Window:
1106
+ """
1107
+ Set the icon of the window using a memory buffer representing a PNG file
1108
+ """
1109
+ def set_position(self, arg0: int, arg1: int) -> Window:
1110
+ ...
1111
+ def set_window_name(self, arg0: str) -> Window:
1112
+ """
1113
+ Set the window name
1114
+ """
1115
+ @property
1116
+ def camera(self) -> Camera:
1117
+ ...
1118
+ @property
1119
+ def offscreen(self) -> bool:
1120
+ ...
1121
+ @property
1122
+ def type(self) -> Window.Type:
1123
+ ...
1124
+ CAMERA_LIGHT: LightType # value = <LightType.CAMERA_LIGHT: 2>
1125
+ HEADLIGHT: LightType # value = <LightType.HEADLIGHT: 1>
1126
+ SCENE_LIGHT: LightType # value = <LightType.SCENE_LIGHT: 3>