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/nodes/geometry.py CHANGED
@@ -19,7 +19,9 @@ from ..types import (
19
19
 
20
20
 
21
21
  class Arc(NodeBuilder):
22
- """Generate a poly spline arc"""
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
- """Calculate the limits of a geometry's positions and generate a box mesh with those dimensions"""
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
- """Generate a 2D Bézier spline from the given control points and handles"""
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
- """Generate a cone mesh"""
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
- """Create a mesh that encloses all points in the input geometry with the smallest number of points"""
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
- """Generate a cuboid mesh with variable side lengths and subdivisions"""
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
- """Generate a poly spline circle"""
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
- """Retrieve the length of all splines added together"""
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
- """Generate a poly spline line with two points"""
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
- """Convert curves into a mesh, optionally with a custom profile shape defined by curves"""
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
- """Generate a point cloud by sampling positions along curves"""
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
- """Convert the curves in each top-level instance into Grease Pencil layer"""
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
- """Generate a cylinder mesh"""
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
- """Translate and rotate curves based on changes between the object's original and evaluated surface mesh"""
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
- """Remove selected elements of a geometry"""
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
- """Generate points spread out on the surface of a mesh"""
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
- """Convert Faces into vertices and vertices into faces"""
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
- """Generate an arbitrary number copies of each selected input element"""
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
- """Output curves following paths across mesh edges"""
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
- """Generate new vertices, edges, or faces from selected elements and move them based on an offset while keeping them connected by their boundary"""
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
- """Generate a mesh on the XY plane with faces on the inside of input curves"""
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
- """Round corners by generating circular arcs on each control point"""
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
- """Reverse the order of the vertices and edges of selected faces, flipping their normal direction"""
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
- """Compute the closest location on the target geometry"""
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
- """Convert Grease Pencil layers into curve instances"""
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
- """Generate a planar mesh on the XY plane"""
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
- """Generate a spherical mesh that consists of equally sized triangles"""
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
- """Generate a reference to geometry at each of the input points, without duplicating its underlying data"""
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
- """Generate points at the origins of instances.
1704
- Note: Nested instances are not affected by this node"""
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
- """Generate new curves on points by interpolating between existing curves"""
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
- """Provide a selection of faces that use the specified material"""
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
- """Join groups of Grease Pencil layers into one"""
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
- """Merge vertices or points within a given distance"""
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
- """Cut, subtract, or join multiple mesh inputs"""
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
- """Generate a circular ring of edges"""
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
- """Generate vertices in a line and connect them with edges"""
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
- """Generate a curve from a mesh"""
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
- """Generate a point cloud from a mesh's vertices"""
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
- """Generate a point cloud with positions and radii defined by fields"""
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
- """Split all points to curve by its group ID and reorder by weight"""
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
- """Generate a mesh vertex for each point cloud point"""
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
- """Generate a poly spline in a parabola shape with control points positions"""
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
- """Generate a polygon with four points"""
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
- """Cast rays from the context geometry onto a target geometry, and retrieve information from each hit point"""
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
- """Convert instances into real geometry data"""
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
- """Swap one material with another"""
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
- """Generate a poly spline for each input spline"""
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
- """Change the direction of curves by swapping their start and end data"""
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
- """Rotate geometry instances in local or global space"""
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
- """Retrieve data from a point on a curve at a certain distance from its start"""
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
- """Retrieve values from specific geometry elements"""
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
- """Find the element of a geometry closest to a position. Similar to the "Index of Nearest" node"""
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
- """Calculate the interpolated value of a mesh attribute on the closest point of its surface"""
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
- """Calculate the interpolated values of a mesh attribute at a UV coordinate"""
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
- """Scale groups of connected edges and faces"""
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
- """Scale geometry instances in local or global space"""
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
- """Split a geometry into a separate output for each type of data in the geometry"""
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
- """Split a geometry into two geometry outputs based on a selection"""
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
- """Set the evaluation mode for curve normals"""
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
- """Set the radius of the curve at each control point"""
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
- """Set the tilt angle at each curve control point"""
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
- """Set sculpt face set values for faces"""
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
- """Set the name of a geometry for easier debugging"""
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
- """Set color and opacity attributes on Grease Pencil geometry"""
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
- """Set the Grease Pencil depth order to use"""
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
- """Set softness attribute on Grease Pencil geometry"""
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
- """Set the positions for the handles of Bézier curves"""
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
- """Set the id attribute on the input geometry, mainly used internally for randomizing"""
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
- """Set the transformation matrix of every instance"""
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
- """Assign a material to geometry elements"""
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
- """Set the material index for each selected geometry element"""
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
- """Store a normal vector for each mesh element"""
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
- """Set the display size of point cloud points"""
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
- """Set the location of each point"""
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
- """Set selection of the edited geometry, for tool execution"""
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
- """Control the smoothness of mesh normals around each face by changing the "shade smooth" attribute"""
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
- """Control whether each spline loops back on itself by changing the "cyclic" attribute"""
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
- """Control how many evaluated points should be generated on every curve segment"""
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
- """Change the type of curves"""
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
- """Rearrange geometry elements, changing their indices"""
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
- """Generate a poly spline in a spiral shape"""
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
- """Duplicate mesh edges and break connections with the surrounding faces"""
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
- """Create separate geometries containing the elements from the same group"""
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
- """Generate a poly spline in a star pattern by connecting alternating points of two circles"""
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
- """Generate a paragraph of text with a specific font, using a curve instance to store each character"""
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
- """Dividing each curve segment into a specified number of pieces"""
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
- """Divide mesh faces into smaller ones without changing the shape or volume, using linear interpolation to place the new vertices"""
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
- """Divide mesh faces to form a smooth surface, using the Catmull-Clark subdivision method"""
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
- """Translate, rotate or scale the geometry"""
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
- """Move top-level geometry instances in local or global space"""
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
- """Convert all faces in a mesh to triangular faces"""
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
- """Shorten curves by removing portions at the start or end"""
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
- """Generate a spherical mesh with quads, except for triangles at the top and bottom"""
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