f3d 3.4.1__cp314-cp314-win_amd64.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.
f3d/pyf3d.pyi ADDED
@@ -0,0 +1,1535 @@
1
+ """
2
+ f3d library bindings
3
+ """
4
+ from __future__ import annotations
5
+ import pathlib
6
+ import os
7
+ import f3d
8
+ import os
9
+ import typing
10
+ __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', 'forwardcleanup']
11
+
12
+ class Camera:
13
+ focal_point: tuple[float, float, float]
14
+ position: tuple[float, float, float]
15
+ state: CameraState
16
+ view_angle: float
17
+ view_up: tuple[float, float, float]
18
+
19
+ def azimuth(self, arg0: float) -> Camera:
20
+ ...
21
+
22
+ def dolly(self, arg0: float) -> Camera:
23
+ ...
24
+
25
+ def elevation(self, arg0: float) -> Camera:
26
+ ...
27
+
28
+ def pan(self, right: float, up: float, forward: float=0.0) -> Camera:
29
+ ...
30
+
31
+ def pitch(self, arg0: float) -> Camera:
32
+ ...
33
+
34
+ def reset_to_bounds(self, zoom_factor: float=0.9) -> Camera:
35
+ ...
36
+
37
+ def reset_to_default(self) -> Camera:
38
+ ...
39
+
40
+ def roll(self, arg0: float) -> Camera:
41
+ ...
42
+
43
+ def set_current_as_default(self) -> Camera:
44
+ ...
45
+
46
+ def yaw(self, arg0: float) -> Camera:
47
+ ...
48
+
49
+ def zoom(self, arg0: float) -> Camera:
50
+ ...
51
+
52
+ class CameraState:
53
+ focal_point: tuple[float, float, float]
54
+ position: tuple[float, float, float]
55
+ view_angle: float
56
+ view_up: tuple[float, float, float]
57
+
58
+ @typing.overload
59
+ def __init__(self) -> None:
60
+ ...
61
+
62
+ @typing.overload
63
+ 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:
64
+ ...
65
+
66
+ class Color:
67
+ b: float
68
+ g: float
69
+ r: float
70
+
71
+ @typing.overload
72
+ def __init__(self) -> None:
73
+ ...
74
+
75
+ @typing.overload
76
+ def __init__(self, r: float, g: float, b: float) -> None:
77
+ ...
78
+
79
+ def from_tuple(self, arg0: tuple[float, float, float]) -> None:
80
+ """
81
+ Set color from a tuple of (r, g, b)
82
+ """
83
+
84
+ def to_tuple(self) -> tuple[float, float, float]:
85
+ """
86
+ Convert color to a tuple of (r, g, b)
87
+ """
88
+
89
+ class Engine:
90
+ options: Options
91
+
92
+ @staticmethod
93
+ def autoload_plugins() -> None:
94
+ """
95
+ Automatically load internal plugins
96
+ """
97
+
98
+ @staticmethod
99
+ def create(offscreen: bool=False) -> Engine:
100
+ """
101
+ Create an engine with a automatic window
102
+ """
103
+
104
+ @staticmethod
105
+ def create_egl() -> Engine:
106
+ """
107
+ Create an engine with an EGL window (Windows/Linux only)
108
+ """
109
+
110
+ @staticmethod
111
+ def create_external(get_proc_address: typing.Any) -> Engine:
112
+ """
113
+ Create an engine with an existing context via a get_proc_address callback
114
+ """
115
+
116
+ @staticmethod
117
+ def create_external_cocoa() -> Engine:
118
+ """
119
+ Create an engine with an existing COCOA context (macOS only)
120
+ """
121
+
122
+ @staticmethod
123
+ def create_external_egl() -> Engine:
124
+ """
125
+ Create an engine with an existing EGL context (Windows/Linux only)
126
+ """
127
+
128
+ @staticmethod
129
+ def create_external_glx() -> Engine:
130
+ """
131
+ Create an engine with an existing GLX context (Linux only)
132
+ """
133
+
134
+ @staticmethod
135
+ def create_external_osmesa() -> Engine:
136
+ """
137
+ Create an engine with an existing OSMesa context (Windows/Linux only)
138
+ """
139
+
140
+ @staticmethod
141
+ def create_external_wgl() -> Engine:
142
+ """
143
+ Create an engine with an existing WGL context (Windows only)
144
+ """
145
+
146
+ @staticmethod
147
+ def create_glx(arg0: bool) -> Engine:
148
+ """
149
+ Create an engine with an GLX window (Linux only)
150
+ """
151
+
152
+ @staticmethod
153
+ def create_none() -> Engine:
154
+ """
155
+ Create an engine with no window
156
+ """
157
+
158
+ @staticmethod
159
+ def create_osmesa() -> Engine:
160
+ """
161
+ Create an engine with an OSMesa window (Windows/Linux only)
162
+ """
163
+
164
+ @staticmethod
165
+ def create_wgl(arg0: bool) -> Engine:
166
+ """
167
+ Create an engine with an WGL window (Windows only)
168
+ """
169
+
170
+ @staticmethod
171
+ def get_all_reader_option_names() -> list[str]:
172
+ ...
173
+
174
+ @staticmethod
175
+ def get_lib_info() -> LibInformation:
176
+ ...
177
+
178
+ @staticmethod
179
+ def get_plugins_list(arg0: os.PathLike[str]) -> list[str]:
180
+ ...
181
+
182
+ @staticmethod
183
+ def get_readers_info() -> list[ReaderInformation]:
184
+ ...
185
+
186
+ @staticmethod
187
+ def get_rendering_backend_list() -> dict[str, bool]:
188
+ ...
189
+
190
+ @staticmethod
191
+ def load_plugin(arg0: str, arg1: collections.abc.Sequence[os.PathLike[str]]) -> None:
192
+ """
193
+ Load a plugin
194
+ """
195
+
196
+ @staticmethod
197
+ def set_reader_option(arg0: str, arg1: str) -> None:
198
+ ...
199
+
200
+ def set_cache_path(self, arg0: os.PathLike[str]) -> Engine:
201
+ """
202
+ Set the cache path directory
203
+ """
204
+
205
+ @property
206
+ def interactor(self) -> Interactor:
207
+ ...
208
+
209
+ @property
210
+ def scene(self) -> Scene:
211
+ ...
212
+
213
+ @property
214
+ def window(self) -> Window:
215
+ ...
216
+
217
+ class Image:
218
+
219
+ class ChannelType:
220
+ """
221
+ Members:
222
+
223
+ BYTE
224
+
225
+ SHORT
226
+
227
+ FLOAT
228
+ """
229
+ BYTE: typing.ClassVar[Image.ChannelType]
230
+ FLOAT: typing.ClassVar[Image.ChannelType]
231
+ SHORT: typing.ClassVar[Image.ChannelType]
232
+ __members__: typing.ClassVar[dict[str, Image.ChannelType]]
233
+
234
+ def __eq__(self, other: typing.Any) -> bool:
235
+ ...
236
+
237
+ def __getstate__(self) -> int:
238
+ ...
239
+
240
+ def __hash__(self) -> int:
241
+ ...
242
+
243
+ def __index__(self) -> int:
244
+ ...
245
+
246
+ def __init__(self, value: int) -> None:
247
+ ...
248
+
249
+ def __int__(self) -> int:
250
+ ...
251
+
252
+ def __ne__(self, other: typing.Any) -> bool:
253
+ ...
254
+
255
+ def __repr__(self) -> str:
256
+ ...
257
+
258
+ def __setstate__(self, state: int) -> None:
259
+ ...
260
+
261
+ def __str__(self) -> str:
262
+ ...
263
+
264
+ @property
265
+ def name(self) -> str:
266
+ ...
267
+
268
+ @property
269
+ def value(self) -> int:
270
+ ...
271
+
272
+ class SaveFormat:
273
+ """
274
+ Members:
275
+
276
+ PNG
277
+
278
+ JPG
279
+
280
+ TIF
281
+
282
+ BMP
283
+ """
284
+ BMP: typing.ClassVar[Image.SaveFormat]
285
+ JPG: typing.ClassVar[Image.SaveFormat]
286
+ PNG: typing.ClassVar[Image.SaveFormat]
287
+ TIF: typing.ClassVar[Image.SaveFormat]
288
+ __members__: typing.ClassVar[dict[str, Image.SaveFormat]]
289
+
290
+ def __eq__(self, other: typing.Any) -> bool:
291
+ ...
292
+
293
+ def __getstate__(self) -> int:
294
+ ...
295
+
296
+ def __hash__(self) -> int:
297
+ ...
298
+
299
+ def __index__(self) -> int:
300
+ ...
301
+
302
+ def __init__(self, value: int) -> None:
303
+ ...
304
+
305
+ def __int__(self) -> int:
306
+ ...
307
+
308
+ def __ne__(self, other: typing.Any) -> bool:
309
+ ...
310
+
311
+ def __repr__(self) -> str:
312
+ ...
313
+
314
+ def __setstate__(self, state: int) -> None:
315
+ ...
316
+
317
+ def __str__(self) -> str:
318
+ ...
319
+
320
+ @property
321
+ def name(self) -> str:
322
+ ...
323
+
324
+ @property
325
+ def value(self) -> int:
326
+ ...
327
+ BMP: typing.ClassVar[Image.SaveFormat]
328
+ BYTE: typing.ClassVar[Image.ChannelType]
329
+ FLOAT: typing.ClassVar[Image.ChannelType]
330
+ JPG: typing.ClassVar[Image.SaveFormat]
331
+ PNG: typing.ClassVar[Image.SaveFormat]
332
+ SHORT: typing.ClassVar[Image.ChannelType]
333
+ TIF: typing.ClassVar[Image.SaveFormat]
334
+ __hash__: typing.ClassVar[None] = None
335
+ content: bytes
336
+
337
+ @staticmethod
338
+ def supported_formats() -> list[str]:
339
+ ...
340
+
341
+ def __eq__(self, arg0: Image) -> bool:
342
+ ...
343
+
344
+ @typing.overload
345
+ def __init__(self) -> None:
346
+ ...
347
+
348
+ @typing.overload
349
+ def __init__(self, arg0: os.PathLike[str]) -> None:
350
+ ...
351
+
352
+ @typing.overload
353
+ def __init__(self, arg0: int, arg1: int, arg2: int, arg3: Image.ChannelType) -> None:
354
+ ...
355
+
356
+ def __ne__(self, arg0: Image) -> bool:
357
+ ...
358
+
359
+ def _repr_png_(self) -> bytes:
360
+ ...
361
+
362
+ def all_metadata(self) -> list[str]:
363
+ ...
364
+
365
+ def compare(self, arg0: Image) -> float:
366
+ ...
367
+
368
+ def get_metadata(self, arg0: str) -> str:
369
+ ...
370
+
371
+ def normalized_pixel(self, arg0: tuple[int, int]) -> list[float]:
372
+ ...
373
+
374
+ def save(self, path: os.PathLike[str], format: Image.SaveFormat=Image.SaveFormat.PNG) -> Image:
375
+ ...
376
+
377
+ def save_buffer(self, format: Image.SaveFormat=Image.SaveFormat.PNG) -> bytes:
378
+ ...
379
+
380
+ def set_metadata(self, arg0: str, arg1: str) -> Image:
381
+ ...
382
+
383
+ def to_terminal_text(self) -> str:
384
+ ...
385
+
386
+ @property
387
+ def channel_count(self) -> int:
388
+ ...
389
+
390
+ @property
391
+ def channel_type(self) -> Image.ChannelType:
392
+ ...
393
+
394
+ @property
395
+ def channel_type_size(self) -> int:
396
+ ...
397
+
398
+ @property
399
+ def height(self) -> int:
400
+ ...
401
+
402
+ @property
403
+ def width(self) -> int:
404
+ ...
405
+
406
+ class InteractionBind:
407
+
408
+ class ModifierKeys:
409
+ """
410
+ Members:
411
+
412
+ ANY
413
+
414
+ NONE
415
+
416
+ CTRL
417
+
418
+ SHIFT
419
+
420
+ CTRL_SHIFT
421
+ """
422
+ ANY: typing.ClassVar[InteractionBind.ModifierKeys]
423
+ CTRL: typing.ClassVar[InteractionBind.ModifierKeys]
424
+ CTRL_SHIFT: typing.ClassVar[InteractionBind.ModifierKeys]
425
+ NONE: typing.ClassVar[InteractionBind.ModifierKeys]
426
+ SHIFT: typing.ClassVar[InteractionBind.ModifierKeys]
427
+ __members__: typing.ClassVar[dict[str, InteractionBind.ModifierKeys]]
428
+
429
+ def __eq__(self, other: typing.Any) -> bool:
430
+ ...
431
+
432
+ def __getstate__(self) -> int:
433
+ ...
434
+
435
+ def __hash__(self) -> int:
436
+ ...
437
+
438
+ def __index__(self) -> int:
439
+ ...
440
+
441
+ def __init__(self, value: int) -> None:
442
+ ...
443
+
444
+ def __int__(self) -> int:
445
+ ...
446
+
447
+ def __ne__(self, other: typing.Any) -> bool:
448
+ ...
449
+
450
+ def __repr__(self) -> str:
451
+ ...
452
+
453
+ def __setstate__(self, state: int) -> None:
454
+ ...
455
+
456
+ def __str__(self) -> str:
457
+ ...
458
+
459
+ @property
460
+ def name(self) -> str:
461
+ ...
462
+
463
+ @property
464
+ def value(self) -> int:
465
+ ...
466
+ ANY: typing.ClassVar[InteractionBind.ModifierKeys]
467
+ CTRL: typing.ClassVar[InteractionBind.ModifierKeys]
468
+ CTRL_SHIFT: typing.ClassVar[InteractionBind.ModifierKeys]
469
+ NONE: typing.ClassVar[InteractionBind.ModifierKeys]
470
+ SHIFT: typing.ClassVar[InteractionBind.ModifierKeys]
471
+ inter: str
472
+ mod: InteractionBind.ModifierKeys
473
+
474
+ def __init__(self, arg0: InteractionBind.ModifierKeys, arg1: str) -> None:
475
+ ...
476
+
477
+ def format(self) -> str:
478
+ ...
479
+
480
+ class Interactor:
481
+
482
+ class AnimationDirection:
483
+ """
484
+ Members:
485
+
486
+ FORWARD
487
+
488
+ BACKWARD
489
+ """
490
+ BACKWARD: typing.ClassVar[Interactor.AnimationDirection]
491
+ FORWARD: typing.ClassVar[Interactor.AnimationDirection]
492
+ __members__: typing.ClassVar[dict[str, Interactor.AnimationDirection]]
493
+
494
+ def __eq__(self, other: typing.Any) -> bool:
495
+ ...
496
+
497
+ def __getstate__(self) -> int:
498
+ ...
499
+
500
+ def __hash__(self) -> int:
501
+ ...
502
+
503
+ def __index__(self) -> int:
504
+ ...
505
+
506
+ def __init__(self, value: int) -> None:
507
+ ...
508
+
509
+ def __int__(self) -> int:
510
+ ...
511
+
512
+ def __ne__(self, other: typing.Any) -> bool:
513
+ ...
514
+
515
+ def __repr__(self) -> str:
516
+ ...
517
+
518
+ def __setstate__(self, state: int) -> None:
519
+ ...
520
+
521
+ def __str__(self) -> str:
522
+ ...
523
+
524
+ @property
525
+ def name(self) -> str:
526
+ ...
527
+
528
+ @property
529
+ def value(self) -> int:
530
+ ...
531
+
532
+ class BindingType:
533
+ """
534
+ Members:
535
+
536
+ CYCLIC
537
+
538
+ NUMERICAL
539
+
540
+ TOGGLE
541
+
542
+ OTHER
543
+ """
544
+ CYCLIC: typing.ClassVar[Interactor.BindingType]
545
+ NUMERICAL: typing.ClassVar[Interactor.BindingType]
546
+ OTHER: typing.ClassVar[Interactor.BindingType]
547
+ TOGGLE: typing.ClassVar[Interactor.BindingType]
548
+ __members__: typing.ClassVar[dict[str, Interactor.BindingType]]
549
+
550
+ def __eq__(self, other: typing.Any) -> bool:
551
+ ...
552
+
553
+ def __getstate__(self) -> int:
554
+ ...
555
+
556
+ def __hash__(self) -> int:
557
+ ...
558
+
559
+ def __index__(self) -> int:
560
+ ...
561
+
562
+ def __init__(self, value: int) -> None:
563
+ ...
564
+
565
+ def __int__(self) -> int:
566
+ ...
567
+
568
+ def __ne__(self, other: typing.Any) -> bool:
569
+ ...
570
+
571
+ def __repr__(self) -> str:
572
+ ...
573
+
574
+ def __setstate__(self, state: int) -> None:
575
+ ...
576
+
577
+ def __str__(self) -> str:
578
+ ...
579
+
580
+ @property
581
+ def name(self) -> str:
582
+ ...
583
+
584
+ @property
585
+ def value(self) -> int:
586
+ ...
587
+
588
+ class InputAction:
589
+ """
590
+ Members:
591
+
592
+ PRESS
593
+
594
+ RELEASE
595
+ """
596
+ PRESS: typing.ClassVar[Interactor.InputAction]
597
+ RELEASE: typing.ClassVar[Interactor.InputAction]
598
+ __members__: typing.ClassVar[dict[str, Interactor.InputAction]]
599
+
600
+ def __eq__(self, other: typing.Any) -> bool:
601
+ ...
602
+
603
+ def __getstate__(self) -> int:
604
+ ...
605
+
606
+ def __hash__(self) -> int:
607
+ ...
608
+
609
+ def __index__(self) -> int:
610
+ ...
611
+
612
+ def __init__(self, value: int) -> None:
613
+ ...
614
+
615
+ def __int__(self) -> int:
616
+ ...
617
+
618
+ def __ne__(self, other: typing.Any) -> bool:
619
+ ...
620
+
621
+ def __repr__(self) -> str:
622
+ ...
623
+
624
+ def __setstate__(self, state: int) -> None:
625
+ ...
626
+
627
+ def __str__(self) -> str:
628
+ ...
629
+
630
+ @property
631
+ def name(self) -> str:
632
+ ...
633
+
634
+ @property
635
+ def value(self) -> int:
636
+ ...
637
+
638
+ class InputModifier:
639
+ """
640
+ Members:
641
+
642
+ NONE
643
+
644
+ CTRL
645
+
646
+ SHIFT
647
+
648
+ CTRL_SHIFT
649
+ """
650
+ CTRL: typing.ClassVar[Interactor.InputModifier]
651
+ CTRL_SHIFT: typing.ClassVar[Interactor.InputModifier]
652
+ NONE: typing.ClassVar[Interactor.InputModifier]
653
+ SHIFT: typing.ClassVar[Interactor.InputModifier]
654
+ __members__: typing.ClassVar[dict[str, Interactor.InputModifier]]
655
+
656
+ def __eq__(self, other: typing.Any) -> bool:
657
+ ...
658
+
659
+ def __getstate__(self) -> int:
660
+ ...
661
+
662
+ def __hash__(self) -> int:
663
+ ...
664
+
665
+ def __index__(self) -> int:
666
+ ...
667
+
668
+ def __init__(self, value: int) -> None:
669
+ ...
670
+
671
+ def __int__(self) -> int:
672
+ ...
673
+
674
+ def __ne__(self, other: typing.Any) -> bool:
675
+ ...
676
+
677
+ def __repr__(self) -> str:
678
+ ...
679
+
680
+ def __setstate__(self, state: int) -> None:
681
+ ...
682
+
683
+ def __str__(self) -> str:
684
+ ...
685
+
686
+ @property
687
+ def name(self) -> str:
688
+ ...
689
+
690
+ @property
691
+ def value(self) -> int:
692
+ ...
693
+
694
+ class MouseButton:
695
+ """
696
+ Members:
697
+
698
+ LEFT
699
+
700
+ MIDDLE
701
+
702
+ RIGHT
703
+ """
704
+ LEFT: typing.ClassVar[Interactor.MouseButton]
705
+ MIDDLE: typing.ClassVar[Interactor.MouseButton]
706
+ RIGHT: typing.ClassVar[Interactor.MouseButton]
707
+ __members__: typing.ClassVar[dict[str, Interactor.MouseButton]]
708
+
709
+ def __eq__(self, other: typing.Any) -> bool:
710
+ ...
711
+
712
+ def __getstate__(self) -> int:
713
+ ...
714
+
715
+ def __hash__(self) -> int:
716
+ ...
717
+
718
+ def __index__(self) -> int:
719
+ ...
720
+
721
+ def __init__(self, value: int) -> None:
722
+ ...
723
+
724
+ def __int__(self) -> int:
725
+ ...
726
+
727
+ def __ne__(self, other: typing.Any) -> bool:
728
+ ...
729
+
730
+ def __repr__(self) -> str:
731
+ ...
732
+
733
+ def __setstate__(self, state: int) -> None:
734
+ ...
735
+
736
+ def __str__(self) -> str:
737
+ ...
738
+
739
+ @property
740
+ def name(self) -> str:
741
+ ...
742
+
743
+ @property
744
+ def value(self) -> int:
745
+ ...
746
+
747
+ class WheelDirection:
748
+ """
749
+ Members:
750
+
751
+ FORWARD
752
+
753
+ BACKWARD
754
+
755
+ LEFT
756
+
757
+ RIGHT
758
+ """
759
+ BACKWARD: typing.ClassVar[Interactor.WheelDirection]
760
+ FORWARD: typing.ClassVar[Interactor.WheelDirection]
761
+ LEFT: typing.ClassVar[Interactor.WheelDirection]
762
+ RIGHT: typing.ClassVar[Interactor.WheelDirection]
763
+ __members__: typing.ClassVar[dict[str, Interactor.WheelDirection]]
764
+
765
+ def __eq__(self, other: typing.Any) -> bool:
766
+ ...
767
+
768
+ def __getstate__(self) -> int:
769
+ ...
770
+
771
+ def __hash__(self) -> int:
772
+ ...
773
+
774
+ def __index__(self) -> int:
775
+ ...
776
+
777
+ def __init__(self, value: int) -> None:
778
+ ...
779
+
780
+ def __int__(self) -> int:
781
+ ...
782
+
783
+ def __ne__(self, other: typing.Any) -> bool:
784
+ ...
785
+
786
+ def __repr__(self) -> str:
787
+ ...
788
+
789
+ def __setstate__(self, state: int) -> None:
790
+ ...
791
+
792
+ def __str__(self) -> str:
793
+ ...
794
+
795
+ @property
796
+ def name(self) -> str:
797
+ ...
798
+
799
+ @property
800
+ def value(self) -> int:
801
+ ...
802
+ BACKWARD: typing.ClassVar[Interactor.AnimationDirection]
803
+ CTRL: typing.ClassVar[Interactor.InputModifier]
804
+ CTRL_SHIFT: typing.ClassVar[Interactor.InputModifier]
805
+ CYCLIC: typing.ClassVar[Interactor.BindingType]
806
+ FORWARD: typing.ClassVar[Interactor.AnimationDirection]
807
+ LEFT: typing.ClassVar[Interactor.WheelDirection]
808
+ MIDDLE: typing.ClassVar[Interactor.MouseButton]
809
+ NONE: typing.ClassVar[Interactor.InputModifier]
810
+ NUMERICAL: typing.ClassVar[Interactor.BindingType]
811
+ OTHER: typing.ClassVar[Interactor.BindingType]
812
+ PRESS: typing.ClassVar[Interactor.InputAction]
813
+ RELEASE: typing.ClassVar[Interactor.InputAction]
814
+ RIGHT: typing.ClassVar[Interactor.WheelDirection]
815
+ SHIFT: typing.ClassVar[Interactor.InputModifier]
816
+ TOGGLE: typing.ClassVar[Interactor.BindingType]
817
+
818
+ @typing.overload
819
+ def add_binding(self, bind: InteractionBind, command: str, group: str, documentationCallback: typing.Callable[[], tuple[str, str]]=None, type: Interactor.BindingType=Interactor.BindingType.OTHER) -> Interactor:
820
+ """
821
+ Add a binding command
822
+ """
823
+
824
+ @typing.overload
825
+ def add_binding(self, bind: InteractionBind, command: collections.abc.Sequence[str], group: str, documentationCallback: typing.Callable[[], tuple[str, str]]=None, type: Interactor.BindingType=Interactor.BindingType.OTHER) -> Interactor:
826
+ """
827
+ Add binding commands
828
+ """
829
+
830
+ def add_command(self, action: str, callback: typing.Callable[[list[str]], typing.Any], doc: tuple[str, str] | None=None, completionCallback: typing.Callable[[list[str]], collections.abc.Sequence[str]]=None) -> Interactor:
831
+ """
832
+ Add a command
833
+ """
834
+
835
+ def disable_camera_movement(self) -> Interactor:
836
+ """
837
+ Disable the camera interaction
838
+ """
839
+
840
+ def enable_camera_movement(self) -> Interactor:
841
+ """
842
+ Enable the camera interaction
843
+ """
844
+
845
+ def get_animation_direction(self) -> Interactor.AnimationDirection:
846
+ """
847
+ Returns the current animation direction
848
+ """
849
+
850
+ def get_bind_groups(self) -> list[str]:
851
+ ...
852
+
853
+ def get_binding_documentation(self, arg0: InteractionBind) -> tuple[str, str]:
854
+ ...
855
+
856
+ def get_binding_type(self, arg0: InteractionBind) -> Interactor.BindingType:
857
+ ...
858
+
859
+ def get_binds(self) -> list[InteractionBind]:
860
+ ...
861
+
862
+ def get_binds_for_group(self, arg0: str) -> list[InteractionBind]:
863
+ ...
864
+
865
+ def get_command_actions(self) -> list[str]:
866
+ """
867
+ Get all command actions
868
+ """
869
+
870
+ def init_bindings(self) -> Interactor:
871
+ """
872
+ Remove all bindings and add default bindings
873
+ """
874
+
875
+ def init_commands(self) -> Interactor:
876
+ """
877
+ Remove all commands and add all default command callbacks
878
+ """
879
+
880
+ def is_playing_animation(self) -> bool:
881
+ """
882
+ Returns True if the animation is currently started
883
+ """
884
+
885
+ def play_interaction(self, arg0: os.PathLike[str], arg1: float, arg2: typing.Callable[[], typing.Any]) -> bool:
886
+ """
887
+ Play an interaction file
888
+ """
889
+
890
+ def record_interaction(self, arg0: os.PathLike[str]) -> bool:
891
+ """
892
+ Record an interaction file
893
+ """
894
+
895
+ def remove_binding(self, arg0: InteractionBind) -> Interactor:
896
+ """
897
+ Remove interaction commands
898
+ """
899
+
900
+ def remove_command(self, arg0: str) -> Interactor:
901
+ """
902
+ Remove a command
903
+ """
904
+
905
+ def request_render(self) -> Interactor:
906
+ """
907
+ Request a render on the next event loop
908
+ """
909
+
910
+ def request_stop(self) -> Interactor:
911
+ """
912
+ Stop on the next event loop
913
+ """
914
+
915
+ def start(self, delta_time: float=0.03333333333333333, user_callback: typing.Callable[[], typing.Any]=None) -> Interactor:
916
+ """
917
+ Start the interactor and the event loop
918
+ """
919
+
920
+ def start_animation(self, direction: Interactor.AnimationDirection=Interactor.AnimationDirection.FORWARD) -> Interactor:
921
+ """
922
+ Start the animation
923
+ """
924
+
925
+ def stop(self) -> Interactor:
926
+ """
927
+ Stop the interactor and the event loop
928
+ """
929
+
930
+ def stop_animation(self) -> Interactor:
931
+ """
932
+ Stop the animation
933
+ """
934
+
935
+ def toggle_animation(self, direction: Interactor.AnimationDirection=Interactor.AnimationDirection.FORWARD) -> Interactor:
936
+ """
937
+ Toggle the animation
938
+ """
939
+
940
+ def trigger_command(self, command: str, keep_comments: bool=True) -> bool:
941
+ """
942
+ Trigger a command
943
+ """
944
+
945
+ def trigger_event_loop(self, arg0: float) -> Interactor:
946
+ """
947
+ Manually trigger the event loop.
948
+ """
949
+
950
+ def trigger_keyboard_key(self, arg0: Interactor.InputAction, arg1: str) -> Interactor:
951
+ """
952
+ Trigger a keyboard input
953
+ """
954
+
955
+ def trigger_mod_update(self, arg0: Interactor.InputModifier) -> Interactor:
956
+ """
957
+ Trigger a key modifier update
958
+ """
959
+
960
+ def trigger_mouse_button(self, arg0: Interactor.InputAction, arg1: Interactor.MouseButton) -> Interactor:
961
+ """
962
+ Trigger a mouse button
963
+ """
964
+
965
+ def trigger_mouse_position(self, arg0: float, arg1: float) -> Interactor:
966
+ """
967
+ Trigger a mouse position
968
+ """
969
+
970
+ def trigger_mouse_wheel(self, arg0: Interactor.WheelDirection) -> Interactor:
971
+ """
972
+ Trigger a mouse wheel
973
+ """
974
+
975
+ def trigger_text_character(self, arg0: int) -> Interactor:
976
+ """
977
+ Trigger a text character input
978
+ """
979
+
980
+ class LibInformation:
981
+
982
+ @property
983
+ def build_date(self) -> str:
984
+ ...
985
+
986
+ @property
987
+ def build_system(self) -> str:
988
+ ...
989
+
990
+ @property
991
+ def compiler(self) -> str:
992
+ ...
993
+
994
+ @property
995
+ def copyrights(self) -> list[str]:
996
+ ...
997
+
998
+ @property
999
+ def license(self) -> str:
1000
+ ...
1001
+
1002
+ @property
1003
+ def modules(self) -> dict[str, bool]:
1004
+ ...
1005
+
1006
+ @property
1007
+ def version(self) -> str:
1008
+ ...
1009
+
1010
+ @property
1011
+ def version_full(self) -> str:
1012
+ ...
1013
+
1014
+ @property
1015
+ def vtk_version(self) -> str:
1016
+ ...
1017
+
1018
+ class LightState:
1019
+ color: Color
1020
+ direction: tuple[float, float, float]
1021
+ intensity: float
1022
+ position: tuple[float, float, float]
1023
+ positional_light: bool
1024
+ switch_state: bool
1025
+ type: LightType
1026
+
1027
+ @typing.overload
1028
+ def __init__(self) -> None:
1029
+ ...
1030
+
1031
+ @typing.overload
1032
+ 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:
1033
+ ...
1034
+
1035
+ class LightType:
1036
+ """
1037
+ Members:
1038
+
1039
+ HEADLIGHT
1040
+
1041
+ CAMERA_LIGHT
1042
+
1043
+ SCENE_LIGHT
1044
+ """
1045
+ CAMERA_LIGHT: typing.ClassVar[LightType]
1046
+ HEADLIGHT: typing.ClassVar[LightType]
1047
+ SCENE_LIGHT: typing.ClassVar[LightType]
1048
+ __members__: typing.ClassVar[dict[str, LightType]]
1049
+
1050
+ def __eq__(self, other: typing.Any) -> bool:
1051
+ ...
1052
+
1053
+ def __getstate__(self) -> int:
1054
+ ...
1055
+
1056
+ def __hash__(self) -> int:
1057
+ ...
1058
+
1059
+ def __index__(self) -> int:
1060
+ ...
1061
+
1062
+ def __init__(self, value: int) -> None:
1063
+ ...
1064
+
1065
+ def __int__(self) -> int:
1066
+ ...
1067
+
1068
+ def __ne__(self, other: typing.Any) -> bool:
1069
+ ...
1070
+
1071
+ def __repr__(self) -> str:
1072
+ ...
1073
+
1074
+ def __setstate__(self, state: int) -> None:
1075
+ ...
1076
+
1077
+ def __str__(self) -> str:
1078
+ ...
1079
+
1080
+ @property
1081
+ def name(self) -> str:
1082
+ ...
1083
+
1084
+ @property
1085
+ def value(self) -> int:
1086
+ ...
1087
+
1088
+ class Log:
1089
+
1090
+ class VerboseLevel:
1091
+ """
1092
+ Members:
1093
+
1094
+ DEBUG
1095
+
1096
+ INFO
1097
+
1098
+ WARN
1099
+
1100
+ ERROR
1101
+
1102
+ QUIET
1103
+ """
1104
+ DEBUG: typing.ClassVar[Log.VerboseLevel]
1105
+ ERROR: typing.ClassVar[Log.VerboseLevel]
1106
+ INFO: typing.ClassVar[Log.VerboseLevel]
1107
+ QUIET: typing.ClassVar[Log.VerboseLevel]
1108
+ WARN: typing.ClassVar[Log.VerboseLevel]
1109
+ __members__: typing.ClassVar[dict[str, Log.VerboseLevel]]
1110
+
1111
+ def __eq__(self, other: typing.Any) -> bool:
1112
+ ...
1113
+
1114
+ def __getstate__(self) -> int:
1115
+ ...
1116
+
1117
+ def __hash__(self) -> int:
1118
+ ...
1119
+
1120
+ def __index__(self) -> int:
1121
+ ...
1122
+
1123
+ def __init__(self, value: int) -> None:
1124
+ ...
1125
+
1126
+ def __int__(self) -> int:
1127
+ ...
1128
+
1129
+ def __ne__(self, other: typing.Any) -> bool:
1130
+ ...
1131
+
1132
+ def __repr__(self) -> str:
1133
+ ...
1134
+
1135
+ def __setstate__(self, state: int) -> None:
1136
+ ...
1137
+
1138
+ def __str__(self) -> str:
1139
+ ...
1140
+
1141
+ @property
1142
+ def name(self) -> str:
1143
+ ...
1144
+
1145
+ @property
1146
+ def value(self) -> int:
1147
+ ...
1148
+ DEBUG: typing.ClassVar[Log.VerboseLevel]
1149
+ ERROR: typing.ClassVar[Log.VerboseLevel]
1150
+ INFO: typing.ClassVar[Log.VerboseLevel]
1151
+ QUIET: typing.ClassVar[Log.VerboseLevel]
1152
+ WARN: typing.ClassVar[Log.VerboseLevel]
1153
+
1154
+ @staticmethod
1155
+ def forward(callback: typing.Callable[[Log.VerboseLevel, str], typing.Any]) -> None:
1156
+ ...
1157
+
1158
+ @staticmethod
1159
+ def get_verbose_level() -> Log.VerboseLevel:
1160
+ ...
1161
+
1162
+ @staticmethod
1163
+ def print(arg0: Log.VerboseLevel, arg1: str) -> None:
1164
+ ...
1165
+
1166
+ @staticmethod
1167
+ def set_use_coloring(arg0: bool) -> None:
1168
+ ...
1169
+
1170
+ @staticmethod
1171
+ def set_verbose_level(level: Log.VerboseLevel, force_std_err: bool=False) -> None:
1172
+ ...
1173
+
1174
+ class Mesh:
1175
+ face_indices: list[int]
1176
+ face_sides: list[int]
1177
+ normals: list[float]
1178
+ points: list[float]
1179
+ texture_coordinates: list[float]
1180
+
1181
+ @typing.overload
1182
+ def __init__(self) -> None:
1183
+ ...
1184
+
1185
+ @typing.overload
1186
+ def __init__(self, points: collections.abc.Sequence[float], normals: collections.abc.Sequence[float]=[], texture_coordinates: collections.abc.Sequence[float]=[], face_sides: collections.abc.Sequence[int]=[], face_indices: collections.abc.Sequence[int]=[]) -> None:
1187
+ ...
1188
+
1189
+ class Options:
1190
+
1191
+ def __getitem__(self, arg0: str) -> bool | int | float | str | list[float] | list[int]:
1192
+ ...
1193
+
1194
+ def __init__(self) -> None:
1195
+ ...
1196
+
1197
+ def __iter__(self) -> typing.Iterator[typing.Any]:
1198
+ ...
1199
+
1200
+ def __len__(self) -> int:
1201
+ ...
1202
+
1203
+ def __setitem__(self, arg0: str, arg1: bool | int | float | str | collections.abc.Sequence[float] | collections.abc.Sequence[int]) -> None:
1204
+ ...
1205
+
1206
+ def copy(self, arg0: Options, arg1: str) -> Options:
1207
+ ...
1208
+
1209
+ def get_closest_option(self, arg0: str) -> tuple[str, int]:
1210
+ ...
1211
+
1212
+ def is_same(self, arg0: Options, arg1: str) -> bool:
1213
+ ...
1214
+
1215
+ def keys(self) -> list[str]:
1216
+ ...
1217
+
1218
+ def toggle(self, arg0: str) -> Options:
1219
+ ...
1220
+
1221
+ def update(self, arg: typing.Mapping[str, typing.Any] | typing.Iterable[tuple[str, typing.Any]]) -> None:
1222
+ ...
1223
+
1224
+ class ReaderInformation:
1225
+
1226
+ @property
1227
+ def description(self) -> str:
1228
+ ...
1229
+
1230
+ @property
1231
+ def extensions(self) -> list[str]:
1232
+ ...
1233
+
1234
+ @property
1235
+ def has_geometry_reader(self) -> bool:
1236
+ ...
1237
+
1238
+ @property
1239
+ def has_scene_reader(self) -> bool:
1240
+ ...
1241
+
1242
+ @property
1243
+ def mime_types(self) -> list[str]:
1244
+ ...
1245
+
1246
+ @property
1247
+ def name(self) -> str:
1248
+ ...
1249
+
1250
+ @property
1251
+ def plugin_name(self) -> str:
1252
+ ...
1253
+
1254
+ class Scene:
1255
+
1256
+ @typing.overload
1257
+ def add(self, file_path: os.PathLike[str]) -> Scene:
1258
+ """
1259
+ Add a file the scene
1260
+ """
1261
+
1262
+ @typing.overload
1263
+ def add(self, file_path_vector: collections.abc.Sequence[os.PathLike[str]]) -> Scene:
1264
+ """
1265
+ Add multiple filepaths to the scene
1266
+ """
1267
+
1268
+ @typing.overload
1269
+ def add(self, file_name_vector: collections.abc.Sequence[str]) -> Scene:
1270
+ """
1271
+ Add multiple filenames to the scene
1272
+ """
1273
+
1274
+ @typing.overload
1275
+ def add(self, mesh: Mesh) -> Scene:
1276
+ """
1277
+ Add a surfacic mesh from memory into the scene
1278
+ """
1279
+
1280
+ def add_light(self, light_state: LightState) -> int:
1281
+ """
1282
+ Add a light to the scene
1283
+ """
1284
+
1285
+ def animation_time_range(self) -> tuple[float, float]:
1286
+ ...
1287
+
1288
+ def available_animations(self) -> int:
1289
+ ...
1290
+
1291
+ def clear(self) -> Scene:
1292
+ ...
1293
+
1294
+ def get_light(self, index: int) -> LightState:
1295
+ """
1296
+ Get a light from the scene
1297
+ """
1298
+
1299
+ def get_light_count(self) -> int:
1300
+ """
1301
+ Get the number of lights in the scene
1302
+ """
1303
+
1304
+ def load_animation_time(self, arg0: float) -> Scene:
1305
+ ...
1306
+
1307
+ def remove_all_lights(self) -> Scene:
1308
+ """
1309
+ Remove all lights from the scene
1310
+ """
1311
+
1312
+ def remove_light(self, index: int) -> Scene:
1313
+ """
1314
+ Remove a light from the scene
1315
+ """
1316
+
1317
+ def supports(self, arg0: os.PathLike[str]) -> bool:
1318
+ ...
1319
+
1320
+ def update_light(self, index: int, light_state: LightState) -> Scene:
1321
+ """
1322
+ Update a light in the scene
1323
+ """
1324
+
1325
+ class Utils:
1326
+
1327
+ class KnownFolder:
1328
+ """
1329
+ Members:
1330
+
1331
+ ROAMINGAPPDATA
1332
+
1333
+ LOCALAPPDATA
1334
+
1335
+ PICTURES
1336
+ """
1337
+ LOCALAPPDATA: typing.ClassVar[Utils.KnownFolder]
1338
+ PICTURES: typing.ClassVar[Utils.KnownFolder]
1339
+ ROAMINGAPPDATA: typing.ClassVar[Utils.KnownFolder]
1340
+ __members__: typing.ClassVar[dict[str, Utils.KnownFolder]]
1341
+
1342
+ def __eq__(self, other: typing.Any) -> bool:
1343
+ ...
1344
+
1345
+ def __getstate__(self) -> int:
1346
+ ...
1347
+
1348
+ def __hash__(self) -> int:
1349
+ ...
1350
+
1351
+ def __index__(self) -> int:
1352
+ ...
1353
+
1354
+ def __init__(self, value: int) -> None:
1355
+ ...
1356
+
1357
+ def __int__(self) -> int:
1358
+ ...
1359
+
1360
+ def __ne__(self, other: typing.Any) -> bool:
1361
+ ...
1362
+
1363
+ def __repr__(self) -> str:
1364
+ ...
1365
+
1366
+ def __setstate__(self, state: int) -> None:
1367
+ ...
1368
+
1369
+ def __str__(self) -> str:
1370
+ ...
1371
+
1372
+ @property
1373
+ def name(self) -> str:
1374
+ ...
1375
+
1376
+ @property
1377
+ def value(self) -> int:
1378
+ ...
1379
+ LOCALAPPDATA: typing.ClassVar[Utils.KnownFolder]
1380
+ PICTURES: typing.ClassVar[Utils.KnownFolder]
1381
+ ROAMINGAPPDATA: typing.ClassVar[Utils.KnownFolder]
1382
+
1383
+ @staticmethod
1384
+ def collapse_path(arg0: os.PathLike[str], arg1: os.PathLike[str]) -> os.PathLike[str]:
1385
+ ...
1386
+
1387
+ @staticmethod
1388
+ def get_env(arg0: str) -> str | None:
1389
+ ...
1390
+
1391
+ @staticmethod
1392
+ def get_known_folder(arg0: Utils.KnownFolder) -> str | None:
1393
+ ...
1394
+
1395
+ @staticmethod
1396
+ def glob_to_regex(glob: str, path_separator: str='/') -> str:
1397
+ ...
1398
+
1399
+ @staticmethod
1400
+ def text_distance(arg0: str, arg1: str) -> int:
1401
+ ...
1402
+
1403
+ @staticmethod
1404
+ def tokenize(str: str, keep_comments: bool=True) -> list[str]:
1405
+ ...
1406
+
1407
+ class Window:
1408
+
1409
+ class Type:
1410
+ """
1411
+ Members:
1412
+
1413
+ NONE
1414
+
1415
+ EXTERNAL
1416
+
1417
+ GLX
1418
+
1419
+ WGL
1420
+
1421
+ COCOA
1422
+
1423
+ EGL
1424
+
1425
+ OSMESA
1426
+
1427
+ UNKNOWN
1428
+ """
1429
+ COCOA: typing.ClassVar[Window.Type]
1430
+ EGL: typing.ClassVar[Window.Type]
1431
+ EXTERNAL: typing.ClassVar[Window.Type]
1432
+ GLX: typing.ClassVar[Window.Type]
1433
+ NONE: typing.ClassVar[Window.Type]
1434
+ OSMESA: typing.ClassVar[Window.Type]
1435
+ UNKNOWN: typing.ClassVar[Window.Type]
1436
+ WGL: typing.ClassVar[Window.Type]
1437
+ __members__: typing.ClassVar[dict[str, Window.Type]]
1438
+
1439
+ def __eq__(self, other: typing.Any) -> bool:
1440
+ ...
1441
+
1442
+ def __getstate__(self) -> int:
1443
+ ...
1444
+
1445
+ def __hash__(self) -> int:
1446
+ ...
1447
+
1448
+ def __index__(self) -> int:
1449
+ ...
1450
+
1451
+ def __init__(self, value: int) -> None:
1452
+ ...
1453
+
1454
+ def __int__(self) -> int:
1455
+ ...
1456
+
1457
+ def __ne__(self, other: typing.Any) -> bool:
1458
+ ...
1459
+
1460
+ def __repr__(self) -> str:
1461
+ ...
1462
+
1463
+ def __setstate__(self, state: int) -> None:
1464
+ ...
1465
+
1466
+ def __str__(self) -> str:
1467
+ ...
1468
+
1469
+ @property
1470
+ def name(self) -> str:
1471
+ ...
1472
+
1473
+ @property
1474
+ def value(self) -> int:
1475
+ ...
1476
+ COCOA: typing.ClassVar[Window.Type]
1477
+ EGL: typing.ClassVar[Window.Type]
1478
+ EXTERNAL: typing.ClassVar[Window.Type]
1479
+ GLX: typing.ClassVar[Window.Type]
1480
+ NONE: typing.ClassVar[Window.Type]
1481
+ OSMESA: typing.ClassVar[Window.Type]
1482
+ UNKNOWN: typing.ClassVar[Window.Type]
1483
+ WGL: typing.ClassVar[Window.Type]
1484
+ height: int
1485
+ size: tuple[int, int]
1486
+ width: int
1487
+
1488
+ def get_display_from_world(self, arg0: tuple[float, float, float]) -> tuple[float, float, float]:
1489
+ """
1490
+ Get display coordinate point from world coordinate
1491
+ """
1492
+
1493
+ def get_world_from_display(self, arg0: tuple[float, float, float]) -> tuple[float, float, float]:
1494
+ """
1495
+ Get world coordinate point from display coordinate
1496
+ """
1497
+
1498
+ def render(self) -> bool:
1499
+ """
1500
+ Render the window
1501
+ """
1502
+
1503
+ def render_to_image(self, no_background: bool=False) -> Image:
1504
+ """
1505
+ Render the window to an image
1506
+ """
1507
+
1508
+ def set_icon(self, arg0: int, arg1: int) -> Window:
1509
+ """
1510
+ Set the icon of the window using a memory buffer representing a PNG file
1511
+ """
1512
+
1513
+ def set_position(self, arg0: int, arg1: int) -> Window:
1514
+ ...
1515
+
1516
+ def set_window_name(self, arg0: str) -> Window:
1517
+ """
1518
+ Set the window name
1519
+ """
1520
+
1521
+ @property
1522
+ def camera(self) -> Camera:
1523
+ ...
1524
+
1525
+ @property
1526
+ def offscreen(self) -> bool:
1527
+ ...
1528
+
1529
+ @property
1530
+ def type(self) -> Window.Type:
1531
+ ...
1532
+ CAMERA_LIGHT: LightType
1533
+ HEADLIGHT: LightType
1534
+ SCENE_LIGHT: LightType
1535
+ forwardcleanup: typing.Any