fake-bpy-module 20241102__py3-none-any.whl → 20241103__py3-none-any.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 fake-bpy-module might be problematic. Click here for more details.
- bmesh/ops/__init__.pyi +53 -110
- bpy/types/__init__.pyi +3 -2
- bpy_extras/anim_utils/__init__.pyi +3 -0
- {fake_bpy_module-20241102.dist-info → fake_bpy_module-20241103.dist-info}/METADATA +1 -1
- {fake_bpy_module-20241102.dist-info → fake_bpy_module-20241103.dist-info}/RECORD +9 -9
- mathutils/bvhtree/__init__.pyi +1 -1
- mathutils/geometry/__init__.pyi +20 -14
- {fake_bpy_module-20241102.dist-info → fake_bpy_module-20241103.dist-info}/WHEEL +0 -0
- {fake_bpy_module-20241102.dist-info → fake_bpy_module-20241103.dist-info}/top_level.txt +0 -0
bmesh/ops/__init__.pyi
CHANGED
|
@@ -37,7 +37,7 @@ def beautify_fill(
|
|
|
37
37
|
edges: list[bmesh.types.BMEdge] = [],
|
|
38
38
|
use_restrict_tag: bool = False,
|
|
39
39
|
method: typing.Literal["AREA", "ANGLE"] = "AREA",
|
|
40
|
-
)
|
|
40
|
+
):
|
|
41
41
|
"""Beautify Fill.Rotate edges to create more evenly spaced triangles.
|
|
42
42
|
|
|
43
43
|
:param bm: The bmesh to operate on.
|
|
@@ -53,7 +53,6 @@ def beautify_fill(
|
|
|
53
53
|
:return: geom: new flipped faces and edges
|
|
54
54
|
|
|
55
55
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
56
|
-
:rtype: dict[str, typing.Any]
|
|
57
56
|
"""
|
|
58
57
|
|
|
59
58
|
def bevel(
|
|
@@ -81,7 +80,7 @@ def bevel(
|
|
|
81
80
|
spread: float = 0,
|
|
82
81
|
custom_profile: bpy.types.bpy_struct | None = None,
|
|
83
82
|
vmesh_method: typing.Literal["ADJ", "CUTOFF"] = "ADJ",
|
|
84
|
-
)
|
|
83
|
+
):
|
|
85
84
|
"""Bevel.Bevels edges and vertices
|
|
86
85
|
|
|
87
86
|
:param bm: The bmesh to operate on.
|
|
@@ -135,7 +134,6 @@ def bevel(
|
|
|
135
134
|
verts: output verts
|
|
136
135
|
|
|
137
136
|
type list of (`bmesh.types.BMVert`)
|
|
138
|
-
:rtype: dict[str, typing.Any]
|
|
139
137
|
"""
|
|
140
138
|
|
|
141
139
|
def bisect_edges(
|
|
@@ -143,7 +141,7 @@ def bisect_edges(
|
|
|
143
141
|
edges: list[bmesh.types.BMEdge] = [],
|
|
144
142
|
cuts: int = 0,
|
|
145
143
|
edge_percents={},
|
|
146
|
-
)
|
|
144
|
+
):
|
|
147
145
|
"""Edge Bisect.Splits input edges (but doesn't do anything else).
|
|
148
146
|
This creates a 2-valence vert.
|
|
149
147
|
|
|
@@ -157,7 +155,6 @@ def bisect_edges(
|
|
|
157
155
|
:return: geom_split: newly created vertices and edges
|
|
158
156
|
|
|
159
157
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
160
|
-
:rtype: dict[str, typing.Any]
|
|
161
158
|
"""
|
|
162
159
|
|
|
163
160
|
def bisect_plane(
|
|
@@ -171,7 +168,7 @@ def bisect_plane(
|
|
|
171
168
|
use_snap_center: bool = False,
|
|
172
169
|
clear_outer: bool = False,
|
|
173
170
|
clear_inner: bool = False,
|
|
174
|
-
)
|
|
171
|
+
):
|
|
175
172
|
"""Bisect Plane.Bisects the mesh by a plane (cut the mesh in half).
|
|
176
173
|
|
|
177
174
|
:param bm: The bmesh to operate on.
|
|
@@ -197,7 +194,6 @@ def bisect_plane(
|
|
|
197
194
|
geom: input and output geometry (result of cut).
|
|
198
195
|
|
|
199
196
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
200
|
-
:rtype: dict[str, typing.Any]
|
|
201
197
|
"""
|
|
202
198
|
|
|
203
199
|
def bmesh_to_mesh(
|
|
@@ -221,7 +217,7 @@ def bridge_loops(
|
|
|
221
217
|
use_merge: bool = False,
|
|
222
218
|
merge_factor: float = 0,
|
|
223
219
|
twist_offset: int = 0,
|
|
224
|
-
)
|
|
220
|
+
):
|
|
225
221
|
"""Bridge edge loops with faces.
|
|
226
222
|
|
|
227
223
|
:param bm: The bmesh to operate on.
|
|
@@ -245,7 +241,6 @@ def bridge_loops(
|
|
|
245
241
|
edges: new edges
|
|
246
242
|
|
|
247
243
|
type list of (`bmesh.types.BMEdge`)
|
|
248
|
-
:rtype: dict[str, typing.Any]
|
|
249
244
|
"""
|
|
250
245
|
|
|
251
246
|
def collapse(
|
|
@@ -275,7 +270,7 @@ def connect_vert_pair(
|
|
|
275
270
|
verts: list[bmesh.types.BMVert] = [],
|
|
276
271
|
verts_exclude: list[bmesh.types.BMVert] = [],
|
|
277
272
|
faces_exclude: list[bmesh.types.BMFace] = [],
|
|
278
|
-
)
|
|
273
|
+
):
|
|
279
274
|
"""Connect Verts.Split faces by adding edges that connect verts.
|
|
280
275
|
|
|
281
276
|
:param bm: The bmesh to operate on.
|
|
@@ -289,7 +284,6 @@ def connect_vert_pair(
|
|
|
289
284
|
:return: edges:
|
|
290
285
|
|
|
291
286
|
type list of (`bmesh.types.BMEdge`)
|
|
292
|
-
:rtype: dict[str, typing.Any]
|
|
293
287
|
"""
|
|
294
288
|
|
|
295
289
|
def connect_verts(
|
|
@@ -297,7 +291,7 @@ def connect_verts(
|
|
|
297
291
|
verts: list[bmesh.types.BMVert] = [],
|
|
298
292
|
faces_exclude: list[bmesh.types.BMFace] = [],
|
|
299
293
|
check_degenerate: bool = False,
|
|
300
|
-
)
|
|
294
|
+
):
|
|
301
295
|
"""Connect Verts.Split faces by adding edges that connect verts.
|
|
302
296
|
|
|
303
297
|
:param bm: The bmesh to operate on.
|
|
@@ -311,12 +305,9 @@ def connect_verts(
|
|
|
311
305
|
:return: edges:
|
|
312
306
|
|
|
313
307
|
type list of (`bmesh.types.BMEdge`)
|
|
314
|
-
:rtype: dict[str, typing.Any]
|
|
315
308
|
"""
|
|
316
309
|
|
|
317
|
-
def connect_verts_concave(
|
|
318
|
-
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []
|
|
319
|
-
) -> dict[str, typing.Any]:
|
|
310
|
+
def connect_verts_concave(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
320
311
|
"""Connect Verts to form Convex Faces.Ensures all faces are convex faces.
|
|
321
312
|
|
|
322
313
|
:param bm: The bmesh to operate on.
|
|
@@ -330,12 +321,11 @@ def connect_verts_concave(
|
|
|
330
321
|
faces:
|
|
331
322
|
|
|
332
323
|
type list of (`bmesh.types.BMFace`)
|
|
333
|
-
:rtype: dict[str, typing.Any]
|
|
334
324
|
"""
|
|
335
325
|
|
|
336
326
|
def connect_verts_nonplanar(
|
|
337
327
|
bm: bmesh.types.BMesh, angle_limit: float = 0, faces: list[bmesh.types.BMFace] = []
|
|
338
|
-
)
|
|
328
|
+
):
|
|
339
329
|
"""Connect Verts Across non Planer Faces.Split faces by connecting edges along non planer faces.
|
|
340
330
|
|
|
341
331
|
:param bm: The bmesh to operate on.
|
|
@@ -351,7 +341,6 @@ def connect_verts_nonplanar(
|
|
|
351
341
|
faces:
|
|
352
342
|
|
|
353
343
|
type list of (`bmesh.types.BMFace`)
|
|
354
|
-
:rtype: dict[str, typing.Any]
|
|
355
344
|
"""
|
|
356
345
|
|
|
357
346
|
def contextual_create(
|
|
@@ -361,7 +350,7 @@ def contextual_create(
|
|
|
361
350
|
| list[bmesh.types.BMVert] = [],
|
|
362
351
|
mat_nr: int = 0,
|
|
363
352
|
use_smooth: bool = False,
|
|
364
|
-
)
|
|
353
|
+
):
|
|
365
354
|
"""Contextual Create.This is basically F-key, it creates
|
|
366
355
|
new faces from vertices, makes stuff from edge nets,
|
|
367
356
|
makes wire edges, etc. It also dissolves faces.Three verts become a triangle, four become a quad. Two
|
|
@@ -382,7 +371,6 @@ def contextual_create(
|
|
|
382
371
|
edges: newly-made edge(s)
|
|
383
372
|
|
|
384
373
|
type list of (`bmesh.types.BMEdge`)
|
|
385
|
-
:rtype: dict[str, typing.Any]
|
|
386
374
|
"""
|
|
387
375
|
|
|
388
376
|
def convex_hull(
|
|
@@ -391,7 +379,7 @@ def convex_hull(
|
|
|
391
379
|
| list[bmesh.types.BMFace]
|
|
392
380
|
| list[bmesh.types.BMVert] = [],
|
|
393
381
|
use_existing_faces: bool = False,
|
|
394
|
-
)
|
|
382
|
+
):
|
|
395
383
|
"""Convex HullBuilds a convex hull from the vertices in 'input'.If 'use_existing_faces' is true, the hull will not output triangles
|
|
396
384
|
that are covered by a pre-existing face.All hull vertices, faces, and edges are added to 'geom.out'. Any
|
|
397
385
|
input elements that end up inside the hull (i.e. are not used by an
|
|
@@ -421,7 +409,6 @@ def convex_hull(
|
|
|
421
409
|
geom_holes:
|
|
422
410
|
|
|
423
411
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
424
|
-
:rtype: dict[str, typing.Any]
|
|
425
412
|
"""
|
|
426
413
|
|
|
427
414
|
def create_circle(
|
|
@@ -433,7 +420,7 @@ def create_circle(
|
|
|
433
420
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
434
421
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
435
422
|
calc_uvs: bool = False,
|
|
436
|
-
)
|
|
423
|
+
):
|
|
437
424
|
"""Creates a Circle.
|
|
438
425
|
|
|
439
426
|
:param bm: The bmesh to operate on.
|
|
@@ -453,7 +440,6 @@ def create_circle(
|
|
|
453
440
|
:return: verts: output verts
|
|
454
441
|
|
|
455
442
|
type list of (`bmesh.types.BMVert`)
|
|
456
|
-
:rtype: dict[str, typing.Any]
|
|
457
443
|
"""
|
|
458
444
|
|
|
459
445
|
def create_cone(
|
|
@@ -467,7 +453,7 @@ def create_cone(
|
|
|
467
453
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
468
454
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
469
455
|
calc_uvs: bool = False,
|
|
470
|
-
)
|
|
456
|
+
):
|
|
471
457
|
"""Create Cone.Creates a cone with variable depth at both ends
|
|
472
458
|
|
|
473
459
|
:param bm: The bmesh to operate on.
|
|
@@ -491,7 +477,6 @@ def create_cone(
|
|
|
491
477
|
:return: verts: output verts
|
|
492
478
|
|
|
493
479
|
type list of (`bmesh.types.BMVert`)
|
|
494
|
-
:rtype: dict[str, typing.Any]
|
|
495
480
|
"""
|
|
496
481
|
|
|
497
482
|
def create_cube(
|
|
@@ -500,7 +485,7 @@ def create_cube(
|
|
|
500
485
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
501
486
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
502
487
|
calc_uvs: bool = False,
|
|
503
|
-
)
|
|
488
|
+
):
|
|
504
489
|
"""Create CubeCreates a cube.
|
|
505
490
|
|
|
506
491
|
:param bm: The bmesh to operate on.
|
|
@@ -514,7 +499,6 @@ def create_cube(
|
|
|
514
499
|
:return: verts: output verts
|
|
515
500
|
|
|
516
501
|
type list of (`bmesh.types.BMVert`)
|
|
517
|
-
:rtype: dict[str, typing.Any]
|
|
518
502
|
"""
|
|
519
503
|
|
|
520
504
|
def create_grid(
|
|
@@ -525,7 +509,7 @@ def create_grid(
|
|
|
525
509
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
526
510
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
527
511
|
calc_uvs: bool = False,
|
|
528
|
-
)
|
|
512
|
+
):
|
|
529
513
|
"""Create Grid.Creates a grid with a variable number of subdivisions
|
|
530
514
|
|
|
531
515
|
:param bm: The bmesh to operate on.
|
|
@@ -543,7 +527,6 @@ def create_grid(
|
|
|
543
527
|
:return: verts: output verts
|
|
544
528
|
|
|
545
529
|
type list of (`bmesh.types.BMVert`)
|
|
546
|
-
:rtype: dict[str, typing.Any]
|
|
547
530
|
"""
|
|
548
531
|
|
|
549
532
|
def create_icosphere(
|
|
@@ -553,7 +536,7 @@ def create_icosphere(
|
|
|
553
536
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
554
537
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
555
538
|
calc_uvs: bool = False,
|
|
556
|
-
)
|
|
539
|
+
):
|
|
557
540
|
"""Create Ico-Sphere.Creates a grid with a variable number of subdivisions
|
|
558
541
|
|
|
559
542
|
:param bm: The bmesh to operate on.
|
|
@@ -569,7 +552,6 @@ def create_icosphere(
|
|
|
569
552
|
:return: verts: output verts
|
|
570
553
|
|
|
571
554
|
type list of (`bmesh.types.BMVert`)
|
|
572
|
-
:rtype: dict[str, typing.Any]
|
|
573
555
|
"""
|
|
574
556
|
|
|
575
557
|
def create_monkey(
|
|
@@ -577,7 +559,7 @@ def create_monkey(
|
|
|
577
559
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
578
560
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
579
561
|
calc_uvs: bool = False,
|
|
580
|
-
)
|
|
562
|
+
):
|
|
581
563
|
"""Create Suzanne.Creates a monkey (standard blender primitive).
|
|
582
564
|
|
|
583
565
|
:param bm: The bmesh to operate on.
|
|
@@ -589,7 +571,6 @@ def create_monkey(
|
|
|
589
571
|
:return: verts: output verts
|
|
590
572
|
|
|
591
573
|
type list of (`bmesh.types.BMVert`)
|
|
592
|
-
:rtype: dict[str, typing.Any]
|
|
593
574
|
"""
|
|
594
575
|
|
|
595
576
|
def create_uvsphere(
|
|
@@ -600,7 +581,7 @@ def create_uvsphere(
|
|
|
600
581
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
601
582
|
| mathutils.Matrix = mathutils.Matrix.Identity(4),
|
|
602
583
|
calc_uvs: bool = False,
|
|
603
|
-
)
|
|
584
|
+
):
|
|
604
585
|
"""Create UV Sphere.Creates a grid with a variable number of subdivisions
|
|
605
586
|
|
|
606
587
|
:param bm: The bmesh to operate on.
|
|
@@ -618,13 +599,12 @@ def create_uvsphere(
|
|
|
618
599
|
:return: verts: output verts
|
|
619
600
|
|
|
620
601
|
type list of (`bmesh.types.BMVert`)
|
|
621
|
-
:rtype: dict[str, typing.Any]
|
|
622
602
|
"""
|
|
623
603
|
|
|
624
604
|
def create_vert(
|
|
625
605
|
bm: bmesh.types.BMesh,
|
|
626
606
|
co: collections.abc.Sequence[float] | mathutils.Vector = mathutils.Vector(),
|
|
627
|
-
)
|
|
607
|
+
):
|
|
628
608
|
"""Make Vertex.Creates a single vertex; this BMOP was necessary
|
|
629
609
|
for click-create-vertex.
|
|
630
610
|
|
|
@@ -635,7 +615,6 @@ def create_vert(
|
|
|
635
615
|
:return: vert: the new vert
|
|
636
616
|
|
|
637
617
|
type list of (`bmesh.types.BMVert`)
|
|
638
|
-
:rtype: dict[str, typing.Any]
|
|
639
618
|
"""
|
|
640
619
|
|
|
641
620
|
def delete(
|
|
@@ -681,7 +660,7 @@ def dissolve_edges(
|
|
|
681
660
|
edges: list[bmesh.types.BMEdge] = [],
|
|
682
661
|
use_verts: bool = False,
|
|
683
662
|
use_face_split: bool = False,
|
|
684
|
-
)
|
|
663
|
+
):
|
|
685
664
|
"""Dissolve Edges.
|
|
686
665
|
|
|
687
666
|
:param bm: The bmesh to operate on.
|
|
@@ -695,12 +674,11 @@ def dissolve_edges(
|
|
|
695
674
|
:return: region:
|
|
696
675
|
|
|
697
676
|
type list of (`bmesh.types.BMFace`)
|
|
698
|
-
:rtype: dict[str, typing.Any]
|
|
699
677
|
"""
|
|
700
678
|
|
|
701
679
|
def dissolve_faces(
|
|
702
680
|
bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = [], use_verts: bool = False
|
|
703
|
-
)
|
|
681
|
+
):
|
|
704
682
|
"""Dissolve Faces.
|
|
705
683
|
|
|
706
684
|
:param bm: The bmesh to operate on.
|
|
@@ -712,7 +690,6 @@ def dissolve_faces(
|
|
|
712
690
|
:return: region:
|
|
713
691
|
|
|
714
692
|
type list of (`bmesh.types.BMFace`)
|
|
715
|
-
:rtype: dict[str, typing.Any]
|
|
716
693
|
"""
|
|
717
694
|
|
|
718
695
|
def dissolve_limit(
|
|
@@ -722,7 +699,7 @@ def dissolve_limit(
|
|
|
722
699
|
verts: list[bmesh.types.BMVert] = [],
|
|
723
700
|
edges: list[bmesh.types.BMEdge] = [],
|
|
724
701
|
delimit=set(),
|
|
725
|
-
)
|
|
702
|
+
):
|
|
726
703
|
"""Limited Dissolve.Dissolve planar faces and co-linear edges.
|
|
727
704
|
|
|
728
705
|
:param bm: The bmesh to operate on.
|
|
@@ -739,7 +716,6 @@ def dissolve_limit(
|
|
|
739
716
|
:return: region:
|
|
740
717
|
|
|
741
718
|
type list of (`bmesh.types.BMFace`)
|
|
742
|
-
:rtype: dict[str, typing.Any]
|
|
743
719
|
"""
|
|
744
720
|
|
|
745
721
|
def dissolve_verts(
|
|
@@ -768,7 +744,7 @@ def duplicate(
|
|
|
768
744
|
dest: bmesh.types.BMesh | None = None,
|
|
769
745
|
use_select_history: bool = False,
|
|
770
746
|
use_edge_flip_from_face: bool = False,
|
|
771
|
-
)
|
|
747
|
+
):
|
|
772
748
|
"""Duplicate Geometry.Utility operator to duplicate geometry,
|
|
773
749
|
optionally into a destination mesh.
|
|
774
750
|
|
|
@@ -809,7 +785,6 @@ def duplicate(
|
|
|
809
785
|
isovert_map:
|
|
810
786
|
|
|
811
787
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
812
|
-
:rtype: dict[str, typing.Any]
|
|
813
788
|
"""
|
|
814
789
|
|
|
815
790
|
def edgeloop_fill(
|
|
@@ -817,7 +792,7 @@ def edgeloop_fill(
|
|
|
817
792
|
edges: list[bmesh.types.BMEdge] = [],
|
|
818
793
|
mat_nr: int = 0,
|
|
819
794
|
use_smooth: bool = False,
|
|
820
|
-
)
|
|
795
|
+
):
|
|
821
796
|
"""Edge Loop Fill.Create faces defined by one or more non overlapping edge loops.
|
|
822
797
|
|
|
823
798
|
:param bm: The bmesh to operate on.
|
|
@@ -831,7 +806,6 @@ def edgeloop_fill(
|
|
|
831
806
|
:return: faces: new faces
|
|
832
807
|
|
|
833
808
|
type list of (`bmesh.types.BMFace`)
|
|
834
|
-
:rtype: dict[str, typing.Any]
|
|
835
809
|
"""
|
|
836
810
|
|
|
837
811
|
def edgenet_fill(
|
|
@@ -840,7 +814,7 @@ def edgenet_fill(
|
|
|
840
814
|
mat_nr: int = 0,
|
|
841
815
|
use_smooth: bool = False,
|
|
842
816
|
sides: int = 0,
|
|
843
|
-
)
|
|
817
|
+
):
|
|
844
818
|
"""Edge Net Fill.Create faces defined by enclosed edges.
|
|
845
819
|
|
|
846
820
|
:param bm: The bmesh to operate on.
|
|
@@ -856,12 +830,9 @@ def edgenet_fill(
|
|
|
856
830
|
:return: faces: new faces
|
|
857
831
|
|
|
858
832
|
type list of (`bmesh.types.BMFace`)
|
|
859
|
-
:rtype: dict[str, typing.Any]
|
|
860
833
|
"""
|
|
861
834
|
|
|
862
|
-
def edgenet_prepare(
|
|
863
|
-
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []
|
|
864
|
-
) -> dict[str, typing.Any]:
|
|
835
|
+
def edgenet_prepare(bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = []):
|
|
865
836
|
"""Edge-net Prepare.Identifies several useful edge loop cases and modifies them so
|
|
866
837
|
they'll become a face when edgenet_fill is called. The cases covered are:
|
|
867
838
|
|
|
@@ -872,7 +843,6 @@ def edgenet_prepare(
|
|
|
872
843
|
:return: edges: new edges
|
|
873
844
|
|
|
874
845
|
type list of (`bmesh.types.BMEdge`)
|
|
875
|
-
:rtype: dict[str, typing.Any]
|
|
876
846
|
"""
|
|
877
847
|
|
|
878
848
|
def extrude_discrete_faces(
|
|
@@ -880,7 +850,7 @@ def extrude_discrete_faces(
|
|
|
880
850
|
faces: list[bmesh.types.BMFace] = [],
|
|
881
851
|
use_normal_flip: bool = False,
|
|
882
852
|
use_select_history: bool = False,
|
|
883
|
-
)
|
|
853
|
+
):
|
|
884
854
|
"""Individual Face Extrude.Extrudes faces individually.
|
|
885
855
|
|
|
886
856
|
:param bm: The bmesh to operate on.
|
|
@@ -894,7 +864,6 @@ def extrude_discrete_faces(
|
|
|
894
864
|
:return: faces: output faces
|
|
895
865
|
|
|
896
866
|
type list of (`bmesh.types.BMFace`)
|
|
897
|
-
:rtype: dict[str, typing.Any]
|
|
898
867
|
"""
|
|
899
868
|
|
|
900
869
|
def extrude_edge_only(
|
|
@@ -902,7 +871,7 @@ def extrude_edge_only(
|
|
|
902
871
|
edges: list[bmesh.types.BMEdge] = [],
|
|
903
872
|
use_normal_flip: bool = False,
|
|
904
873
|
use_select_history: bool = False,
|
|
905
|
-
)
|
|
874
|
+
):
|
|
906
875
|
"""Extrude Only Edges.Extrudes Edges into faces, note that this is very simple, there's no fancy
|
|
907
876
|
winged extrusion.
|
|
908
877
|
|
|
@@ -917,7 +886,6 @@ def extrude_edge_only(
|
|
|
917
886
|
:return: geom: output geometry
|
|
918
887
|
|
|
919
888
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
920
|
-
:rtype: dict[str, typing.Any]
|
|
921
889
|
"""
|
|
922
890
|
|
|
923
891
|
def extrude_face_region(
|
|
@@ -931,7 +899,7 @@ def extrude_face_region(
|
|
|
931
899
|
use_normal_from_adjacent: bool = False,
|
|
932
900
|
use_dissolve_ortho_edges: bool = False,
|
|
933
901
|
use_select_history: bool = False,
|
|
934
|
-
)
|
|
902
|
+
):
|
|
935
903
|
"""Extrude Faces.Extrude operator (does not transform)
|
|
936
904
|
|
|
937
905
|
:param bm: The bmesh to operate on.
|
|
@@ -952,14 +920,13 @@ def extrude_face_region(
|
|
|
952
920
|
:return: geom:
|
|
953
921
|
|
|
954
922
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
955
|
-
:rtype: dict[str, typing.Any]
|
|
956
923
|
"""
|
|
957
924
|
|
|
958
925
|
def extrude_vert_indiv(
|
|
959
926
|
bm: bmesh.types.BMesh,
|
|
960
927
|
verts: list[bmesh.types.BMVert] = [],
|
|
961
928
|
use_select_history: bool = False,
|
|
962
|
-
)
|
|
929
|
+
):
|
|
963
930
|
"""Individual Vertex Extrude.Extrudes wire edges from vertices.
|
|
964
931
|
|
|
965
932
|
:param bm: The bmesh to operate on.
|
|
@@ -975,7 +942,6 @@ def extrude_vert_indiv(
|
|
|
975
942
|
verts: output vertices
|
|
976
943
|
|
|
977
944
|
type list of (`bmesh.types.BMVert`)
|
|
978
|
-
:rtype: dict[str, typing.Any]
|
|
979
945
|
"""
|
|
980
946
|
|
|
981
947
|
def face_attribute_fill(
|
|
@@ -983,7 +949,7 @@ def face_attribute_fill(
|
|
|
983
949
|
faces: list[bmesh.types.BMFace] = [],
|
|
984
950
|
use_normals: bool = False,
|
|
985
951
|
use_data: bool = False,
|
|
986
|
-
)
|
|
952
|
+
):
|
|
987
953
|
"""Face Attribute Fill.Fill in faces with data from adjacent faces.
|
|
988
954
|
|
|
989
955
|
:param bm: The bmesh to operate on.
|
|
@@ -997,7 +963,6 @@ def face_attribute_fill(
|
|
|
997
963
|
:return: faces_fail: faces that could not be handled
|
|
998
964
|
|
|
999
965
|
type list of (`bmesh.types.BMFace`)
|
|
1000
|
-
:rtype: dict[str, typing.Any]
|
|
1001
966
|
"""
|
|
1002
967
|
|
|
1003
968
|
def find_doubles(
|
|
@@ -1005,7 +970,7 @@ def find_doubles(
|
|
|
1005
970
|
verts: list[bmesh.types.BMVert] = [],
|
|
1006
971
|
keep_verts: list[bmesh.types.BMVert] = [],
|
|
1007
972
|
dist: float = 0,
|
|
1008
|
-
)
|
|
973
|
+
):
|
|
1009
974
|
"""Find Doubles.Takes input verts and find vertices they should weld to.
|
|
1010
975
|
Outputs a mapping slot suitable for use with the weld verts BMOP.If keep_verts is used, vertices outside that set can only be merged
|
|
1011
976
|
with vertices in that set.
|
|
@@ -1021,7 +986,6 @@ def find_doubles(
|
|
|
1021
986
|
:return: targetmap:
|
|
1022
987
|
|
|
1023
988
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1024
|
-
:rtype: dict[str, typing.Any]
|
|
1025
989
|
"""
|
|
1026
990
|
|
|
1027
991
|
def flip_quad_tessellation(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
@@ -1039,7 +1003,7 @@ def grid_fill(
|
|
|
1039
1003
|
mat_nr: int = 0,
|
|
1040
1004
|
use_smooth: bool = False,
|
|
1041
1005
|
use_interp_simple: bool = False,
|
|
1042
|
-
)
|
|
1006
|
+
):
|
|
1043
1007
|
"""Grid Fill.Create faces defined by 2 disconnected edge loops (which share edges).
|
|
1044
1008
|
|
|
1045
1009
|
:param bm: The bmesh to operate on.
|
|
@@ -1055,12 +1019,11 @@ def grid_fill(
|
|
|
1055
1019
|
:return: faces: new faces
|
|
1056
1020
|
|
|
1057
1021
|
type list of (`bmesh.types.BMFace`)
|
|
1058
|
-
:rtype: dict[str, typing.Any]
|
|
1059
1022
|
"""
|
|
1060
1023
|
|
|
1061
1024
|
def holes_fill(
|
|
1062
1025
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], sides: int = 0
|
|
1063
|
-
)
|
|
1026
|
+
):
|
|
1064
1027
|
"""Fill Holes.Fill boundary edges with faces, copying surrounding customdata.
|
|
1065
1028
|
|
|
1066
1029
|
:param bm: The bmesh to operate on.
|
|
@@ -1072,7 +1035,6 @@ def holes_fill(
|
|
|
1072
1035
|
:return: faces: new faces
|
|
1073
1036
|
|
|
1074
1037
|
type list of (`bmesh.types.BMFace`)
|
|
1075
|
-
:rtype: dict[str, typing.Any]
|
|
1076
1038
|
"""
|
|
1077
1039
|
|
|
1078
1040
|
def inset_individual(
|
|
@@ -1083,7 +1045,7 @@ def inset_individual(
|
|
|
1083
1045
|
use_even_offset: bool = False,
|
|
1084
1046
|
use_interpolate: bool = False,
|
|
1085
1047
|
use_relative_offset: bool = False,
|
|
1086
|
-
)
|
|
1048
|
+
):
|
|
1087
1049
|
"""Face Inset (Individual).Insets individual faces.
|
|
1088
1050
|
|
|
1089
1051
|
:param bm: The bmesh to operate on.
|
|
@@ -1103,7 +1065,6 @@ def inset_individual(
|
|
|
1103
1065
|
:return: faces: output faces
|
|
1104
1066
|
|
|
1105
1067
|
type list of (`bmesh.types.BMFace`)
|
|
1106
|
-
:rtype: dict[str, typing.Any]
|
|
1107
1068
|
"""
|
|
1108
1069
|
|
|
1109
1070
|
def inset_region(
|
|
@@ -1118,7 +1079,7 @@ def inset_region(
|
|
|
1118
1079
|
thickness: float = 0,
|
|
1119
1080
|
depth: float = 0,
|
|
1120
1081
|
use_outset: bool = False,
|
|
1121
|
-
)
|
|
1082
|
+
):
|
|
1122
1083
|
"""Face Inset (Regions).Inset or outset face regions.
|
|
1123
1084
|
|
|
1124
1085
|
:param bm: The bmesh to operate on.
|
|
@@ -1146,7 +1107,6 @@ def inset_region(
|
|
|
1146
1107
|
:return: faces: output faces
|
|
1147
1108
|
|
|
1148
1109
|
type list of (`bmesh.types.BMFace`)
|
|
1149
|
-
:rtype: dict[str, typing.Any]
|
|
1150
1110
|
"""
|
|
1151
1111
|
|
|
1152
1112
|
def join_triangles(
|
|
@@ -1163,7 +1123,7 @@ def join_triangles(
|
|
|
1163
1123
|
deselect_joined: bool = False,
|
|
1164
1124
|
merge_limit: int = 0,
|
|
1165
1125
|
neighbor_debug: int = 0,
|
|
1166
|
-
)
|
|
1126
|
+
):
|
|
1167
1127
|
"""Join Triangles.Tries to intelligently join triangles according
|
|
1168
1128
|
to angle threshold and delimiters.
|
|
1169
1129
|
|
|
@@ -1196,7 +1156,6 @@ def join_triangles(
|
|
|
1196
1156
|
:return: faces: joined faces
|
|
1197
1157
|
|
|
1198
1158
|
type list of (`bmesh.types.BMFace`)
|
|
1199
|
-
:rtype: dict[str, typing.Any]
|
|
1200
1159
|
"""
|
|
1201
1160
|
|
|
1202
1161
|
def mesh_to_bmesh(
|
|
@@ -1231,7 +1190,7 @@ def mirror(
|
|
|
1231
1190
|
mirror_v: bool = False,
|
|
1232
1191
|
mirror_udim: bool = False,
|
|
1233
1192
|
use_shapekey: bool = False,
|
|
1234
|
-
)
|
|
1193
|
+
):
|
|
1235
1194
|
"""Mirror.Mirrors geometry along an axis. The resulting geometry is welded on using
|
|
1236
1195
|
merge_dist. Pairs of original/mirrored vertices are welded using the merge_dist
|
|
1237
1196
|
parameter (which defines the minimum distance for welding to happen).
|
|
@@ -1257,7 +1216,6 @@ def mirror(
|
|
|
1257
1216
|
:return: geom: output geometry, mirrored
|
|
1258
1217
|
|
|
1259
1218
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1260
|
-
:rtype: dict[str, typing.Any]
|
|
1261
1219
|
"""
|
|
1262
1220
|
|
|
1263
1221
|
def object_load_bmesh(
|
|
@@ -1278,7 +1236,7 @@ def offset_edgeloops(
|
|
|
1278
1236
|
bm: bmesh.types.BMesh,
|
|
1279
1237
|
edges: list[bmesh.types.BMEdge] = [],
|
|
1280
1238
|
use_cap_endpoint: bool = False,
|
|
1281
|
-
)
|
|
1239
|
+
):
|
|
1282
1240
|
"""Edge-loop Offset.Creates edge loops based on simple edge-outset method.
|
|
1283
1241
|
|
|
1284
1242
|
:param bm: The bmesh to operate on.
|
|
@@ -1290,7 +1248,6 @@ def offset_edgeloops(
|
|
|
1290
1248
|
:return: edges: output edges
|
|
1291
1249
|
|
|
1292
1250
|
type list of (`bmesh.types.BMEdge`)
|
|
1293
|
-
:rtype: dict[str, typing.Any]
|
|
1294
1251
|
"""
|
|
1295
1252
|
|
|
1296
1253
|
def planar_faces(
|
|
@@ -1298,7 +1255,7 @@ def planar_faces(
|
|
|
1298
1255
|
faces: list[bmesh.types.BMFace] = [],
|
|
1299
1256
|
iterations: int = 0,
|
|
1300
1257
|
factor: float = 0,
|
|
1301
|
-
)
|
|
1258
|
+
):
|
|
1302
1259
|
"""Planar Faces.Iteratively flatten faces.
|
|
1303
1260
|
|
|
1304
1261
|
:param bm: The bmesh to operate on.
|
|
@@ -1312,7 +1269,6 @@ def planar_faces(
|
|
|
1312
1269
|
:return: geom: output slot, computed boundary geometry.
|
|
1313
1270
|
|
|
1314
1271
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1315
|
-
:rtype: dict[str, typing.Any]
|
|
1316
1272
|
"""
|
|
1317
1273
|
|
|
1318
1274
|
def pointmerge(
|
|
@@ -1351,7 +1307,7 @@ def poke(
|
|
|
1351
1307
|
offset: float = 0,
|
|
1352
1308
|
center_mode: typing.Literal["MEAN_WEIGHTED", "MEAN", "BOUNDS"] = "MEAN_WEIGHTED",
|
|
1353
1309
|
use_relative_offset: bool = False,
|
|
1354
|
-
)
|
|
1310
|
+
):
|
|
1355
1311
|
"""Pokes a face.Splits a face into a triangle fan.
|
|
1356
1312
|
|
|
1357
1313
|
:param bm: The bmesh to operate on.
|
|
@@ -1371,7 +1327,6 @@ def poke(
|
|
|
1371
1327
|
faces: output faces
|
|
1372
1328
|
|
|
1373
1329
|
type list of (`bmesh.types.BMFace`)
|
|
1374
|
-
:rtype: dict[str, typing.Any]
|
|
1375
1330
|
"""
|
|
1376
1331
|
|
|
1377
1332
|
def recalc_face_normals(bm: bmesh.types.BMesh, faces: list[bmesh.types.BMFace] = []):
|
|
@@ -1391,7 +1346,7 @@ def region_extend(
|
|
|
1391
1346
|
use_contract: bool = False,
|
|
1392
1347
|
use_faces: bool = False,
|
|
1393
1348
|
use_face_step: bool = False,
|
|
1394
|
-
)
|
|
1349
|
+
):
|
|
1395
1350
|
"""Region Extend.used to implement the select more/less tools.
|
|
1396
1351
|
this puts some geometry surrounding regions of
|
|
1397
1352
|
geometry in geom into geom.out.if use_faces is 0 then geom.out spits out verts and edges,
|
|
@@ -1410,7 +1365,6 @@ def region_extend(
|
|
|
1410
1365
|
:return: geom: output slot, computed boundary geometry.
|
|
1411
1366
|
|
|
1412
1367
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1413
|
-
:rtype: dict[str, typing.Any]
|
|
1414
1368
|
"""
|
|
1415
1369
|
|
|
1416
1370
|
def remove_doubles(
|
|
@@ -1511,7 +1465,7 @@ def rotate_colors(
|
|
|
1511
1465
|
|
|
1512
1466
|
def rotate_edges(
|
|
1513
1467
|
bm: bmesh.types.BMesh, edges: list[bmesh.types.BMEdge] = [], use_ccw: bool = False
|
|
1514
|
-
)
|
|
1468
|
+
):
|
|
1515
1469
|
"""Edge Rotate.Rotates edges topologically. Also known as "spin edge" to some people.
|
|
1516
1470
|
Simple example: [/] becomes [|] then [].
|
|
1517
1471
|
|
|
@@ -1524,7 +1478,6 @@ def rotate_edges(
|
|
|
1524
1478
|
:return: edges: newly spun edges
|
|
1525
1479
|
|
|
1526
1480
|
type list of (`bmesh.types.BMEdge`)
|
|
1527
|
-
:rtype: dict[str, typing.Any]
|
|
1528
1481
|
"""
|
|
1529
1482
|
|
|
1530
1483
|
def rotate_uvs(
|
|
@@ -1635,7 +1588,7 @@ def solidify(
|
|
|
1635
1588
|
| list[bmesh.types.BMFace]
|
|
1636
1589
|
| list[bmesh.types.BMVert] = [],
|
|
1637
1590
|
thickness: float = 0,
|
|
1638
|
-
)
|
|
1591
|
+
):
|
|
1639
1592
|
"""Solidify.Turns a mesh into a shell with thickness
|
|
1640
1593
|
|
|
1641
1594
|
:param bm: The bmesh to operate on.
|
|
@@ -1647,7 +1600,6 @@ def solidify(
|
|
|
1647
1600
|
:return: geom:
|
|
1648
1601
|
|
|
1649
1602
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1650
|
-
:rtype: dict[str, typing.Any]
|
|
1651
1603
|
"""
|
|
1652
1604
|
|
|
1653
1605
|
def spin(
|
|
@@ -1665,7 +1617,7 @@ def spin(
|
|
|
1665
1617
|
use_merge: bool = False,
|
|
1666
1618
|
use_normal_flip: bool = False,
|
|
1667
1619
|
use_duplicate: bool = False,
|
|
1668
|
-
)
|
|
1620
|
+
):
|
|
1669
1621
|
"""Spin.Extrude or duplicate geometry a number of times,
|
|
1670
1622
|
rotating and possibly translating after each step
|
|
1671
1623
|
|
|
@@ -1694,7 +1646,6 @@ def spin(
|
|
|
1694
1646
|
:return: geom_last: result of last step
|
|
1695
1647
|
|
|
1696
1648
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1697
|
-
:rtype: dict[str, typing.Any]
|
|
1698
1649
|
"""
|
|
1699
1650
|
|
|
1700
1651
|
def split(
|
|
@@ -1704,7 +1655,7 @@ def split(
|
|
|
1704
1655
|
| list[bmesh.types.BMVert] = [],
|
|
1705
1656
|
dest: bmesh.types.BMesh | None = None,
|
|
1706
1657
|
use_only_faces: bool = False,
|
|
1707
|
-
)
|
|
1658
|
+
):
|
|
1708
1659
|
"""Split Off Geometry.Disconnect geometry from adjacent edges and faces,
|
|
1709
1660
|
optionally into a destination mesh.
|
|
1710
1661
|
|
|
@@ -1727,7 +1678,6 @@ def split(
|
|
|
1727
1678
|
isovert_map:
|
|
1728
1679
|
|
|
1729
1680
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1730
|
-
:rtype: dict[str, typing.Any]
|
|
1731
1681
|
"""
|
|
1732
1682
|
|
|
1733
1683
|
def split_edges(
|
|
@@ -1735,7 +1685,7 @@ def split_edges(
|
|
|
1735
1685
|
edges: list[bmesh.types.BMEdge] = [],
|
|
1736
1686
|
verts: list[bmesh.types.BMVert] = [],
|
|
1737
1687
|
use_verts: bool = False,
|
|
1738
|
-
)
|
|
1688
|
+
):
|
|
1739
1689
|
"""Edge Split.Disconnects faces along input edges.
|
|
1740
1690
|
|
|
1741
1691
|
:param bm: The bmesh to operate on.
|
|
@@ -1749,7 +1699,6 @@ def split_edges(
|
|
|
1749
1699
|
:return: edges: old output disconnected edges
|
|
1750
1700
|
|
|
1751
1701
|
type list of (`bmesh.types.BMEdge`)
|
|
1752
|
-
:rtype: dict[str, typing.Any]
|
|
1753
1702
|
"""
|
|
1754
1703
|
|
|
1755
1704
|
def subdivide_edgering(
|
|
@@ -1762,7 +1711,7 @@ def subdivide_edgering(
|
|
|
1762
1711
|
"SMOOTH", "SPHERE", "ROOT", "SHARP", "LINEAR", "INVERSE_SQUARE"
|
|
1763
1712
|
] = "SMOOTH",
|
|
1764
1713
|
profile_shape_factor: float = 0,
|
|
1765
|
-
)
|
|
1714
|
+
):
|
|
1766
1715
|
"""Subdivide Edge-Ring.Take an edge-ring, and subdivide with interpolation options.
|
|
1767
1716
|
|
|
1768
1717
|
:param bm: The bmesh to operate on.
|
|
@@ -1782,7 +1731,6 @@ def subdivide_edgering(
|
|
|
1782
1731
|
:return: faces: output faces
|
|
1783
1732
|
|
|
1784
1733
|
type list of (`bmesh.types.BMFace`)
|
|
1785
|
-
:rtype: dict[str, typing.Any]
|
|
1786
1734
|
"""
|
|
1787
1735
|
|
|
1788
1736
|
def subdivide_edges(
|
|
@@ -1806,7 +1754,7 @@ def subdivide_edges(
|
|
|
1806
1754
|
use_only_quads: bool = False,
|
|
1807
1755
|
use_sphere: bool = False,
|
|
1808
1756
|
use_smooth_even: bool = False,
|
|
1809
|
-
)
|
|
1757
|
+
):
|
|
1810
1758
|
"""Subdivide Edges.Advanced operator for subdividing edges
|
|
1811
1759
|
with options for face patterns, smoothing and randomization.
|
|
1812
1760
|
|
|
@@ -1851,7 +1799,6 @@ def subdivide_edges(
|
|
|
1851
1799
|
geom: contains all output geometry
|
|
1852
1800
|
|
|
1853
1801
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1854
|
-
:rtype: dict[str, typing.Any]
|
|
1855
1802
|
"""
|
|
1856
1803
|
|
|
1857
1804
|
def symmetrize(
|
|
@@ -1862,7 +1809,7 @@ def symmetrize(
|
|
|
1862
1809
|
direction: typing.Literal["-X", "-Y", "-Z", "X", "Y", "Z"] = "-X",
|
|
1863
1810
|
dist: float = 0,
|
|
1864
1811
|
use_shapekey: bool = False,
|
|
1865
|
-
)
|
|
1812
|
+
):
|
|
1866
1813
|
"""Symmetrize.Makes the mesh elements in the "input" slot symmetrical. Unlike
|
|
1867
1814
|
normal mirroring, it only copies in one direction, as specified by
|
|
1868
1815
|
the "direction" slot. The edges and faces that cross the plane of
|
|
@@ -1881,7 +1828,6 @@ def symmetrize(
|
|
|
1881
1828
|
:return: geom:
|
|
1882
1829
|
|
|
1883
1830
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1884
|
-
:rtype: dict[str, typing.Any]
|
|
1885
1831
|
"""
|
|
1886
1832
|
|
|
1887
1833
|
def transform(
|
|
@@ -1936,7 +1882,7 @@ def triangle_fill(
|
|
|
1936
1882
|
use_dissolve: bool = False,
|
|
1937
1883
|
edges: list[bmesh.types.BMEdge] = [],
|
|
1938
1884
|
normal: collections.abc.Sequence[float] | mathutils.Vector = mathutils.Vector(),
|
|
1939
|
-
)
|
|
1885
|
+
):
|
|
1940
1886
|
"""Triangle Fill.Fill edges with triangles
|
|
1941
1887
|
|
|
1942
1888
|
:param bm: The bmesh to operate on.
|
|
@@ -1952,7 +1898,6 @@ def triangle_fill(
|
|
|
1952
1898
|
:return: geom: new faces and edges
|
|
1953
1899
|
|
|
1954
1900
|
type list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)
|
|
1955
|
-
:rtype: dict[str, typing.Any]
|
|
1956
1901
|
"""
|
|
1957
1902
|
|
|
1958
1903
|
def triangulate(
|
|
@@ -1962,7 +1907,7 @@ def triangulate(
|
|
|
1962
1907
|
"BEAUTY", "FIXED", "ALTERNATE", "SHORT_EDGE", "LONG_EDGE"
|
|
1963
1908
|
] = "BEAUTY",
|
|
1964
1909
|
ngon_method: typing.Literal["BEAUTY", "EAR_CLIP"] = "BEAUTY",
|
|
1965
|
-
)
|
|
1910
|
+
):
|
|
1966
1911
|
"""Triangulate.
|
|
1967
1912
|
|
|
1968
1913
|
:param bm: The bmesh to operate on.
|
|
@@ -1988,7 +1933,6 @@ def triangulate(
|
|
|
1988
1933
|
face_map_double: duplicate faces
|
|
1989
1934
|
|
|
1990
1935
|
type dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
|
|
1991
|
-
:rtype: dict[str, typing.Any]
|
|
1992
1936
|
"""
|
|
1993
1937
|
|
|
1994
1938
|
def unsubdivide(
|
|
@@ -2026,7 +1970,7 @@ def wireframe(
|
|
|
2026
1970
|
crease_weight: float = 0,
|
|
2027
1971
|
use_relative_offset: bool = False,
|
|
2028
1972
|
material_offset: int = 0,
|
|
2029
|
-
)
|
|
1973
|
+
):
|
|
2030
1974
|
"""Wire Frame.Makes a wire-frame copy of faces.
|
|
2031
1975
|
|
|
2032
1976
|
:param bm: The bmesh to operate on.
|
|
@@ -2054,5 +1998,4 @@ def wireframe(
|
|
|
2054
1998
|
:return: faces: output faces
|
|
2055
1999
|
|
|
2056
2000
|
type list of (`bmesh.types.BMFace`)
|
|
2057
|
-
:rtype: dict[str, typing.Any]
|
|
2058
2001
|
"""
|
bpy/types/__init__.pyi
CHANGED
|
@@ -156165,7 +156165,7 @@ class Gizmo(bpy_struct):
|
|
|
156165
156165
|
matrix: collections.abc.Sequence[collections.abc.Sequence[float]]
|
|
156166
156166
|
| mathutils.Matrix
|
|
156167
156167
|
| None = None,
|
|
156168
|
-
select_id=None,
|
|
156168
|
+
select_id: int | None = None,
|
|
156169
156169
|
):
|
|
156170
156170
|
"""Draw a shape created form `Gizmo.draw_custom_shape`.
|
|
156171
156171
|
|
|
@@ -156174,6 +156174,7 @@ class Gizmo(bpy_struct):
|
|
|
156174
156174
|
:type matrix: collections.abc.Sequence[collections.abc.Sequence[float]] | mathutils.Matrix | None
|
|
156175
156175
|
:param select_id: The selection id.
|
|
156176
156176
|
Only use when drawing within `Gizmo.draw_select`.
|
|
156177
|
+
:type select_id: int | None
|
|
156177
156178
|
"""
|
|
156178
156179
|
|
|
156179
156180
|
@staticmethod
|
|
@@ -184769,7 +184770,7 @@ class Operator(bpy_struct):
|
|
|
184769
184770
|
""" The name of a property to use as this operators primary property.
|
|
184770
184771
|
Currently this is only used to select the default property when
|
|
184771
184772
|
expanding an operator into a menu.
|
|
184772
|
-
:type:
|
|
184773
|
+
:type: str"""
|
|
184773
184774
|
|
|
184774
184775
|
is_registered: bool
|
|
184775
184776
|
"""
|
|
@@ -74,6 +74,7 @@ def bake_action(
|
|
|
74
74
|
to be created.
|
|
75
75
|
:type action: bpy.types.Action | None
|
|
76
76
|
:param frames: Frames to bake.
|
|
77
|
+
:param bake_options: Options for baking.
|
|
77
78
|
:return: an action or None
|
|
78
79
|
:rtype: bpy.types.Action
|
|
79
80
|
"""
|
|
@@ -99,6 +100,7 @@ def bake_action_objects(
|
|
|
99
100
|
"""A version of `bake_action_objects_iter` that takes frames and returns the output.
|
|
100
101
|
|
|
101
102
|
:param frames: Frames to bake.
|
|
103
|
+
:param bake_options: Options for baking.
|
|
102
104
|
:return: A sequence of Action or None types (aligned with object_action_pairs)
|
|
103
105
|
:rtype: list[bpy.types.Action]
|
|
104
106
|
"""
|
|
@@ -108,4 +110,5 @@ def bake_action_objects_iter(object_action_pairs, bake_options):
|
|
|
108
110
|
|
|
109
111
|
:param object_action_pairs: Sequence of object action tuples,
|
|
110
112
|
action is the destination for the baked data. When None a new action will be created.
|
|
113
|
+
:param bake_options: Options for baking.
|
|
111
114
|
"""
|
|
@@ -185,7 +185,7 @@ blf/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
185
185
|
bmesh/__init__.pyi,sha256=6QP0wBMiFIY5MtM1Yuw4Qj2ZPtEZHFUdAf1ay4z-SQE,1500
|
|
186
186
|
bmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
187
|
bmesh/geometry/__init__.pyi,sha256=fgGEevkhB2IEtja2X5rm6OQU5EoDfkPaqiKeNGfWZ6c,656
|
|
188
|
-
bmesh/ops/__init__.pyi,sha256=
|
|
188
|
+
bmesh/ops/__init__.pyi,sha256=2g2v8SvrQSXdMYnHnvmvF8KXoHLvEfVTU9dQMhLVoRY,71350
|
|
189
189
|
bmesh/types/__init__.pyi,sha256=ZcQqNXia8c1gCbz05ZNHD-eGC5RvtC0NGWVyc_r1RmI,42419
|
|
190
190
|
bmesh/utils/__init__.pyi,sha256=NNWqLeAWiafZZa8o7QayCBvpJDkDHTspRk7ZHws83MY,6009
|
|
191
191
|
bpy/__init__.pyi,sha256=dozab_KhjTikiJAE59kzHS9tbX9OJc8U1vPdj6gNFJY,502
|
|
@@ -275,14 +275,14 @@ bpy/ops/workspace/__init__.pyi,sha256=4qG0-HkVfaGfdBe9QvBCKUox03nb1ZfeV1fz-0b3KJ
|
|
|
275
275
|
bpy/ops/world/__init__.pyi,sha256=ytaDhwJ-K4SbWylChL1za6lvMNM2-RX1S0BR7892Afg,946
|
|
276
276
|
bpy/path/__init__.pyi,sha256=lXSqQ4p4zukM_-6TaN4v7lNWFVY0xbYGMkOVLpkbpsI,5444
|
|
277
277
|
bpy/props/__init__.pyi,sha256=eVVh1KTFtNf6c-4uSWt4wANzTv1RvN2I2FQ7ewdrKCQ,31045
|
|
278
|
-
bpy/types/__init__.pyi,sha256=
|
|
278
|
+
bpy/types/__init__.pyi,sha256=jQqvUV3iD_dBqQiHBa2wqad1w40Dx5Lie7GkUQGEai0,5367019
|
|
279
279
|
bpy/typing/__init__.pyi,sha256=cQWf5y7fGG52KM_nXbabxyJ3ZnodweLz91nB4tvqBTU,138751
|
|
280
280
|
bpy/utils/__init__.pyi,sha256=AEb3oVPPh_gqLyKORj6rsxDPWvXIHjqp_eME3z98GcM,13117
|
|
281
281
|
bpy/utils/previews/__init__.pyi,sha256=AsbDN4vRLbSTZ7_S_4LqmI1sJmV_8NnqDt1QfBdH94Y,2280
|
|
282
282
|
bpy/utils/units/__init__.pyi,sha256=r9G6UXferw_5pDijn-FmpyhYSnEng3_y-5apdkPAKl0,2631
|
|
283
283
|
bpy_extras/__init__.pyi,sha256=wejK55NeAEGsAzM9psNhBokX9H0DBihwOdNQ5XlCHB4,968
|
|
284
284
|
bpy_extras/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
285
|
-
bpy_extras/anim_utils/__init__.pyi,sha256=
|
|
285
|
+
bpy_extras/anim_utils/__init__.pyi,sha256=I2z_QX6Ui0nv_DU-WqhObV9YbBXoK4t4mICgzZkbSdM,4127
|
|
286
286
|
bpy_extras/asset_utils/__init__.pyi,sha256=UVqJmdeah5Uca5VTLpU43l5xIzQf4RGfcXdiQ9AmX6g,584
|
|
287
287
|
bpy_extras/bmesh_utils/__init__.pyi,sha256=pWG_zUbIv6IX_M7ofADU5HRsVyfKZAzHEs_V4-kNDDg,456
|
|
288
288
|
bpy_extras/id_map_utils/__init__.pyi,sha256=oTM7UGvrLRIhWXjHhXcwE20PNjSyRVXlV9FLAn_QCk4,450
|
|
@@ -341,8 +341,8 @@ keyingsets_utils/__init__.pyi,sha256=UpGuAqOVl6bmy3rffJhqFS8ZKhUtAV-MfVyuuHtqXQI
|
|
|
341
341
|
keyingsets_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
342
342
|
mathutils/__init__.pyi,sha256=DTc7zopoUnsu1MLtwj1pGyCLkjcRl2gSOIEybbdaduY,87840
|
|
343
343
|
mathutils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
344
|
-
mathutils/bvhtree/__init__.pyi,sha256=
|
|
345
|
-
mathutils/geometry/__init__.pyi,sha256
|
|
344
|
+
mathutils/bvhtree/__init__.pyi,sha256=qSfUPK99zcTgIDby1Ho-TVclJ415RyUX1_2UOUdGX3s,4265
|
|
345
|
+
mathutils/geometry/__init__.pyi,sha256=a-FJ_0dgkKT3691RIZKHQaJ3QeTY7Df5YOhHPK3QBBo,21031
|
|
346
346
|
mathutils/interpolate/__init__.pyi,sha256=x188jmqs_-ENmPvv6GYFqIkrRBinH4EA4I_tBUrPdwg,301
|
|
347
347
|
mathutils/kdtree/__init__.pyi,sha256=I2OMghDtlqfL-7G1Fp1bv6FAwztOls389pOzGhYpsvk,2183
|
|
348
348
|
mathutils/noise/__init__.pyi,sha256=YjVyhOr2LpaOINyz6s2werSFOJFT8gH2hcZRg2VTVTo,12626
|
|
@@ -358,7 +358,7 @@ rna_prop_ui/__init__.pyi,sha256=lShhkbbeJ_ANi2dy4J4HIkyp1HZrMqCfhcf8QpAQsj0,1281
|
|
|
358
358
|
rna_prop_ui/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
359
359
|
rna_xml/__init__.pyi,sha256=idYsAZj-_egBKMA2pQl2P9IoNhZxXIkBSALFuq-ylO8,577
|
|
360
360
|
rna_xml/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
361
|
-
fake_bpy_module-
|
|
362
|
-
fake_bpy_module-
|
|
363
|
-
fake_bpy_module-
|
|
364
|
-
fake_bpy_module-
|
|
361
|
+
fake_bpy_module-20241103.dist-info/METADATA,sha256=vcax-_YAxJDW1sB12ETie32Q9zXD4eRBom-ZF8ldRso,7289
|
|
362
|
+
fake_bpy_module-20241103.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
363
|
+
fake_bpy_module-20241103.dist-info/top_level.txt,sha256=SZm3DVRKif7dFSjYKiIIg3_7uqjIwRAwOnCIcT4hRNM,500
|
|
364
|
+
fake_bpy_module-20241103.dist-info/RECORD,,
|
mathutils/bvhtree/__init__.pyi
CHANGED
|
@@ -53,7 +53,7 @@ class BVHTree:
|
|
|
53
53
|
"""BVH tree constructed geometry passed in as arguments.
|
|
54
54
|
|
|
55
55
|
:param vertices: float triplets each representing (x, y, z)
|
|
56
|
-
:param polygons: Sequence of
|
|
56
|
+
:param polygons: Sequence of polygons, each containing indices to the vertices argument.
|
|
57
57
|
:param all_triangles: Use when all polygons are triangles for more efficient conversion.
|
|
58
58
|
:type all_triangles: bool
|
|
59
59
|
:param epsilon: Increase the threshold for detecting overlap and raycast hits.
|
mathutils/geometry/__init__.pyi
CHANGED
|
@@ -99,7 +99,14 @@ def convex_hull_2d(points: list) -> list[int]:
|
|
|
99
99
|
:rtype: list[int]
|
|
100
100
|
"""
|
|
101
101
|
|
|
102
|
-
def delaunay_2d_cdt(
|
|
102
|
+
def delaunay_2d_cdt(
|
|
103
|
+
vert_coords: list[mathutils.Vector],
|
|
104
|
+
edges,
|
|
105
|
+
faces,
|
|
106
|
+
output_type: int,
|
|
107
|
+
epsilon: float,
|
|
108
|
+
need_ids=True,
|
|
109
|
+
):
|
|
103
110
|
"""Computes the Constrained Delaunay Triangulation of a set of vertices,
|
|
104
111
|
with edges and faces that must appear in the triangulation.
|
|
105
112
|
Some triangles may be eaten away, or combined with other triangles,
|
|
@@ -112,20 +119,17 @@ def delaunay_2d_cdt(vert_coords, edges, faces, output_type, epsilon, need_ids=Tr
|
|
|
112
119
|
with the edges implied by each of the faces (n of them for an n-gon).
|
|
113
120
|
If the need_ids argument is supplied, and False, then the code skips the preparation
|
|
114
121
|
of the orig arrays, which may save some time.
|
|
115
|
-
:arg vert_coords: Vertex coordinates (2d)
|
|
116
|
-
:type vert_coords: list of `mathutils.Vector`
|
|
117
|
-
:arg edges: Edges, as pairs of indices in vert_coords
|
|
118
|
-
:type edges: list of (int, int)
|
|
119
|
-
:arg faces: Faces, each sublist is a face, as indices in vert_coords (CCW oriented)
|
|
120
|
-
:type faces: list of list of int
|
|
121
|
-
:arg output_type: What output looks like. 0 => triangles with convex hull. 1 => triangles inside constraints. 2 => the input constraints, intersected. 3 => like 2 but detect holes and omit them from output. 4 => like 2 but with extra edges to make valid BMesh faces. 5 => like 4 but detect holes and omit them from output.
|
|
122
|
-
:type output_type: intn :arg epsilon: For nearness tests; should not be zero
|
|
123
|
-
:type epsilon: float
|
|
124
|
-
:arg need_ids: are the orig output arrays needed?
|
|
125
|
-
:type need_args: bool
|
|
126
|
-
:return: Output tuple, (vert_coords, edges, faces, orig_verts, orig_edges, orig_faces)
|
|
127
|
-
:rtype: (list of mathutils.Vector, list of (int, int), list of list of int, list of list of int, list of list of int, list of list of int)
|
|
128
122
|
|
|
123
|
+
:param vert_coords: Vertex coordinates (2d)
|
|
124
|
+
:type vert_coords: list[mathutils.Vector]
|
|
125
|
+
:param edges: Edges, as pairs of indices in vert_coords
|
|
126
|
+
:param faces: Faces, each sublist is a face, as indices in vert_coords (CCW oriented)
|
|
127
|
+
:param output_type: What output looks like. 0 => triangles with convex hull. 1 => triangles inside constraints. 2 => the input constraints, intersected. 3 => like 2 but detect holes and omit them from output. 4 => like 2 but with extra edges to make valid BMesh faces. 5 => like 4 but detect holes and omit them from output.
|
|
128
|
+
:type output_type: int
|
|
129
|
+
:param epsilon: For nearness tests; should not be zero
|
|
130
|
+
:type epsilon: float
|
|
131
|
+
:param need_ids: are the orig output arrays needed?
|
|
132
|
+
:return: Output tuple, (vert_coords, edges, faces, orig_verts, orig_edges, orig_faces)
|
|
129
133
|
"""
|
|
130
134
|
|
|
131
135
|
def distance_point_to_plane(
|
|
@@ -182,6 +186,7 @@ def intersect_line_line(
|
|
|
182
186
|
:type v3: collections.abc.Sequence[float] | mathutils.Vector
|
|
183
187
|
:param v4: Second point of the second line
|
|
184
188
|
:type v4: collections.abc.Sequence[float] | mathutils.Vector
|
|
189
|
+
:return: The intersection on each line or None when the lines are co-linear.
|
|
185
190
|
:rtype: tuple[mathutils.Vector, ...]
|
|
186
191
|
"""
|
|
187
192
|
|
|
@@ -407,6 +412,7 @@ def intersect_sphere_sphere_2d(
|
|
|
407
412
|
:type p_b: collections.abc.Sequence[float] | mathutils.Vector
|
|
408
413
|
:param radius_b: Radius of the second circle
|
|
409
414
|
:type radius_b: float
|
|
415
|
+
:return: 2 points on between intersecting circles or None when there is no intersection.
|
|
410
416
|
:rtype: tuple[mathutils.Vector, ...]
|
|
411
417
|
"""
|
|
412
418
|
|
|
File without changes
|
|
File without changes
|