nodebpy 0.3.0__py3-none-any.whl → 0.3.1__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.
- nodebpy/builder.py +37 -25
- nodebpy/nodes/__init__.py +6 -0
- nodebpy/nodes/attribute.py +98 -4
- nodebpy/nodes/color.py +6 -2
- nodebpy/nodes/converter.py +357 -54
- nodebpy/nodes/experimental.py +9 -3
- nodebpy/nodes/geometry.py +390 -94
- nodebpy/nodes/grid.py +90 -30
- nodebpy/nodes/group.py +3 -1
- nodebpy/nodes/input.py +239 -78
- nodebpy/nodes/interface.py +21 -7
- nodebpy/nodes/manual.py +6 -6
- nodebpy/nodes/output.py +8 -1
- nodebpy/nodes/texture.py +30 -10
- nodebpy/nodes/vector.py +41 -4
- nodebpy/nodes/zone.py +125 -99
- {nodebpy-0.3.0.dist-info → nodebpy-0.3.1.dist-info}/METADATA +11 -1
- nodebpy-0.3.1.dist-info/RECORD +26 -0
- nodebpy-0.3.0.dist-info/RECORD +0 -26
- {nodebpy-0.3.0.dist-info → nodebpy-0.3.1.dist-info}/WHEEL +0 -0
- {nodebpy-0.3.0.dist-info → nodebpy-0.3.1.dist-info}/entry_points.txt +0 -0
nodebpy/nodes/geometry.py
CHANGED
|
@@ -19,7 +19,9 @@ from ..types import (
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class Arc(NodeBuilder):
|
|
22
|
-
"""
|
|
22
|
+
"""
|
|
23
|
+
Generate a poly spline arc
|
|
24
|
+
"""
|
|
23
25
|
|
|
24
26
|
_bl_idname = "GeometryNodeCurveArc"
|
|
25
27
|
node: bpy.types.GeometryNodeCurveArc
|
|
@@ -135,7 +137,9 @@ class Arc(NodeBuilder):
|
|
|
135
137
|
|
|
136
138
|
|
|
137
139
|
class BoundingBox(NodeBuilder):
|
|
138
|
-
"""
|
|
140
|
+
"""
|
|
141
|
+
Calculate the limits of a geometry's positions and generate a box mesh with those dimensions
|
|
142
|
+
"""
|
|
139
143
|
|
|
140
144
|
_bl_idname = "GeometryNodeBoundBox"
|
|
141
145
|
node: bpy.types.GeometryNodeBoundBox
|
|
@@ -177,7 +181,9 @@ class BoundingBox(NodeBuilder):
|
|
|
177
181
|
|
|
178
182
|
|
|
179
183
|
class BezierSegment(NodeBuilder):
|
|
180
|
-
"""
|
|
184
|
+
"""
|
|
185
|
+
Generate a 2D Bézier spline from the given control points and handles
|
|
186
|
+
"""
|
|
181
187
|
|
|
182
188
|
_bl_idname = "GeometryNodeCurvePrimitiveBezierSegment"
|
|
183
189
|
node: bpy.types.GeometryNodeCurvePrimitiveBezierSegment
|
|
@@ -243,7 +249,9 @@ class BezierSegment(NodeBuilder):
|
|
|
243
249
|
|
|
244
250
|
|
|
245
251
|
class Cone(NodeBuilder):
|
|
246
|
-
"""
|
|
252
|
+
"""
|
|
253
|
+
Generate a cone mesh
|
|
254
|
+
"""
|
|
247
255
|
|
|
248
256
|
_bl_idname = "GeometryNodeMeshCone"
|
|
249
257
|
node: bpy.types.GeometryNodeMeshCone
|
|
@@ -336,7 +344,9 @@ class Cone(NodeBuilder):
|
|
|
336
344
|
|
|
337
345
|
|
|
338
346
|
class ConvexHull(NodeBuilder):
|
|
339
|
-
"""
|
|
347
|
+
"""
|
|
348
|
+
Create a mesh that encloses all points in the input geometry with the smallest number of points
|
|
349
|
+
"""
|
|
340
350
|
|
|
341
351
|
_bl_idname = "GeometryNodeConvexHull"
|
|
342
352
|
node: bpy.types.GeometryNodeConvexHull
|
|
@@ -359,7 +369,9 @@ class ConvexHull(NodeBuilder):
|
|
|
359
369
|
|
|
360
370
|
|
|
361
371
|
class Cube(NodeBuilder):
|
|
362
|
-
"""
|
|
372
|
+
"""
|
|
373
|
+
Generate a cuboid mesh with variable side lengths and subdivisions
|
|
374
|
+
"""
|
|
363
375
|
|
|
364
376
|
_bl_idname = "GeometryNodeMeshCube"
|
|
365
377
|
node: bpy.types.GeometryNodeMeshCube
|
|
@@ -413,7 +425,9 @@ class Cube(NodeBuilder):
|
|
|
413
425
|
|
|
414
426
|
|
|
415
427
|
class CurveCircle(NodeBuilder):
|
|
416
|
-
"""
|
|
428
|
+
"""
|
|
429
|
+
Generate a poly spline circle
|
|
430
|
+
"""
|
|
417
431
|
|
|
418
432
|
_bl_idname = "GeometryNodeCurvePrimitiveCircle"
|
|
419
433
|
node: bpy.types.GeometryNodeCurvePrimitiveCircle
|
|
@@ -484,7 +498,9 @@ class CurveCircle(NodeBuilder):
|
|
|
484
498
|
|
|
485
499
|
|
|
486
500
|
class CurveLength(NodeBuilder):
|
|
487
|
-
"""
|
|
501
|
+
"""
|
|
502
|
+
Retrieve the length of all splines added together
|
|
503
|
+
"""
|
|
488
504
|
|
|
489
505
|
_bl_idname = "GeometryNodeCurveLength"
|
|
490
506
|
node: bpy.types.GeometryNodeCurveLength
|
|
@@ -507,7 +523,9 @@ class CurveLength(NodeBuilder):
|
|
|
507
523
|
|
|
508
524
|
|
|
509
525
|
class CurveLine(NodeBuilder):
|
|
510
|
-
"""
|
|
526
|
+
"""
|
|
527
|
+
Generate a poly spline line with two points
|
|
528
|
+
"""
|
|
511
529
|
|
|
512
530
|
_bl_idname = "GeometryNodeCurvePrimitiveLine"
|
|
513
531
|
node: bpy.types.GeometryNodeCurvePrimitiveLine
|
|
@@ -566,7 +584,9 @@ class CurveLine(NodeBuilder):
|
|
|
566
584
|
|
|
567
585
|
|
|
568
586
|
class CurveToMesh(NodeBuilder):
|
|
569
|
-
"""
|
|
587
|
+
"""
|
|
588
|
+
Convert curves into a mesh, optionally with a custom profile shape defined by curves
|
|
589
|
+
"""
|
|
570
590
|
|
|
571
591
|
_bl_idname = "GeometryNodeCurveToMesh"
|
|
572
592
|
node: bpy.types.GeometryNodeCurveToMesh
|
|
@@ -615,7 +635,9 @@ class CurveToMesh(NodeBuilder):
|
|
|
615
635
|
|
|
616
636
|
|
|
617
637
|
class CurveToPoints(NodeBuilder):
|
|
618
|
-
"""
|
|
638
|
+
"""
|
|
639
|
+
Generate a point cloud by sampling positions along curves
|
|
640
|
+
"""
|
|
619
641
|
|
|
620
642
|
_bl_idname = "GeometryNodeCurveToPoints"
|
|
621
643
|
node: bpy.types.GeometryNodeCurveToPoints
|
|
@@ -678,7 +700,9 @@ class CurveToPoints(NodeBuilder):
|
|
|
678
700
|
|
|
679
701
|
|
|
680
702
|
class CurvesToGreasePencil(NodeBuilder):
|
|
681
|
-
"""
|
|
703
|
+
"""
|
|
704
|
+
Convert the curves in each top-level instance into Grease Pencil layer
|
|
705
|
+
"""
|
|
682
706
|
|
|
683
707
|
_bl_idname = "GeometryNodeCurvesToGreasePencil"
|
|
684
708
|
node: bpy.types.GeometryNodeCurvesToGreasePencil
|
|
@@ -720,7 +744,9 @@ class CurvesToGreasePencil(NodeBuilder):
|
|
|
720
744
|
|
|
721
745
|
|
|
722
746
|
class Cylinder(NodeBuilder):
|
|
723
|
-
"""
|
|
747
|
+
"""
|
|
748
|
+
Generate a cylinder mesh
|
|
749
|
+
"""
|
|
724
750
|
|
|
725
751
|
_bl_idname = "GeometryNodeMeshCylinder"
|
|
726
752
|
node: bpy.types.GeometryNodeMeshCylinder
|
|
@@ -806,7 +832,9 @@ class Cylinder(NodeBuilder):
|
|
|
806
832
|
|
|
807
833
|
|
|
808
834
|
class DeformCurvesOnSurface(NodeBuilder):
|
|
809
|
-
"""
|
|
835
|
+
"""
|
|
836
|
+
Translate and rotate curves based on changes between the object's original and evaluated surface mesh
|
|
837
|
+
"""
|
|
810
838
|
|
|
811
839
|
_bl_idname = "GeometryNodeDeformCurvesOnSurface"
|
|
812
840
|
node: bpy.types.GeometryNodeDeformCurvesOnSurface
|
|
@@ -829,7 +857,9 @@ class DeformCurvesOnSurface(NodeBuilder):
|
|
|
829
857
|
|
|
830
858
|
|
|
831
859
|
class DeleteGeometry(NodeBuilder):
|
|
832
|
-
"""
|
|
860
|
+
"""
|
|
861
|
+
Remove selected elements of a geometry
|
|
862
|
+
"""
|
|
833
863
|
|
|
834
864
|
_bl_idname = "GeometryNodeDeleteGeometry"
|
|
835
865
|
node: bpy.types.GeometryNodeDeleteGeometry
|
|
@@ -927,7 +957,9 @@ class DeleteGeometry(NodeBuilder):
|
|
|
927
957
|
|
|
928
958
|
|
|
929
959
|
class DistributePointsOnFaces(NodeBuilder):
|
|
930
|
-
"""
|
|
960
|
+
"""
|
|
961
|
+
Generate points spread out on the surface of a mesh
|
|
962
|
+
"""
|
|
931
963
|
|
|
932
964
|
_bl_idname = "GeometryNodeDistributePointsOnFaces"
|
|
933
965
|
node: bpy.types.GeometryNodeDistributePointsOnFaces
|
|
@@ -1027,7 +1059,9 @@ class DistributePointsOnFaces(NodeBuilder):
|
|
|
1027
1059
|
|
|
1028
1060
|
|
|
1029
1061
|
class DualMesh(NodeBuilder):
|
|
1030
|
-
"""
|
|
1062
|
+
"""
|
|
1063
|
+
Convert Faces into vertices and vertices into faces
|
|
1064
|
+
"""
|
|
1031
1065
|
|
|
1032
1066
|
_bl_idname = "GeometryNodeDualMesh"
|
|
1033
1067
|
node: bpy.types.GeometryNodeDualMesh
|
|
@@ -1059,7 +1093,9 @@ class DualMesh(NodeBuilder):
|
|
|
1059
1093
|
|
|
1060
1094
|
|
|
1061
1095
|
class DuplicateElements(NodeBuilder):
|
|
1062
|
-
"""
|
|
1096
|
+
"""
|
|
1097
|
+
Generate an arbitrary number copies of each selected input element
|
|
1098
|
+
"""
|
|
1063
1099
|
|
|
1064
1100
|
_bl_idname = "GeometryNodeDuplicateElements"
|
|
1065
1101
|
node: bpy.types.GeometryNodeDuplicateElements
|
|
@@ -1184,7 +1220,9 @@ class DuplicateElements(NodeBuilder):
|
|
|
1184
1220
|
|
|
1185
1221
|
|
|
1186
1222
|
class EdgePathsToCurves(NodeBuilder):
|
|
1187
|
-
"""
|
|
1223
|
+
"""
|
|
1224
|
+
Output curves following paths across mesh edges
|
|
1225
|
+
"""
|
|
1188
1226
|
|
|
1189
1227
|
_bl_idname = "GeometryNodeEdgePathsToCurves"
|
|
1190
1228
|
node: bpy.types.GeometryNodeEdgePathsToCurves
|
|
@@ -1226,7 +1264,9 @@ class EdgePathsToCurves(NodeBuilder):
|
|
|
1226
1264
|
|
|
1227
1265
|
|
|
1228
1266
|
class ExtrudeMesh(NodeBuilder):
|
|
1229
|
-
"""
|
|
1267
|
+
"""
|
|
1268
|
+
Generate new vertices, edges, or faces from selected elements and move them based on an offset while keeping them connected by their boundary
|
|
1269
|
+
"""
|
|
1230
1270
|
|
|
1231
1271
|
_bl_idname = "GeometryNodeExtrudeMesh"
|
|
1232
1272
|
node: bpy.types.GeometryNodeExtrudeMesh
|
|
@@ -1302,7 +1342,9 @@ class ExtrudeMesh(NodeBuilder):
|
|
|
1302
1342
|
|
|
1303
1343
|
|
|
1304
1344
|
class FillCurve(NodeBuilder):
|
|
1305
|
-
"""
|
|
1345
|
+
"""
|
|
1346
|
+
Generate a mesh on the XY plane with faces on the inside of input curves
|
|
1347
|
+
"""
|
|
1306
1348
|
|
|
1307
1349
|
_bl_idname = "GeometryNodeFillCurve"
|
|
1308
1350
|
node: bpy.types.GeometryNodeFillCurve
|
|
@@ -1340,7 +1382,9 @@ class FillCurve(NodeBuilder):
|
|
|
1340
1382
|
|
|
1341
1383
|
|
|
1342
1384
|
class FilletCurve(NodeBuilder):
|
|
1343
|
-
"""
|
|
1385
|
+
"""
|
|
1386
|
+
Round corners by generating circular arcs on each control point
|
|
1387
|
+
"""
|
|
1344
1388
|
|
|
1345
1389
|
_bl_idname = "GeometryNodeFilletCurve"
|
|
1346
1390
|
node: bpy.types.GeometryNodeFilletCurve
|
|
@@ -1396,7 +1440,9 @@ class FilletCurve(NodeBuilder):
|
|
|
1396
1440
|
|
|
1397
1441
|
|
|
1398
1442
|
class FlipFaces(NodeBuilder):
|
|
1399
|
-
"""
|
|
1443
|
+
"""
|
|
1444
|
+
Reverse the order of the vertices and edges of selected faces, flipping their normal direction
|
|
1445
|
+
"""
|
|
1400
1446
|
|
|
1401
1447
|
_bl_idname = "GeometryNodeFlipFaces"
|
|
1402
1448
|
node: bpy.types.GeometryNodeFlipFaces
|
|
@@ -1428,7 +1474,9 @@ class FlipFaces(NodeBuilder):
|
|
|
1428
1474
|
|
|
1429
1475
|
|
|
1430
1476
|
class GeometryProximity(NodeBuilder):
|
|
1431
|
-
"""
|
|
1477
|
+
"""
|
|
1478
|
+
Compute the closest location on the target geometry
|
|
1479
|
+
"""
|
|
1432
1480
|
|
|
1433
1481
|
_bl_idname = "GeometryNodeProximity"
|
|
1434
1482
|
node: bpy.types.GeometryNodeProximity
|
|
@@ -1497,7 +1545,9 @@ class GeometryProximity(NodeBuilder):
|
|
|
1497
1545
|
|
|
1498
1546
|
|
|
1499
1547
|
class GreasePencilToCurves(NodeBuilder):
|
|
1500
|
-
"""
|
|
1548
|
+
"""
|
|
1549
|
+
Convert Grease Pencil layers into curve instances
|
|
1550
|
+
"""
|
|
1501
1551
|
|
|
1502
1552
|
_bl_idname = "GeometryNodeGreasePencilToCurves"
|
|
1503
1553
|
node: bpy.types.GeometryNodeGreasePencilToCurves
|
|
@@ -1539,7 +1589,9 @@ class GreasePencilToCurves(NodeBuilder):
|
|
|
1539
1589
|
|
|
1540
1590
|
|
|
1541
1591
|
class Grid(NodeBuilder):
|
|
1542
|
-
"""
|
|
1592
|
+
"""
|
|
1593
|
+
Generate a planar mesh on the XY plane
|
|
1594
|
+
"""
|
|
1543
1595
|
|
|
1544
1596
|
_bl_idname = "GeometryNodeMeshGrid"
|
|
1545
1597
|
node: bpy.types.GeometryNodeMeshGrid
|
|
@@ -1593,7 +1645,9 @@ class Grid(NodeBuilder):
|
|
|
1593
1645
|
|
|
1594
1646
|
|
|
1595
1647
|
class IcoSphere(NodeBuilder):
|
|
1596
|
-
"""
|
|
1648
|
+
"""
|
|
1649
|
+
Generate a spherical mesh that consists of equally sized triangles
|
|
1650
|
+
"""
|
|
1597
1651
|
|
|
1598
1652
|
_bl_idname = "GeometryNodeMeshIcoSphere"
|
|
1599
1653
|
node: bpy.types.GeometryNodeMeshIcoSphere
|
|
@@ -1630,7 +1684,9 @@ class IcoSphere(NodeBuilder):
|
|
|
1630
1684
|
|
|
1631
1685
|
|
|
1632
1686
|
class InstanceOnPoints(NodeBuilder):
|
|
1633
|
-
"""
|
|
1687
|
+
"""
|
|
1688
|
+
Generate a reference to geometry at each of the input points, without duplicating its underlying data
|
|
1689
|
+
"""
|
|
1634
1690
|
|
|
1635
1691
|
_bl_idname = "GeometryNodeInstanceOnPoints"
|
|
1636
1692
|
node: bpy.types.GeometryNodeInstanceOnPoints
|
|
@@ -1700,8 +1756,10 @@ class InstanceOnPoints(NodeBuilder):
|
|
|
1700
1756
|
|
|
1701
1757
|
|
|
1702
1758
|
class InstancesToPoints(NodeBuilder):
|
|
1703
|
-
"""
|
|
1704
|
-
|
|
1759
|
+
"""
|
|
1760
|
+
Generate points at the origins of instances.
|
|
1761
|
+
Note: Nested instances are not affected by this node
|
|
1762
|
+
"""
|
|
1705
1763
|
|
|
1706
1764
|
_bl_idname = "GeometryNodeInstancesToPoints"
|
|
1707
1765
|
node: bpy.types.GeometryNodeInstancesToPoints
|
|
@@ -1750,7 +1808,9 @@ class InstancesToPoints(NodeBuilder):
|
|
|
1750
1808
|
|
|
1751
1809
|
|
|
1752
1810
|
class InterpolateCurves(NodeBuilder):
|
|
1753
|
-
"""
|
|
1811
|
+
"""
|
|
1812
|
+
Generate new curves on points by interpolating between existing curves
|
|
1813
|
+
"""
|
|
1754
1814
|
|
|
1755
1815
|
_bl_idname = "GeometryNodeInterpolateCurves"
|
|
1756
1816
|
node: bpy.types.GeometryNodeInterpolateCurves
|
|
@@ -1830,7 +1890,9 @@ class InterpolateCurves(NodeBuilder):
|
|
|
1830
1890
|
|
|
1831
1891
|
|
|
1832
1892
|
class MaterialSelection(NodeBuilder):
|
|
1833
|
-
"""
|
|
1893
|
+
"""
|
|
1894
|
+
Provide a selection of faces that use the specified material
|
|
1895
|
+
"""
|
|
1834
1896
|
|
|
1835
1897
|
_bl_idname = "GeometryNodeMaterialSelection"
|
|
1836
1898
|
node: bpy.types.GeometryNodeMaterialSelection
|
|
@@ -1853,7 +1915,9 @@ class MaterialSelection(NodeBuilder):
|
|
|
1853
1915
|
|
|
1854
1916
|
|
|
1855
1917
|
class MergeLayers(NodeBuilder):
|
|
1856
|
-
"""
|
|
1918
|
+
"""
|
|
1919
|
+
Join groups of Grease Pencil layers into one
|
|
1920
|
+
"""
|
|
1857
1921
|
|
|
1858
1922
|
_bl_idname = "GeometryNodeMergeLayers"
|
|
1859
1923
|
node: bpy.types.GeometryNodeMergeLayers
|
|
@@ -1905,7 +1969,9 @@ class MergeLayers(NodeBuilder):
|
|
|
1905
1969
|
|
|
1906
1970
|
|
|
1907
1971
|
class MergeByDistance(NodeBuilder):
|
|
1908
|
-
"""
|
|
1972
|
+
"""
|
|
1973
|
+
Merge vertices or points within a given distance
|
|
1974
|
+
"""
|
|
1909
1975
|
|
|
1910
1976
|
_bl_idname = "GeometryNodeMergeByDistance"
|
|
1911
1977
|
node: bpy.types.GeometryNodeMergeByDistance
|
|
@@ -1954,7 +2020,9 @@ class MergeByDistance(NodeBuilder):
|
|
|
1954
2020
|
|
|
1955
2021
|
|
|
1956
2022
|
class MeshBoolean(NodeBuilder):
|
|
1957
|
-
"""
|
|
2023
|
+
"""
|
|
2024
|
+
Cut, subtract, or join multiple mesh inputs
|
|
2025
|
+
"""
|
|
1958
2026
|
|
|
1959
2027
|
_bl_idname = "GeometryNodeMeshBoolean"
|
|
1960
2028
|
node: bpy.types.GeometryNodeMeshBoolean
|
|
@@ -2045,7 +2113,9 @@ class MeshBoolean(NodeBuilder):
|
|
|
2045
2113
|
|
|
2046
2114
|
|
|
2047
2115
|
class MeshCircle(NodeBuilder):
|
|
2048
|
-
"""
|
|
2116
|
+
"""
|
|
2117
|
+
Generate a circular ring of edges
|
|
2118
|
+
"""
|
|
2049
2119
|
|
|
2050
2120
|
_bl_idname = "GeometryNodeMeshCircle"
|
|
2051
2121
|
node: bpy.types.GeometryNodeMeshCircle
|
|
@@ -2087,7 +2157,9 @@ class MeshCircle(NodeBuilder):
|
|
|
2087
2157
|
|
|
2088
2158
|
|
|
2089
2159
|
class MeshLine(NodeBuilder):
|
|
2090
|
-
"""
|
|
2160
|
+
"""
|
|
2161
|
+
Generate vertices in a line and connect them with edges
|
|
2162
|
+
"""
|
|
2091
2163
|
|
|
2092
2164
|
_bl_idname = "GeometryNodeMeshLine"
|
|
2093
2165
|
node: bpy.types.GeometryNodeMeshLine
|
|
@@ -2156,7 +2228,9 @@ class MeshLine(NodeBuilder):
|
|
|
2156
2228
|
|
|
2157
2229
|
|
|
2158
2230
|
class MeshToCurve(NodeBuilder):
|
|
2159
|
-
"""
|
|
2231
|
+
"""
|
|
2232
|
+
Generate a curve from a mesh
|
|
2233
|
+
"""
|
|
2160
2234
|
|
|
2161
2235
|
_bl_idname = "GeometryNodeMeshToCurve"
|
|
2162
2236
|
node: bpy.types.GeometryNodeMeshToCurve
|
|
@@ -2198,7 +2272,9 @@ class MeshToCurve(NodeBuilder):
|
|
|
2198
2272
|
|
|
2199
2273
|
|
|
2200
2274
|
class MeshToPoints(NodeBuilder):
|
|
2201
|
-
"""
|
|
2275
|
+
"""
|
|
2276
|
+
Generate a point cloud from a mesh's vertices
|
|
2277
|
+
"""
|
|
2202
2278
|
|
|
2203
2279
|
_bl_idname = "GeometryNodeMeshToPoints"
|
|
2204
2280
|
node: bpy.types.GeometryNodeMeshToPoints
|
|
@@ -2257,7 +2333,9 @@ class MeshToPoints(NodeBuilder):
|
|
|
2257
2333
|
|
|
2258
2334
|
|
|
2259
2335
|
class Points(NodeBuilder):
|
|
2260
|
-
"""
|
|
2336
|
+
"""
|
|
2337
|
+
Generate a point cloud with positions and radii defined by fields
|
|
2338
|
+
"""
|
|
2261
2339
|
|
|
2262
2340
|
_bl_idname = "GeometryNodePoints"
|
|
2263
2341
|
node: bpy.types.GeometryNodePoints
|
|
@@ -2295,7 +2373,9 @@ class Points(NodeBuilder):
|
|
|
2295
2373
|
|
|
2296
2374
|
|
|
2297
2375
|
class PointsToCurves(NodeBuilder):
|
|
2298
|
-
"""
|
|
2376
|
+
"""
|
|
2377
|
+
Split all points to curve by its group ID and reorder by weight
|
|
2378
|
+
"""
|
|
2299
2379
|
|
|
2300
2380
|
_bl_idname = "GeometryNodePointsToCurves"
|
|
2301
2381
|
node: bpy.types.GeometryNodePointsToCurves
|
|
@@ -2337,7 +2417,9 @@ class PointsToCurves(NodeBuilder):
|
|
|
2337
2417
|
|
|
2338
2418
|
|
|
2339
2419
|
class PointsToVertices(NodeBuilder):
|
|
2340
|
-
"""
|
|
2420
|
+
"""
|
|
2421
|
+
Generate a mesh vertex for each point cloud point
|
|
2422
|
+
"""
|
|
2341
2423
|
|
|
2342
2424
|
_bl_idname = "GeometryNodePointsToVertices"
|
|
2343
2425
|
node: bpy.types.GeometryNodePointsToVertices
|
|
@@ -2369,7 +2451,9 @@ class PointsToVertices(NodeBuilder):
|
|
|
2369
2451
|
|
|
2370
2452
|
|
|
2371
2453
|
class QuadraticBezier(NodeBuilder):
|
|
2372
|
-
"""
|
|
2454
|
+
"""
|
|
2455
|
+
Generate a poly spline in a parabola shape with control points positions
|
|
2456
|
+
"""
|
|
2373
2457
|
|
|
2374
2458
|
_bl_idname = "GeometryNodeCurveQuadraticBezier"
|
|
2375
2459
|
node: bpy.types.GeometryNodeCurveQuadraticBezier
|
|
@@ -2418,7 +2502,9 @@ class QuadraticBezier(NodeBuilder):
|
|
|
2418
2502
|
|
|
2419
2503
|
|
|
2420
2504
|
class Quadrilateral(NodeBuilder):
|
|
2421
|
-
"""
|
|
2505
|
+
"""
|
|
2506
|
+
Generate a polygon with four points
|
|
2507
|
+
"""
|
|
2422
2508
|
|
|
2423
2509
|
_bl_idname = "GeometryNodeCurvePrimitiveQuadrilateral"
|
|
2424
2510
|
node: bpy.types.GeometryNodeCurvePrimitiveQuadrilateral
|
|
@@ -2533,7 +2619,9 @@ class Quadrilateral(NodeBuilder):
|
|
|
2533
2619
|
|
|
2534
2620
|
|
|
2535
2621
|
class Raycast(NodeBuilder):
|
|
2536
|
-
"""
|
|
2622
|
+
"""
|
|
2623
|
+
Cast rays from the context geometry onto a target geometry, and retrieve information from each hit point
|
|
2624
|
+
"""
|
|
2537
2625
|
|
|
2538
2626
|
_bl_idname = "GeometryNodeRaycast"
|
|
2539
2627
|
node: bpy.types.GeometryNodeRaycast
|
|
@@ -2695,6 +2783,27 @@ class Raycast(NodeBuilder):
|
|
|
2695
2783
|
ray_length=ray_length,
|
|
2696
2784
|
)
|
|
2697
2785
|
|
|
2786
|
+
@classmethod
|
|
2787
|
+
def matrix(
|
|
2788
|
+
cls,
|
|
2789
|
+
target_geometry: TYPE_INPUT_GEOMETRY = None,
|
|
2790
|
+
attribute: TYPE_INPUT_MATRIX = None,
|
|
2791
|
+
interpolation: TYPE_INPUT_MENU = "Interpolated",
|
|
2792
|
+
source_position: TYPE_INPUT_VECTOR = None,
|
|
2793
|
+
ray_direction: TYPE_INPUT_VECTOR = None,
|
|
2794
|
+
ray_length: TYPE_INPUT_VALUE = 100.0,
|
|
2795
|
+
) -> "Raycast":
|
|
2796
|
+
"""Create Raycast with operation '4x4 Matrix'."""
|
|
2797
|
+
return cls(
|
|
2798
|
+
data_type="FLOAT4X4",
|
|
2799
|
+
target_geometry=target_geometry,
|
|
2800
|
+
attribute=attribute,
|
|
2801
|
+
interpolation=interpolation,
|
|
2802
|
+
source_position=source_position,
|
|
2803
|
+
ray_direction=ray_direction,
|
|
2804
|
+
ray_length=ray_length,
|
|
2805
|
+
)
|
|
2806
|
+
|
|
2698
2807
|
@property
|
|
2699
2808
|
def i_target_geometry(self) -> SocketLinker:
|
|
2700
2809
|
"""Input socket: Target Geometry"""
|
|
@@ -2781,7 +2890,9 @@ class Raycast(NodeBuilder):
|
|
|
2781
2890
|
|
|
2782
2891
|
|
|
2783
2892
|
class RealizeInstances(NodeBuilder):
|
|
2784
|
-
"""
|
|
2893
|
+
"""
|
|
2894
|
+
Convert instances into real geometry data
|
|
2895
|
+
"""
|
|
2785
2896
|
|
|
2786
2897
|
_bl_idname = "GeometryNodeRealizeInstances"
|
|
2787
2898
|
node: bpy.types.GeometryNodeRealizeInstances
|
|
@@ -2830,7 +2941,9 @@ class RealizeInstances(NodeBuilder):
|
|
|
2830
2941
|
|
|
2831
2942
|
|
|
2832
2943
|
class ReplaceMaterial(NodeBuilder):
|
|
2833
|
-
"""
|
|
2944
|
+
"""
|
|
2945
|
+
Swap one material with another
|
|
2946
|
+
"""
|
|
2834
2947
|
|
|
2835
2948
|
_bl_idname = "GeometryNodeReplaceMaterial"
|
|
2836
2949
|
node: bpy.types.GeometryNodeReplaceMaterial
|
|
@@ -2868,7 +2981,9 @@ class ReplaceMaterial(NodeBuilder):
|
|
|
2868
2981
|
|
|
2869
2982
|
|
|
2870
2983
|
class ResampleCurve(NodeBuilder):
|
|
2871
|
-
"""
|
|
2984
|
+
"""
|
|
2985
|
+
Generate a poly spline for each input spline
|
|
2986
|
+
"""
|
|
2872
2987
|
|
|
2873
2988
|
_bl_idname = "GeometryNodeResampleCurve"
|
|
2874
2989
|
node: bpy.types.GeometryNodeResampleCurve
|
|
@@ -2934,7 +3049,9 @@ class ResampleCurve(NodeBuilder):
|
|
|
2934
3049
|
|
|
2935
3050
|
|
|
2936
3051
|
class ReverseCurve(NodeBuilder):
|
|
2937
|
-
"""
|
|
3052
|
+
"""
|
|
3053
|
+
Change the direction of curves by swapping their start and end data
|
|
3054
|
+
"""
|
|
2938
3055
|
|
|
2939
3056
|
_bl_idname = "GeometryNodeReverseCurve"
|
|
2940
3057
|
node: bpy.types.GeometryNodeReverseCurve
|
|
@@ -2966,7 +3083,9 @@ class ReverseCurve(NodeBuilder):
|
|
|
2966
3083
|
|
|
2967
3084
|
|
|
2968
3085
|
class RotateInstances(NodeBuilder):
|
|
2969
|
-
"""
|
|
3086
|
+
"""
|
|
3087
|
+
Rotate geometry instances in local or global space
|
|
3088
|
+
"""
|
|
2970
3089
|
|
|
2971
3090
|
_bl_idname = "GeometryNodeRotateInstances"
|
|
2972
3091
|
node: bpy.types.GeometryNodeRotateInstances
|
|
@@ -3022,7 +3141,9 @@ class RotateInstances(NodeBuilder):
|
|
|
3022
3141
|
|
|
3023
3142
|
|
|
3024
3143
|
class SampleCurve(NodeBuilder):
|
|
3025
|
-
"""
|
|
3144
|
+
"""
|
|
3145
|
+
Retrieve data from a point on a curve at a certain distance from its start
|
|
3146
|
+
"""
|
|
3026
3147
|
|
|
3027
3148
|
_bl_idname = "GeometryNodeSampleCurve"
|
|
3028
3149
|
node: bpy.types.GeometryNodeSampleCurve
|
|
@@ -3162,6 +3283,23 @@ class SampleCurve(NodeBuilder):
|
|
|
3162
3283
|
curve_index=curve_index,
|
|
3163
3284
|
)
|
|
3164
3285
|
|
|
3286
|
+
@classmethod
|
|
3287
|
+
def matrix(
|
|
3288
|
+
cls,
|
|
3289
|
+
curves: TYPE_INPUT_GEOMETRY = None,
|
|
3290
|
+
value: TYPE_INPUT_MATRIX = None,
|
|
3291
|
+
length: TYPE_INPUT_VALUE = 0.0,
|
|
3292
|
+
curve_index: TYPE_INPUT_INT = 0,
|
|
3293
|
+
) -> "SampleCurve":
|
|
3294
|
+
"""Create Sample Curve with operation '4x4 Matrix'."""
|
|
3295
|
+
return cls(
|
|
3296
|
+
data_type="FLOAT4X4",
|
|
3297
|
+
curves=curves,
|
|
3298
|
+
value=value,
|
|
3299
|
+
length=length,
|
|
3300
|
+
curve_index=curve_index,
|
|
3301
|
+
)
|
|
3302
|
+
|
|
3165
3303
|
@property
|
|
3166
3304
|
def i_curves(self) -> SocketLinker:
|
|
3167
3305
|
"""Input socket: Curves"""
|
|
@@ -3254,7 +3392,9 @@ class SampleCurve(NodeBuilder):
|
|
|
3254
3392
|
|
|
3255
3393
|
|
|
3256
3394
|
class SampleIndex(NodeBuilder):
|
|
3257
|
-
"""
|
|
3395
|
+
"""
|
|
3396
|
+
Retrieve values from specific geometry elements
|
|
3397
|
+
"""
|
|
3258
3398
|
|
|
3259
3399
|
_bl_idname = "GeometryNodeSampleIndex"
|
|
3260
3400
|
node: bpy.types.GeometryNodeSampleIndex
|
|
@@ -3348,6 +3488,16 @@ class SampleIndex(NodeBuilder):
|
|
|
3348
3488
|
"""Create Sample Index with operation 'Quaternion'."""
|
|
3349
3489
|
return cls(data_type="QUATERNION", geometry=geometry, value=value, index=index)
|
|
3350
3490
|
|
|
3491
|
+
@classmethod
|
|
3492
|
+
def matrix(
|
|
3493
|
+
cls,
|
|
3494
|
+
geometry: TYPE_INPUT_GEOMETRY = None,
|
|
3495
|
+
value: TYPE_INPUT_MATRIX = None,
|
|
3496
|
+
index: TYPE_INPUT_INT = 0,
|
|
3497
|
+
) -> "SampleIndex":
|
|
3498
|
+
"""Create Sample Index with operation '4x4 Matrix'."""
|
|
3499
|
+
return cls(data_type="FLOAT4X4", geometry=geometry, value=value, index=index)
|
|
3500
|
+
|
|
3351
3501
|
@classmethod
|
|
3352
3502
|
def point(
|
|
3353
3503
|
cls,
|
|
@@ -3378,6 +3528,16 @@ class SampleIndex(NodeBuilder):
|
|
|
3378
3528
|
"""Create Sample Index with operation 'Face'."""
|
|
3379
3529
|
return cls(domain="FACE", geometry=geometry, value=value, index=index)
|
|
3380
3530
|
|
|
3531
|
+
@classmethod
|
|
3532
|
+
def face_corner(
|
|
3533
|
+
cls,
|
|
3534
|
+
geometry: TYPE_INPUT_GEOMETRY = None,
|
|
3535
|
+
value: TYPE_INPUT_MATRIX = None,
|
|
3536
|
+
index: TYPE_INPUT_INT = 0,
|
|
3537
|
+
) -> "SampleIndex":
|
|
3538
|
+
"""Create Sample Index with operation 'Face Corner'."""
|
|
3539
|
+
return cls(domain="CORNER", geometry=geometry, value=value, index=index)
|
|
3540
|
+
|
|
3381
3541
|
@classmethod
|
|
3382
3542
|
def spline(
|
|
3383
3543
|
cls,
|
|
@@ -3480,7 +3640,9 @@ class SampleIndex(NodeBuilder):
|
|
|
3480
3640
|
|
|
3481
3641
|
|
|
3482
3642
|
class SampleNearest(NodeBuilder):
|
|
3483
|
-
"""
|
|
3643
|
+
"""
|
|
3644
|
+
Find the element of a geometry closest to a position. Similar to the "Index of Nearest" node
|
|
3645
|
+
"""
|
|
3484
3646
|
|
|
3485
3647
|
_bl_idname = "GeometryNodeSampleNearest"
|
|
3486
3648
|
node: bpy.types.GeometryNodeSampleNearest
|
|
@@ -3524,6 +3686,15 @@ class SampleNearest(NodeBuilder):
|
|
|
3524
3686
|
"""Create Sample Nearest with operation 'Face'."""
|
|
3525
3687
|
return cls(domain="FACE", geometry=geometry, sample_position=sample_position)
|
|
3526
3688
|
|
|
3689
|
+
@classmethod
|
|
3690
|
+
def face_corner(
|
|
3691
|
+
cls,
|
|
3692
|
+
geometry: TYPE_INPUT_GEOMETRY = None,
|
|
3693
|
+
sample_position: TYPE_INPUT_VECTOR = None,
|
|
3694
|
+
) -> "SampleNearest":
|
|
3695
|
+
"""Create Sample Nearest with operation 'Face Corner'."""
|
|
3696
|
+
return cls(domain="CORNER", geometry=geometry, sample_position=sample_position)
|
|
3697
|
+
|
|
3527
3698
|
@property
|
|
3528
3699
|
def i_geometry(self) -> SocketLinker:
|
|
3529
3700
|
"""Input socket: Geometry"""
|
|
@@ -3549,7 +3720,9 @@ class SampleNearest(NodeBuilder):
|
|
|
3549
3720
|
|
|
3550
3721
|
|
|
3551
3722
|
class SampleNearestSurface(NodeBuilder):
|
|
3552
|
-
"""
|
|
3723
|
+
"""
|
|
3724
|
+
Calculate the interpolated value of a mesh attribute on the closest point of its surface
|
|
3725
|
+
"""
|
|
3553
3726
|
|
|
3554
3727
|
_bl_idname = "GeometryNodeSampleNearestSurface"
|
|
3555
3728
|
node: bpy.types.GeometryNodeSampleNearestSurface
|
|
@@ -3697,6 +3870,25 @@ class SampleNearestSurface(NodeBuilder):
|
|
|
3697
3870
|
sample_group_id=sample_group_id,
|
|
3698
3871
|
)
|
|
3699
3872
|
|
|
3873
|
+
@classmethod
|
|
3874
|
+
def matrix(
|
|
3875
|
+
cls,
|
|
3876
|
+
mesh: TYPE_INPUT_GEOMETRY = None,
|
|
3877
|
+
value: TYPE_INPUT_MATRIX = None,
|
|
3878
|
+
group_id: TYPE_INPUT_INT = 0,
|
|
3879
|
+
sample_position: TYPE_INPUT_VECTOR = None,
|
|
3880
|
+
sample_group_id: TYPE_INPUT_INT = 0,
|
|
3881
|
+
) -> "SampleNearestSurface":
|
|
3882
|
+
"""Create Sample Nearest Surface with operation '4x4 Matrix'."""
|
|
3883
|
+
return cls(
|
|
3884
|
+
data_type="FLOAT4X4",
|
|
3885
|
+
mesh=mesh,
|
|
3886
|
+
value=value,
|
|
3887
|
+
group_id=group_id,
|
|
3888
|
+
sample_position=sample_position,
|
|
3889
|
+
sample_group_id=sample_group_id,
|
|
3890
|
+
)
|
|
3891
|
+
|
|
3700
3892
|
@property
|
|
3701
3893
|
def i_mesh(self) -> SocketLinker:
|
|
3702
3894
|
"""Input socket: Mesh"""
|
|
@@ -3763,7 +3955,9 @@ class SampleNearestSurface(NodeBuilder):
|
|
|
3763
3955
|
|
|
3764
3956
|
|
|
3765
3957
|
class SampleUVSurface(NodeBuilder):
|
|
3766
|
-
"""
|
|
3958
|
+
"""
|
|
3959
|
+
Calculate the interpolated values of a mesh attribute at a UV coordinate
|
|
3960
|
+
"""
|
|
3767
3961
|
|
|
3768
3962
|
_bl_idname = "GeometryNodeSampleUVSurface"
|
|
3769
3963
|
node: bpy.types.GeometryNodeSampleUVSurface
|
|
@@ -3897,6 +4091,23 @@ class SampleUVSurface(NodeBuilder):
|
|
|
3897
4091
|
sample_uv=sample_uv,
|
|
3898
4092
|
)
|
|
3899
4093
|
|
|
4094
|
+
@classmethod
|
|
4095
|
+
def matrix(
|
|
4096
|
+
cls,
|
|
4097
|
+
mesh: TYPE_INPUT_GEOMETRY = None,
|
|
4098
|
+
value: TYPE_INPUT_MATRIX = None,
|
|
4099
|
+
source_uv_map: TYPE_INPUT_VECTOR = None,
|
|
4100
|
+
sample_uv: TYPE_INPUT_VECTOR = None,
|
|
4101
|
+
) -> "SampleUVSurface":
|
|
4102
|
+
"""Create Sample UV Surface with operation '4x4 Matrix'."""
|
|
4103
|
+
return cls(
|
|
4104
|
+
data_type="FLOAT4X4",
|
|
4105
|
+
mesh=mesh,
|
|
4106
|
+
value=value,
|
|
4107
|
+
source_uv_map=source_uv_map,
|
|
4108
|
+
sample_uv=sample_uv,
|
|
4109
|
+
)
|
|
4110
|
+
|
|
3900
4111
|
@property
|
|
3901
4112
|
def i_mesh(self) -> SocketLinker:
|
|
3902
4113
|
"""Input socket: Mesh"""
|
|
@@ -3958,7 +4169,9 @@ class SampleUVSurface(NodeBuilder):
|
|
|
3958
4169
|
|
|
3959
4170
|
|
|
3960
4171
|
class ScaleElements(NodeBuilder):
|
|
3961
|
-
"""
|
|
4172
|
+
"""
|
|
4173
|
+
Scale groups of connected edges and faces
|
|
4174
|
+
"""
|
|
3962
4175
|
|
|
3963
4176
|
_bl_idname = "GeometryNodeScaleElements"
|
|
3964
4177
|
node: bpy.types.GeometryNodeScaleElements
|
|
@@ -4069,7 +4282,9 @@ class ScaleElements(NodeBuilder):
|
|
|
4069
4282
|
|
|
4070
4283
|
|
|
4071
4284
|
class ScaleInstances(NodeBuilder):
|
|
4072
|
-
"""
|
|
4285
|
+
"""
|
|
4286
|
+
Scale geometry instances in local or global space
|
|
4287
|
+
"""
|
|
4073
4288
|
|
|
4074
4289
|
_bl_idname = "GeometryNodeScaleInstances"
|
|
4075
4290
|
node: bpy.types.GeometryNodeScaleInstances
|
|
@@ -4125,7 +4340,9 @@ class ScaleInstances(NodeBuilder):
|
|
|
4125
4340
|
|
|
4126
4341
|
|
|
4127
4342
|
class SeparateComponents(NodeBuilder):
|
|
4128
|
-
"""
|
|
4343
|
+
"""
|
|
4344
|
+
Split a geometry into a separate output for each type of data in the geometry
|
|
4345
|
+
"""
|
|
4129
4346
|
|
|
4130
4347
|
_bl_idname = "GeometryNodeSeparateComponents"
|
|
4131
4348
|
node: bpy.types.GeometryNodeSeparateComponents
|
|
@@ -4173,7 +4390,9 @@ class SeparateComponents(NodeBuilder):
|
|
|
4173
4390
|
|
|
4174
4391
|
|
|
4175
4392
|
class SeparateGeometry(NodeBuilder):
|
|
4176
|
-
"""
|
|
4393
|
+
"""
|
|
4394
|
+
Split a geometry into two geometry outputs based on a selection
|
|
4395
|
+
"""
|
|
4177
4396
|
|
|
4178
4397
|
_bl_idname = "GeometryNodeSeparateGeometry"
|
|
4179
4398
|
node: bpy.types.GeometryNodeSeparateGeometry
|
|
@@ -4266,7 +4485,9 @@ class SeparateGeometry(NodeBuilder):
|
|
|
4266
4485
|
|
|
4267
4486
|
|
|
4268
4487
|
class SetCurveNormal(NodeBuilder):
|
|
4269
|
-
"""
|
|
4488
|
+
"""
|
|
4489
|
+
Set the evaluation mode for curve normals
|
|
4490
|
+
"""
|
|
4270
4491
|
|
|
4271
4492
|
_bl_idname = "GeometryNodeSetCurveNormal"
|
|
4272
4493
|
node: bpy.types.GeometryNodeSetCurveNormal
|
|
@@ -4315,7 +4536,9 @@ class SetCurveNormal(NodeBuilder):
|
|
|
4315
4536
|
|
|
4316
4537
|
|
|
4317
4538
|
class SetCurveRadius(NodeBuilder):
|
|
4318
|
-
"""
|
|
4539
|
+
"""
|
|
4540
|
+
Set the radius of the curve at each control point
|
|
4541
|
+
"""
|
|
4319
4542
|
|
|
4320
4543
|
_bl_idname = "GeometryNodeSetCurveRadius"
|
|
4321
4544
|
node: bpy.types.GeometryNodeSetCurveRadius
|
|
@@ -4353,7 +4576,9 @@ class SetCurveRadius(NodeBuilder):
|
|
|
4353
4576
|
|
|
4354
4577
|
|
|
4355
4578
|
class SetCurveTilt(NodeBuilder):
|
|
4356
|
-
"""
|
|
4579
|
+
"""
|
|
4580
|
+
Set the tilt angle at each curve control point
|
|
4581
|
+
"""
|
|
4357
4582
|
|
|
4358
4583
|
_bl_idname = "GeometryNodeSetCurveTilt"
|
|
4359
4584
|
node: bpy.types.GeometryNodeSetCurveTilt
|
|
@@ -4391,7 +4616,9 @@ class SetCurveTilt(NodeBuilder):
|
|
|
4391
4616
|
|
|
4392
4617
|
|
|
4393
4618
|
class SetFaceSet(NodeBuilder):
|
|
4394
|
-
"""
|
|
4619
|
+
"""
|
|
4620
|
+
Set sculpt face set values for faces
|
|
4621
|
+
"""
|
|
4395
4622
|
|
|
4396
4623
|
_bl_idname = "GeometryNodeToolSetFaceSet"
|
|
4397
4624
|
node: bpy.types.GeometryNodeToolSetFaceSet
|
|
@@ -4429,7 +4656,9 @@ class SetFaceSet(NodeBuilder):
|
|
|
4429
4656
|
|
|
4430
4657
|
|
|
4431
4658
|
class SetGeometryName(NodeBuilder):
|
|
4432
|
-
"""
|
|
4659
|
+
"""
|
|
4660
|
+
Set the name of a geometry for easier debugging
|
|
4661
|
+
"""
|
|
4433
4662
|
|
|
4434
4663
|
_bl_idname = "GeometryNodeSetGeometryName"
|
|
4435
4664
|
node: bpy.types.GeometryNodeSetGeometryName
|
|
@@ -4461,7 +4690,9 @@ class SetGeometryName(NodeBuilder):
|
|
|
4461
4690
|
|
|
4462
4691
|
|
|
4463
4692
|
class SetGreasePencilColor(NodeBuilder):
|
|
4464
|
-
"""
|
|
4693
|
+
"""
|
|
4694
|
+
Set color and opacity attributes on Grease Pencil geometry
|
|
4695
|
+
"""
|
|
4465
4696
|
|
|
4466
4697
|
_bl_idname = "GeometryNodeSetGreasePencilColor"
|
|
4467
4698
|
node: bpy.types.GeometryNodeSetGreasePencilColor
|
|
@@ -4520,7 +4751,9 @@ class SetGreasePencilColor(NodeBuilder):
|
|
|
4520
4751
|
|
|
4521
4752
|
|
|
4522
4753
|
class SetGreasePencilDepth(NodeBuilder):
|
|
4523
|
-
"""
|
|
4754
|
+
"""
|
|
4755
|
+
Set the Grease Pencil depth order to use
|
|
4756
|
+
"""
|
|
4524
4757
|
|
|
4525
4758
|
_bl_idname = "GeometryNodeSetGreasePencilDepth"
|
|
4526
4759
|
node: bpy.types.GeometryNodeSetGreasePencilDepth
|
|
@@ -4556,7 +4789,9 @@ class SetGreasePencilDepth(NodeBuilder):
|
|
|
4556
4789
|
|
|
4557
4790
|
|
|
4558
4791
|
class SetGreasePencilSoftness(NodeBuilder):
|
|
4559
|
-
"""
|
|
4792
|
+
"""
|
|
4793
|
+
Set softness attribute on Grease Pencil geometry
|
|
4794
|
+
"""
|
|
4560
4795
|
|
|
4561
4796
|
_bl_idname = "GeometryNodeSetGreasePencilSoftness"
|
|
4562
4797
|
node: bpy.types.GeometryNodeSetGreasePencilSoftness
|
|
@@ -4598,7 +4833,9 @@ class SetGreasePencilSoftness(NodeBuilder):
|
|
|
4598
4833
|
|
|
4599
4834
|
|
|
4600
4835
|
class SetHandlePositions(NodeBuilder):
|
|
4601
|
-
"""
|
|
4836
|
+
"""
|
|
4837
|
+
Set the positions for the handles of Bézier curves
|
|
4838
|
+
"""
|
|
4602
4839
|
|
|
4603
4840
|
_bl_idname = "GeometryNodeSetCurveHandlePositions"
|
|
4604
4841
|
node: bpy.types.GeometryNodeSetCurveHandlePositions
|
|
@@ -4657,7 +4894,9 @@ class SetHandlePositions(NodeBuilder):
|
|
|
4657
4894
|
|
|
4658
4895
|
|
|
4659
4896
|
class SetID(NodeBuilder):
|
|
4660
|
-
"""
|
|
4897
|
+
"""
|
|
4898
|
+
Set the id attribute on the input geometry, mainly used internally for randomizing
|
|
4899
|
+
"""
|
|
4661
4900
|
|
|
4662
4901
|
_bl_idname = "GeometryNodeSetID"
|
|
4663
4902
|
node: bpy.types.GeometryNodeSetID
|
|
@@ -4695,7 +4934,9 @@ class SetID(NodeBuilder):
|
|
|
4695
4934
|
|
|
4696
4935
|
|
|
4697
4936
|
class SetInstanceTransform(NodeBuilder):
|
|
4698
|
-
"""
|
|
4937
|
+
"""
|
|
4938
|
+
Set the transformation matrix of every instance
|
|
4939
|
+
"""
|
|
4699
4940
|
|
|
4700
4941
|
_bl_idname = "GeometryNodeSetInstanceTransform"
|
|
4701
4942
|
node: bpy.types.GeometryNodeSetInstanceTransform
|
|
@@ -4737,7 +4978,9 @@ class SetInstanceTransform(NodeBuilder):
|
|
|
4737
4978
|
|
|
4738
4979
|
|
|
4739
4980
|
class SetMaterial(NodeBuilder):
|
|
4740
|
-
"""
|
|
4981
|
+
"""
|
|
4982
|
+
Assign a material to geometry elements
|
|
4983
|
+
"""
|
|
4741
4984
|
|
|
4742
4985
|
_bl_idname = "GeometryNodeSetMaterial"
|
|
4743
4986
|
node: bpy.types.GeometryNodeSetMaterial
|
|
@@ -4775,7 +5018,9 @@ class SetMaterial(NodeBuilder):
|
|
|
4775
5018
|
|
|
4776
5019
|
|
|
4777
5020
|
class SetMaterialIndex(NodeBuilder):
|
|
4778
|
-
"""
|
|
5021
|
+
"""
|
|
5022
|
+
Set the material index for each selected geometry element
|
|
5023
|
+
"""
|
|
4779
5024
|
|
|
4780
5025
|
_bl_idname = "GeometryNodeSetMaterialIndex"
|
|
4781
5026
|
node: bpy.types.GeometryNodeSetMaterialIndex
|
|
@@ -4817,7 +5062,9 @@ class SetMaterialIndex(NodeBuilder):
|
|
|
4817
5062
|
|
|
4818
5063
|
|
|
4819
5064
|
class SetMeshNormal(NodeBuilder):
|
|
4820
|
-
"""
|
|
5065
|
+
"""
|
|
5066
|
+
Store a normal vector for each mesh element
|
|
5067
|
+
"""
|
|
4821
5068
|
|
|
4822
5069
|
_bl_idname = "GeometryNodeSetMeshNormal"
|
|
4823
5070
|
node: bpy.types.GeometryNodeSetMeshNormal
|
|
@@ -4857,6 +5104,13 @@ class SetMeshNormal(NodeBuilder):
|
|
|
4857
5104
|
"""Create Set Mesh Normal with operation 'Face'."""
|
|
4858
5105
|
return cls(domain="FACE", mesh=mesh, custom_normal=custom_normal)
|
|
4859
5106
|
|
|
5107
|
+
@classmethod
|
|
5108
|
+
def face_corner(
|
|
5109
|
+
cls, mesh: TYPE_INPUT_GEOMETRY = None, custom_normal: TYPE_INPUT_VECTOR = None
|
|
5110
|
+
) -> "SetMeshNormal":
|
|
5111
|
+
"""Create Set Mesh Normal with operation 'Face Corner'."""
|
|
5112
|
+
return cls(domain="CORNER", mesh=mesh, custom_normal=custom_normal)
|
|
5113
|
+
|
|
4860
5114
|
@property
|
|
4861
5115
|
def i_mesh(self) -> SocketLinker:
|
|
4862
5116
|
"""Input socket: Mesh"""
|
|
@@ -4900,7 +5154,9 @@ class SetMeshNormal(NodeBuilder):
|
|
|
4900
5154
|
|
|
4901
5155
|
|
|
4902
5156
|
class SetPointRadius(NodeBuilder):
|
|
4903
|
-
"""
|
|
5157
|
+
"""
|
|
5158
|
+
Set the display size of point cloud points
|
|
5159
|
+
"""
|
|
4904
5160
|
|
|
4905
5161
|
_bl_idname = "GeometryNodeSetPointRadius"
|
|
4906
5162
|
node: bpy.types.GeometryNodeSetPointRadius
|
|
@@ -4938,7 +5194,9 @@ class SetPointRadius(NodeBuilder):
|
|
|
4938
5194
|
|
|
4939
5195
|
|
|
4940
5196
|
class SetPosition(NodeBuilder):
|
|
4941
|
-
"""
|
|
5197
|
+
"""
|
|
5198
|
+
Set the location of each point
|
|
5199
|
+
"""
|
|
4942
5200
|
|
|
4943
5201
|
_bl_idname = "GeometryNodeSetPosition"
|
|
4944
5202
|
node: bpy.types.GeometryNodeSetPosition
|
|
@@ -4987,7 +5245,9 @@ class SetPosition(NodeBuilder):
|
|
|
4987
5245
|
|
|
4988
5246
|
|
|
4989
5247
|
class SetSelection(NodeBuilder):
|
|
4990
|
-
"""
|
|
5248
|
+
"""
|
|
5249
|
+
Set selection of the edited geometry, for tool execution
|
|
5250
|
+
"""
|
|
4991
5251
|
|
|
4992
5252
|
_bl_idname = "GeometryNodeToolSetSelection"
|
|
4993
5253
|
node: bpy.types.GeometryNodeToolSetSelection
|
|
@@ -5067,7 +5327,9 @@ class SetSelection(NodeBuilder):
|
|
|
5067
5327
|
|
|
5068
5328
|
|
|
5069
5329
|
class SetShadeSmooth(NodeBuilder):
|
|
5070
|
-
"""
|
|
5330
|
+
"""
|
|
5331
|
+
Control the smoothness of mesh normals around each face by changing the "shade smooth" attribute
|
|
5332
|
+
"""
|
|
5071
5333
|
|
|
5072
5334
|
_bl_idname = "GeometryNodeSetShadeSmooth"
|
|
5073
5335
|
node: bpy.types.GeometryNodeSetShadeSmooth
|
|
@@ -5149,7 +5411,9 @@ class SetShadeSmooth(NodeBuilder):
|
|
|
5149
5411
|
|
|
5150
5412
|
|
|
5151
5413
|
class SetSplineCyclic(NodeBuilder):
|
|
5152
|
-
"""
|
|
5414
|
+
"""
|
|
5415
|
+
Control whether each spline loops back on itself by changing the "cyclic" attribute
|
|
5416
|
+
"""
|
|
5153
5417
|
|
|
5154
5418
|
_bl_idname = "GeometryNodeSetSplineCyclic"
|
|
5155
5419
|
node: bpy.types.GeometryNodeSetSplineCyclic
|
|
@@ -5187,7 +5451,9 @@ class SetSplineCyclic(NodeBuilder):
|
|
|
5187
5451
|
|
|
5188
5452
|
|
|
5189
5453
|
class SetSplineResolution(NodeBuilder):
|
|
5190
|
-
"""
|
|
5454
|
+
"""
|
|
5455
|
+
Control how many evaluated points should be generated on every curve segment
|
|
5456
|
+
"""
|
|
5191
5457
|
|
|
5192
5458
|
_bl_idname = "GeometryNodeSetSplineResolution"
|
|
5193
5459
|
node: bpy.types.GeometryNodeSetSplineResolution
|
|
@@ -5229,7 +5495,9 @@ class SetSplineResolution(NodeBuilder):
|
|
|
5229
5495
|
|
|
5230
5496
|
|
|
5231
5497
|
class SetSplineType(NodeBuilder):
|
|
5232
|
-
"""
|
|
5498
|
+
"""
|
|
5499
|
+
Change the type of curves
|
|
5500
|
+
"""
|
|
5233
5501
|
|
|
5234
5502
|
_bl_idname = "GeometryNodeCurveSplineType"
|
|
5235
5503
|
node: bpy.types.GeometryNodeCurveSplineType
|
|
@@ -5271,7 +5539,9 @@ class SetSplineType(NodeBuilder):
|
|
|
5271
5539
|
|
|
5272
5540
|
|
|
5273
5541
|
class SortElements(NodeBuilder):
|
|
5274
|
-
"""
|
|
5542
|
+
"""
|
|
5543
|
+
Rearrange geometry elements, changing their indices
|
|
5544
|
+
"""
|
|
5275
5545
|
|
|
5276
5546
|
_bl_idname = "GeometryNodeSortElements"
|
|
5277
5547
|
node: bpy.types.GeometryNodeSortElements
|
|
@@ -5415,7 +5685,9 @@ class SortElements(NodeBuilder):
|
|
|
5415
5685
|
|
|
5416
5686
|
|
|
5417
5687
|
class Spiral(NodeBuilder):
|
|
5418
|
-
"""
|
|
5688
|
+
"""
|
|
5689
|
+
Generate a poly spline in a spiral shape
|
|
5690
|
+
"""
|
|
5419
5691
|
|
|
5420
5692
|
_bl_idname = "GeometryNodeCurveSpiral"
|
|
5421
5693
|
node: bpy.types.GeometryNodeCurveSpiral
|
|
@@ -5478,7 +5750,9 @@ class Spiral(NodeBuilder):
|
|
|
5478
5750
|
|
|
5479
5751
|
|
|
5480
5752
|
class SplitEdges(NodeBuilder):
|
|
5481
|
-
"""
|
|
5753
|
+
"""
|
|
5754
|
+
Duplicate mesh edges and break connections with the surrounding faces
|
|
5755
|
+
"""
|
|
5482
5756
|
|
|
5483
5757
|
_bl_idname = "GeometryNodeSplitEdges"
|
|
5484
5758
|
node: bpy.types.GeometryNodeSplitEdges
|
|
@@ -5510,7 +5784,9 @@ class SplitEdges(NodeBuilder):
|
|
|
5510
5784
|
|
|
5511
5785
|
|
|
5512
5786
|
class SplitToInstances(NodeBuilder):
|
|
5513
|
-
"""
|
|
5787
|
+
"""
|
|
5788
|
+
Create separate geometries containing the elements from the same group
|
|
5789
|
+
"""
|
|
5514
5790
|
|
|
5515
5791
|
_bl_idname = "GeometryNodeSplitToInstances"
|
|
5516
5792
|
node: bpy.types.GeometryNodeSplitToInstances
|
|
@@ -5639,7 +5915,9 @@ class SplitToInstances(NodeBuilder):
|
|
|
5639
5915
|
|
|
5640
5916
|
|
|
5641
5917
|
class Star(NodeBuilder):
|
|
5642
|
-
"""
|
|
5918
|
+
"""
|
|
5919
|
+
Generate a poly spline in a star pattern by connecting alternating points of two circles
|
|
5920
|
+
"""
|
|
5643
5921
|
|
|
5644
5922
|
_bl_idname = "GeometryNodeCurveStar"
|
|
5645
5923
|
node: bpy.types.GeometryNodeCurveStar
|
|
@@ -5693,7 +5971,9 @@ class Star(NodeBuilder):
|
|
|
5693
5971
|
|
|
5694
5972
|
|
|
5695
5973
|
class StringToCurves(NodeBuilder):
|
|
5696
|
-
"""
|
|
5974
|
+
"""
|
|
5975
|
+
Generate a paragraph of text with a specific font, using a curve instance to store each character
|
|
5976
|
+
"""
|
|
5697
5977
|
|
|
5698
5978
|
_bl_idname = "GeometryNodeStringToCurves"
|
|
5699
5979
|
node: bpy.types.GeometryNodeStringToCurves
|
|
@@ -5854,7 +6134,9 @@ class StringToCurves(NodeBuilder):
|
|
|
5854
6134
|
|
|
5855
6135
|
|
|
5856
6136
|
class SubdivideCurve(NodeBuilder):
|
|
5857
|
-
"""
|
|
6137
|
+
"""
|
|
6138
|
+
Dividing each curve segment into a specified number of pieces
|
|
6139
|
+
"""
|
|
5858
6140
|
|
|
5859
6141
|
_bl_idname = "GeometryNodeSubdivideCurve"
|
|
5860
6142
|
node: bpy.types.GeometryNodeSubdivideCurve
|
|
@@ -5886,7 +6168,9 @@ class SubdivideCurve(NodeBuilder):
|
|
|
5886
6168
|
|
|
5887
6169
|
|
|
5888
6170
|
class SubdivideMesh(NodeBuilder):
|
|
5889
|
-
"""
|
|
6171
|
+
"""
|
|
6172
|
+
Divide mesh faces into smaller ones without changing the shape or volume, using linear interpolation to place the new vertices
|
|
6173
|
+
"""
|
|
5890
6174
|
|
|
5891
6175
|
_bl_idname = "GeometryNodeSubdivideMesh"
|
|
5892
6176
|
node: bpy.types.GeometryNodeSubdivideMesh
|
|
@@ -5918,7 +6202,9 @@ class SubdivideMesh(NodeBuilder):
|
|
|
5918
6202
|
|
|
5919
6203
|
|
|
5920
6204
|
class SubdivisionSurface(NodeBuilder):
|
|
5921
|
-
"""
|
|
6205
|
+
"""
|
|
6206
|
+
Divide mesh faces to form a smooth surface, using the Catmull-Clark subdivision method
|
|
6207
|
+
"""
|
|
5922
6208
|
|
|
5923
6209
|
_bl_idname = "GeometryNodeSubdivisionSurface"
|
|
5924
6210
|
node: bpy.types.GeometryNodeSubdivisionSurface
|
|
@@ -5988,7 +6274,9 @@ class SubdivisionSurface(NodeBuilder):
|
|
|
5988
6274
|
|
|
5989
6275
|
|
|
5990
6276
|
class TransformGeometry(NodeBuilder):
|
|
5991
|
-
"""
|
|
6277
|
+
"""
|
|
6278
|
+
Translate, rotate or scale the geometry
|
|
6279
|
+
"""
|
|
5992
6280
|
|
|
5993
6281
|
_bl_idname = "GeometryNodeTransform"
|
|
5994
6282
|
node: bpy.types.GeometryNodeTransform
|
|
@@ -6051,7 +6339,9 @@ class TransformGeometry(NodeBuilder):
|
|
|
6051
6339
|
|
|
6052
6340
|
|
|
6053
6341
|
class TranslateInstances(NodeBuilder):
|
|
6054
|
-
"""
|
|
6342
|
+
"""
|
|
6343
|
+
Move top-level geometry instances in local or global space
|
|
6344
|
+
"""
|
|
6055
6345
|
|
|
6056
6346
|
_bl_idname = "GeometryNodeTranslateInstances"
|
|
6057
6347
|
node: bpy.types.GeometryNodeTranslateInstances
|
|
@@ -6100,7 +6390,9 @@ class TranslateInstances(NodeBuilder):
|
|
|
6100
6390
|
|
|
6101
6391
|
|
|
6102
6392
|
class Triangulate(NodeBuilder):
|
|
6103
|
-
"""
|
|
6393
|
+
"""
|
|
6394
|
+
Convert all faces in a mesh to triangular faces
|
|
6395
|
+
"""
|
|
6104
6396
|
|
|
6105
6397
|
_bl_idname = "GeometryNodeTriangulate"
|
|
6106
6398
|
node: bpy.types.GeometryNodeTriangulate
|
|
@@ -6149,7 +6441,9 @@ class Triangulate(NodeBuilder):
|
|
|
6149
6441
|
|
|
6150
6442
|
|
|
6151
6443
|
class TrimCurve(NodeBuilder):
|
|
6152
|
-
"""
|
|
6444
|
+
"""
|
|
6445
|
+
Shorten curves by removing portions at the start or end
|
|
6446
|
+
"""
|
|
6153
6447
|
|
|
6154
6448
|
_bl_idname = "GeometryNodeTrimCurve"
|
|
6155
6449
|
node: bpy.types.GeometryNodeTrimCurve
|
|
@@ -6222,7 +6516,9 @@ class TrimCurve(NodeBuilder):
|
|
|
6222
6516
|
|
|
6223
6517
|
|
|
6224
6518
|
class UVSphere(NodeBuilder):
|
|
6225
|
-
"""
|
|
6519
|
+
"""
|
|
6520
|
+
Generate a spherical mesh with quads, except for triangles at the top and bottom
|
|
6521
|
+
"""
|
|
6226
6522
|
|
|
6227
6523
|
_bl_idname = "GeometryNodeMeshUVSphere"
|
|
6228
6524
|
node: bpy.types.GeometryNodeMeshUVSphere
|