nodebpy 0.2.1__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/input.py CHANGED
@@ -17,7 +17,9 @@ from ..types import (
17
17
 
18
18
 
19
19
  class Cursor3D(NodeBuilder):
20
- """The scene's 3D cursor location and rotation"""
20
+ """
21
+ The scene's 3D cursor location and rotation
22
+ """
21
23
 
22
24
  _bl_idname = "GeometryNodeTool3DCursor"
23
25
  node: bpy.types.GeometryNodeTool3DCursor
@@ -40,7 +42,9 @@ class Cursor3D(NodeBuilder):
40
42
 
41
43
 
42
44
  class ActiveCamera(NodeBuilder):
43
- """Retrieve the scene's active camera"""
45
+ """
46
+ Retrieve the scene's active camera
47
+ """
44
48
 
45
49
  _bl_idname = "GeometryNodeInputActiveCamera"
46
50
  node: bpy.types.GeometryNodeInputActiveCamera
@@ -58,7 +62,9 @@ class ActiveCamera(NodeBuilder):
58
62
 
59
63
 
60
64
  class ActiveElement(NodeBuilder):
61
- """Active element indices of the edited geometry, for tool execution"""
65
+ """
66
+ Active element indices of the edited geometry, for tool execution
67
+ """
62
68
 
63
69
  _bl_idname = "GeometryNodeToolActiveElement"
64
70
  node: bpy.types.GeometryNodeToolActiveElement
@@ -109,7 +115,9 @@ class ActiveElement(NodeBuilder):
109
115
 
110
116
 
111
117
  class Boolean(NodeBuilder):
112
- """Provide a True/False value that can be connected to other nodes in the tree"""
118
+ """
119
+ Provide a True/False value that can be connected to other nodes in the tree
120
+ """
113
121
 
114
122
  _bl_idname = "FunctionNodeInputBool"
115
123
  node: bpy.types.FunctionNodeInputBool
@@ -135,7 +143,9 @@ class Boolean(NodeBuilder):
135
143
 
136
144
 
137
145
  class CameraInfo(NodeBuilder):
138
- """Retrieve information from a camera object"""
146
+ """
147
+ Retrieve information from a camera object
148
+ """
139
149
 
140
150
  _bl_idname = "GeometryNodeCameraInfo"
141
151
  node: bpy.types.GeometryNodeCameraInfo
@@ -198,7 +208,9 @@ class CameraInfo(NodeBuilder):
198
208
 
199
209
 
200
210
  class Collection(NodeBuilder):
201
- """Output a single collection"""
211
+ """
212
+ Output a single collection
213
+ """
202
214
 
203
215
  _bl_idname = "GeometryNodeInputCollection"
204
216
  node: bpy.types.GeometryNodeInputCollection
@@ -216,7 +228,9 @@ class Collection(NodeBuilder):
216
228
 
217
229
 
218
230
  class CollectionInfo(NodeBuilder):
219
- """Retrieve geometry instances from a collection"""
231
+ """
232
+ Retrieve geometry instances from a collection
233
+ """
220
234
 
221
235
  _bl_idname = "GeometryNodeCollectionInfo"
222
236
  node: bpy.types.GeometryNodeCollectionInfo
@@ -268,7 +282,9 @@ class CollectionInfo(NodeBuilder):
268
282
 
269
283
 
270
284
  class Color(NodeBuilder):
271
- """Output a color value chosen with the color picker widget"""
285
+ """
286
+ Output a color value chosen with the color picker widget
287
+ """
272
288
 
273
289
  _bl_idname = "FunctionNodeInputColor"
274
290
  node: bpy.types.FunctionNodeInputColor
@@ -296,7 +312,9 @@ class Color(NodeBuilder):
296
312
 
297
313
 
298
314
  class CornersOfEdge(NodeBuilder):
299
- """Retrieve face corners connected to edges"""
315
+ """
316
+ Retrieve face corners connected to edges
317
+ """
300
318
 
301
319
  _bl_idname = "GeometryNodeCornersOfEdge"
302
320
  node: bpy.types.GeometryNodeCornersOfEdge
@@ -343,7 +361,9 @@ class CornersOfEdge(NodeBuilder):
343
361
 
344
362
 
345
363
  class CornersOfFace(NodeBuilder):
346
- """Retrieve corners that make up a face"""
364
+ """
365
+ Retrieve corners that make up a face
366
+ """
347
367
 
348
368
  _bl_idname = "GeometryNodeCornersOfFace"
349
369
  node: bpy.types.GeometryNodeCornersOfFace
@@ -390,7 +410,9 @@ class CornersOfFace(NodeBuilder):
390
410
 
391
411
 
392
412
  class CornersOfVertex(NodeBuilder):
393
- """Retrieve face corners connected to vertices"""
413
+ """
414
+ Retrieve face corners connected to vertices
415
+ """
394
416
 
395
417
  _bl_idname = "GeometryNodeCornersOfVertex"
396
418
  node: bpy.types.GeometryNodeCornersOfVertex
@@ -437,7 +459,9 @@ class CornersOfVertex(NodeBuilder):
437
459
 
438
460
 
439
461
  class CurveHandlePositions(NodeBuilder):
440
- """Retrieve the position of each Bézier control point's handles"""
462
+ """
463
+ Retrieve the position of each Bézier control point's handles
464
+ """
441
465
 
442
466
  _bl_idname = "GeometryNodeInputCurveHandlePositions"
443
467
  node: bpy.types.GeometryNodeInputCurveHandlePositions
@@ -465,7 +489,9 @@ class CurveHandlePositions(NodeBuilder):
465
489
 
466
490
 
467
491
  class CurveTangent(NodeBuilder):
468
- """Retrieve the direction of curves at each control point"""
492
+ """
493
+ Retrieve the direction of curves at each control point
494
+ """
469
495
 
470
496
  _bl_idname = "GeometryNodeInputTangent"
471
497
  node: bpy.types.GeometryNodeInputTangent
@@ -483,7 +509,9 @@ class CurveTangent(NodeBuilder):
483
509
 
484
510
 
485
511
  class CurveTilt(NodeBuilder):
486
- """Retrieve the angle at each control point used to twist the curve's normal around its tangent"""
512
+ """
513
+ Retrieve the angle at each control point used to twist the curve's normal around its tangent
514
+ """
487
515
 
488
516
  _bl_idname = "GeometryNodeInputCurveTilt"
489
517
  node: bpy.types.GeometryNodeInputCurveTilt
@@ -501,7 +529,9 @@ class CurveTilt(NodeBuilder):
501
529
 
502
530
 
503
531
  class CurveOfPoint(NodeBuilder):
504
- """Retrieve the curve a control point is part of"""
532
+ """
533
+ Retrieve the curve a control point is part of
534
+ """
505
535
 
506
536
  _bl_idname = "GeometryNodeCurveOfPoint"
507
537
  node: bpy.types.GeometryNodeCurveOfPoint
@@ -529,7 +559,9 @@ class CurveOfPoint(NodeBuilder):
529
559
 
530
560
 
531
561
  class EdgeAngle(NodeBuilder):
532
- """The angle between the normals of connected manifold faces"""
562
+ """
563
+ The angle between the normals of connected manifold faces
564
+ """
533
565
 
534
566
  _bl_idname = "GeometryNodeInputMeshEdgeAngle"
535
567
  node: bpy.types.GeometryNodeInputMeshEdgeAngle
@@ -552,7 +584,9 @@ class EdgeAngle(NodeBuilder):
552
584
 
553
585
 
554
586
  class EdgeNeighbors(NodeBuilder):
555
- """Retrieve the number of faces that use each edge as one of their sides"""
587
+ """
588
+ Retrieve the number of faces that use each edge as one of their sides
589
+ """
556
590
 
557
591
  _bl_idname = "GeometryNodeInputMeshEdgeNeighbors"
558
592
  node: bpy.types.GeometryNodeInputMeshEdgeNeighbors
@@ -570,7 +604,9 @@ class EdgeNeighbors(NodeBuilder):
570
604
 
571
605
 
572
606
  class EdgePathsToSelection(NodeBuilder):
573
- """Output a selection of edges by following paths across mesh edges"""
607
+ """
608
+ Output a selection of edges by following paths across mesh edges
609
+ """
574
610
 
575
611
  _bl_idname = "GeometryNodeEdgePathsToSelection"
576
612
  node: bpy.types.GeometryNodeEdgePathsToSelection
@@ -605,7 +641,9 @@ class EdgePathsToSelection(NodeBuilder):
605
641
 
606
642
 
607
643
  class EdgeVertices(NodeBuilder):
608
- """Retrieve topology information relating to each edge of a mesh"""
644
+ """
645
+ Retrieve topology information relating to each edge of a mesh
646
+ """
609
647
 
610
648
  _bl_idname = "GeometryNodeInputMeshEdgeVertices"
611
649
  node: bpy.types.GeometryNodeInputMeshEdgeVertices
@@ -638,7 +676,9 @@ class EdgeVertices(NodeBuilder):
638
676
 
639
677
 
640
678
  class EdgesOfCorner(NodeBuilder):
641
- """Retrieve the edges on both sides of a face corner"""
679
+ """
680
+ Retrieve the edges on both sides of a face corner
681
+ """
642
682
 
643
683
  _bl_idname = "GeometryNodeEdgesOfCorner"
644
684
  node: bpy.types.GeometryNodeEdgesOfCorner
@@ -666,7 +706,9 @@ class EdgesOfCorner(NodeBuilder):
666
706
 
667
707
 
668
708
  class EdgesOfVertex(NodeBuilder):
669
- """Retrieve the edges connected to each vertex"""
709
+ """
710
+ Retrieve the edges connected to each vertex
711
+ """
670
712
 
671
713
  _bl_idname = "GeometryNodeEdgesOfVertex"
672
714
  node: bpy.types.GeometryNodeEdgesOfVertex
@@ -713,7 +755,9 @@ class EdgesOfVertex(NodeBuilder):
713
755
 
714
756
 
715
757
  class EdgesToFaceGroups(NodeBuilder):
716
- """Group faces into regions surrounded by the selected boundary edges"""
758
+ """
759
+ Group faces into regions surrounded by the selected boundary edges
760
+ """
717
761
 
718
762
  _bl_idname = "GeometryNodeEdgesToFaceGroups"
719
763
  node: bpy.types.GeometryNodeEdgesToFaceGroups
@@ -736,7 +780,9 @@ class EdgesToFaceGroups(NodeBuilder):
736
780
 
737
781
 
738
782
  class EndpointSelection(NodeBuilder):
739
- """Provide a selection for an arbitrary number of endpoints in each spline"""
783
+ """
784
+ Provide a selection for an arbitrary number of endpoints in each spline
785
+ """
740
786
 
741
787
  _bl_idname = "GeometryNodeCurveEndpointSelection"
742
788
  node: bpy.types.GeometryNodeCurveEndpointSelection
@@ -768,7 +814,9 @@ class EndpointSelection(NodeBuilder):
768
814
 
769
815
 
770
816
  class FaceArea(NodeBuilder):
771
- """Calculate the surface area of a mesh's faces"""
817
+ """
818
+ Calculate the surface area of a mesh's faces
819
+ """
772
820
 
773
821
  _bl_idname = "GeometryNodeInputMeshFaceArea"
774
822
  node: bpy.types.GeometryNodeInputMeshFaceArea
@@ -786,7 +834,9 @@ class FaceArea(NodeBuilder):
786
834
 
787
835
 
788
836
  class FaceGroupBoundaries(NodeBuilder):
789
- """Find edges on the boundaries between groups of faces with the same ID value"""
837
+ """
838
+ Find edges on the boundaries between groups of faces with the same ID value
839
+ """
790
840
 
791
841
  _bl_idname = "GeometryNodeMeshFaceSetBoundaries"
792
842
  node: bpy.types.GeometryNodeMeshFaceSetBoundaries
@@ -809,7 +859,9 @@ class FaceGroupBoundaries(NodeBuilder):
809
859
 
810
860
 
811
861
  class FaceNeighbors(NodeBuilder):
812
- """Retrieve topology information relating to each face of a mesh"""
862
+ """
863
+ Retrieve topology information relating to each face of a mesh
864
+ """
813
865
 
814
866
  _bl_idname = "GeometryNodeInputMeshFaceNeighbors"
815
867
  node: bpy.types.GeometryNodeInputMeshFaceNeighbors
@@ -832,7 +884,9 @@ class FaceNeighbors(NodeBuilder):
832
884
 
833
885
 
834
886
  class FaceSet(NodeBuilder):
835
- """Each face's sculpt face set value"""
887
+ """
888
+ Each face's sculpt face set value
889
+ """
836
890
 
837
891
  _bl_idname = "GeometryNodeToolFaceSet"
838
892
  node: bpy.types.GeometryNodeToolFaceSet
@@ -855,7 +909,9 @@ class FaceSet(NodeBuilder):
855
909
 
856
910
 
857
911
  class FaceOfCorner(NodeBuilder):
858
- """Retrieve the face each face corner is part of"""
912
+ """
913
+ Retrieve the face each face corner is part of
914
+ """
859
915
 
860
916
  _bl_idname = "GeometryNodeFaceOfCorner"
861
917
  node: bpy.types.GeometryNodeFaceOfCorner
@@ -883,7 +939,9 @@ class FaceOfCorner(NodeBuilder):
883
939
 
884
940
 
885
941
  class ID(NodeBuilder):
886
- """Retrieve a stable random identifier value from the "id" attribute on the point domain, or the index if the attribute does not exist"""
942
+ """
943
+ Retrieve a stable random identifier value from the "id" attribute on the point domain, or the index if the attribute does not exist
944
+ """
887
945
 
888
946
  _bl_idname = "GeometryNodeInputID"
889
947
  node: bpy.types.GeometryNodeInputID
@@ -901,7 +959,9 @@ class ID(NodeBuilder):
901
959
 
902
960
 
903
961
  class Image(NodeBuilder):
904
- """Input an image data-block"""
962
+ """
963
+ Input an image data-block
964
+ """
905
965
 
906
966
  _bl_idname = "GeometryNodeInputImage"
907
967
  node: bpy.types.GeometryNodeInputImage
@@ -919,7 +979,9 @@ class Image(NodeBuilder):
919
979
 
920
980
 
921
981
  class ImageInfo(NodeBuilder):
922
- """Retrieve information about an image"""
982
+ """
983
+ Retrieve information about an image
984
+ """
923
985
 
924
986
  _bl_idname = "GeometryNodeImageInfo"
925
987
  node: bpy.types.GeometryNodeImageInfo
@@ -971,7 +1033,9 @@ class ImageInfo(NodeBuilder):
971
1033
 
972
1034
 
973
1035
  class ImportCSV(NodeBuilder):
974
- """Import geometry from an CSV file"""
1036
+ """
1037
+ Import geometry from an CSV file
1038
+ """
975
1039
 
976
1040
  _bl_idname = "GeometryNodeImportCSV"
977
1041
  node: bpy.types.GeometryNodeImportCSV
@@ -1003,7 +1067,9 @@ class ImportCSV(NodeBuilder):
1003
1067
 
1004
1068
 
1005
1069
  class ImportOBJ(NodeBuilder):
1006
- """Import geometry from an OBJ file"""
1070
+ """
1071
+ Import geometry from an OBJ file
1072
+ """
1007
1073
 
1008
1074
  _bl_idname = "GeometryNodeImportOBJ"
1009
1075
  node: bpy.types.GeometryNodeImportOBJ
@@ -1026,7 +1092,9 @@ class ImportOBJ(NodeBuilder):
1026
1092
 
1027
1093
 
1028
1094
  class ImportPLY(NodeBuilder):
1029
- """Import a point cloud from a PLY file"""
1095
+ """
1096
+ Import a point cloud from a PLY file
1097
+ """
1030
1098
 
1031
1099
  _bl_idname = "GeometryNodeImportPLY"
1032
1100
  node: bpy.types.GeometryNodeImportPLY
@@ -1049,7 +1117,9 @@ class ImportPLY(NodeBuilder):
1049
1117
 
1050
1118
 
1051
1119
  class ImportSTL(NodeBuilder):
1052
- """Import a mesh from an STL file"""
1120
+ """
1121
+ Import a mesh from an STL file
1122
+ """
1053
1123
 
1054
1124
  _bl_idname = "GeometryNodeImportSTL"
1055
1125
  node: bpy.types.GeometryNodeImportSTL
@@ -1072,7 +1142,9 @@ class ImportSTL(NodeBuilder):
1072
1142
 
1073
1143
 
1074
1144
  class ImportText(NodeBuilder):
1075
- """Import a string from a text file"""
1145
+ """
1146
+ Import a string from a text file
1147
+ """
1076
1148
 
1077
1149
  _bl_idname = "GeometryNodeImportText"
1078
1150
  node: bpy.types.GeometryNodeImportText
@@ -1095,7 +1167,9 @@ class ImportText(NodeBuilder):
1095
1167
 
1096
1168
 
1097
1169
  class ImportVDB(NodeBuilder):
1098
- """Import volume data from a .vdb file"""
1170
+ """
1171
+ Import volume data from a .vdb file
1172
+ """
1099
1173
 
1100
1174
  _bl_idname = "GeometryNodeImportVDB"
1101
1175
  node: bpy.types.GeometryNodeImportVDB
@@ -1118,7 +1192,9 @@ class ImportVDB(NodeBuilder):
1118
1192
 
1119
1193
 
1120
1194
  class Index(NodeBuilder):
1121
- """Retrieve an integer value indicating the position of each element in the list, starting at zero"""
1195
+ """
1196
+ Retrieve an integer value indicating the position of each element in the list, starting at zero
1197
+ """
1122
1198
 
1123
1199
  _bl_idname = "GeometryNodeInputIndex"
1124
1200
  node: bpy.types.GeometryNodeInputIndex
@@ -1136,7 +1212,9 @@ class Index(NodeBuilder):
1136
1212
 
1137
1213
 
1138
1214
  class InstanceBounds(NodeBuilder):
1139
- """Calculate position bounds of each instance's geometry set"""
1215
+ """
1216
+ Calculate position bounds of each instance's geometry set
1217
+ """
1140
1218
 
1141
1219
  _bl_idname = "GeometryNodeInputInstanceBounds"
1142
1220
  node: bpy.types.GeometryNodeInputInstanceBounds
@@ -1164,7 +1242,9 @@ class InstanceBounds(NodeBuilder):
1164
1242
 
1165
1243
 
1166
1244
  class InstanceRotation(NodeBuilder):
1167
- """Retrieve the rotation of each instance in the geometry"""
1245
+ """
1246
+ Retrieve the rotation of each instance in the geometry
1247
+ """
1168
1248
 
1169
1249
  _bl_idname = "GeometryNodeInputInstanceRotation"
1170
1250
  node: bpy.types.GeometryNodeInputInstanceRotation
@@ -1182,7 +1262,9 @@ class InstanceRotation(NodeBuilder):
1182
1262
 
1183
1263
 
1184
1264
  class InstanceScale(NodeBuilder):
1185
- """Retrieve the scale of each instance in the geometry"""
1265
+ """
1266
+ Retrieve the scale of each instance in the geometry
1267
+ """
1186
1268
 
1187
1269
  _bl_idname = "GeometryNodeInputInstanceScale"
1188
1270
  node: bpy.types.GeometryNodeInputInstanceScale
@@ -1200,7 +1282,9 @@ class InstanceScale(NodeBuilder):
1200
1282
 
1201
1283
 
1202
1284
  class InstanceTransform(NodeBuilder):
1203
- """Retrieve the full transformation of each instance in the geometry"""
1285
+ """
1286
+ Retrieve the full transformation of each instance in the geometry
1287
+ """
1204
1288
 
1205
1289
  _bl_idname = "GeometryNodeInstanceTransform"
1206
1290
  node: bpy.types.GeometryNodeInstanceTransform
@@ -1218,7 +1302,9 @@ class InstanceTransform(NodeBuilder):
1218
1302
 
1219
1303
 
1220
1304
  class Integer(NodeBuilder):
1221
- """Provide an integer value that can be connected to other nodes in the tree"""
1305
+ """
1306
+ Provide an integer value that can be connected to other nodes in the tree
1307
+ """
1222
1308
 
1223
1309
  _bl_idname = "FunctionNodeInputInt"
1224
1310
  node: bpy.types.FunctionNodeInputInt
@@ -1244,7 +1330,9 @@ class Integer(NodeBuilder):
1244
1330
 
1245
1331
 
1246
1332
  class IsEdgeSmooth(NodeBuilder):
1247
- """Retrieve whether each edge is marked for smooth or split normals"""
1333
+ """
1334
+ Retrieve whether each edge is marked for smooth or split normals
1335
+ """
1248
1336
 
1249
1337
  _bl_idname = "GeometryNodeInputEdgeSmooth"
1250
1338
  node: bpy.types.GeometryNodeInputEdgeSmooth
@@ -1262,7 +1350,9 @@ class IsEdgeSmooth(NodeBuilder):
1262
1350
 
1263
1351
 
1264
1352
  class IsFacePlanar(NodeBuilder):
1265
- """Retrieve whether all triangles in a face are on the same plane, i.e. whether they have the same normal"""
1353
+ """
1354
+ Retrieve whether all triangles in a face are on the same plane, i.e. whether they have the same normal
1355
+ """
1266
1356
 
1267
1357
  _bl_idname = "GeometryNodeInputMeshFaceIsPlanar"
1268
1358
  node: bpy.types.GeometryNodeInputMeshFaceIsPlanar
@@ -1285,7 +1375,9 @@ class IsFacePlanar(NodeBuilder):
1285
1375
 
1286
1376
 
1287
1377
  class IsFaceSmooth(NodeBuilder):
1288
- """Retrieve whether each face is marked for smooth or sharp normals"""
1378
+ """
1379
+ Retrieve whether each face is marked for smooth or sharp normals
1380
+ """
1289
1381
 
1290
1382
  _bl_idname = "GeometryNodeInputShadeSmooth"
1291
1383
  node: bpy.types.GeometryNodeInputShadeSmooth
@@ -1303,7 +1395,9 @@ class IsFaceSmooth(NodeBuilder):
1303
1395
 
1304
1396
 
1305
1397
  class IsSplineCyclic(NodeBuilder):
1306
- """Retrieve whether each spline endpoint connects to the beginning"""
1398
+ """
1399
+ Retrieve whether each spline endpoint connects to the beginning
1400
+ """
1307
1401
 
1308
1402
  _bl_idname = "GeometryNodeInputSplineCyclic"
1309
1403
  node: bpy.types.GeometryNodeInputSplineCyclic
@@ -1321,7 +1415,9 @@ class IsSplineCyclic(NodeBuilder):
1321
1415
 
1322
1416
 
1323
1417
  class IsViewport(NodeBuilder):
1324
- """Retrieve whether the nodes are being evaluated for the viewport rather than the final render"""
1418
+ """
1419
+ Retrieve whether the nodes are being evaluated for the viewport rather than the final render
1420
+ """
1325
1421
 
1326
1422
  _bl_idname = "GeometryNodeIsViewport"
1327
1423
  node: bpy.types.GeometryNodeIsViewport
@@ -1339,7 +1435,9 @@ class IsViewport(NodeBuilder):
1339
1435
 
1340
1436
 
1341
1437
  class Material(NodeBuilder):
1342
- """Output a single material"""
1438
+ """
1439
+ Output a single material
1440
+ """
1343
1441
 
1344
1442
  _bl_idname = "GeometryNodeInputMaterial"
1345
1443
  node: bpy.types.GeometryNodeInputMaterial
@@ -1357,7 +1455,9 @@ class Material(NodeBuilder):
1357
1455
 
1358
1456
 
1359
1457
  class MaterialIndex(NodeBuilder):
1360
- """Retrieve the index of the material used for each element in the geometry's list of materials"""
1458
+ """
1459
+ Retrieve the index of the material used for each element in the geometry's list of materials
1460
+ """
1361
1461
 
1362
1462
  _bl_idname = "GeometryNodeInputMaterialIndex"
1363
1463
  node: bpy.types.GeometryNodeInputMaterialIndex
@@ -1375,7 +1475,9 @@ class MaterialIndex(NodeBuilder):
1375
1475
 
1376
1476
 
1377
1477
  class MeshIsland(NodeBuilder):
1378
- """Retrieve information about separate connected regions in a mesh"""
1478
+ """
1479
+ Retrieve information about separate connected regions in a mesh
1480
+ """
1379
1481
 
1380
1482
  _bl_idname = "GeometryNodeInputMeshIsland"
1381
1483
  node: bpy.types.GeometryNodeInputMeshIsland
@@ -1398,7 +1500,9 @@ class MeshIsland(NodeBuilder):
1398
1500
 
1399
1501
 
1400
1502
  class MousePosition(NodeBuilder):
1401
- """Retrieve the position of the mouse cursor"""
1503
+ """
1504
+ Retrieve the position of the mouse cursor
1505
+ """
1402
1506
 
1403
1507
  _bl_idname = "GeometryNodeToolMousePosition"
1404
1508
  node: bpy.types.GeometryNodeToolMousePosition
@@ -1431,7 +1535,9 @@ class MousePosition(NodeBuilder):
1431
1535
 
1432
1536
 
1433
1537
  class NamedAttribute(NodeBuilder):
1434
- """Retrieve the data of a specified attribute"""
1538
+ """
1539
+ Retrieve the data of a specified attribute
1540
+ """
1435
1541
 
1436
1542
  _bl_idname = "GeometryNodeInputNamedAttribute"
1437
1543
  node: bpy.types.GeometryNodeInputNamedAttribute
@@ -1485,6 +1591,11 @@ class NamedAttribute(NodeBuilder):
1485
1591
  """Create Named Attribute with operation 'Quaternion'."""
1486
1592
  return cls(data_type="QUATERNION", name=name)
1487
1593
 
1594
+ @classmethod
1595
+ def matrix(cls, name: TYPE_INPUT_STRING = "") -> "NamedAttribute":
1596
+ """Create Named Attribute with operation '4x4 Matrix'."""
1597
+ return cls(data_type="FLOAT4X4", name=name)
1598
+
1488
1599
  @property
1489
1600
  def i_name(self) -> SocketLinker:
1490
1601
  """Input socket: Name"""
@@ -1531,7 +1642,9 @@ class NamedAttribute(NodeBuilder):
1531
1642
 
1532
1643
 
1533
1644
  class NamedLayerSelection(NodeBuilder):
1534
- """Output a selection of a Grease Pencil layer"""
1645
+ """
1646
+ Output a selection of a Grease Pencil layer
1647
+ """
1535
1648
 
1536
1649
  _bl_idname = "GeometryNodeInputNamedLayerSelection"
1537
1650
  node: bpy.types.GeometryNodeInputNamedLayerSelection
@@ -1554,7 +1667,9 @@ class NamedLayerSelection(NodeBuilder):
1554
1667
 
1555
1668
 
1556
1669
  class Normal(NodeBuilder):
1557
- """Retrieve a unit length vector indicating the direction pointing away from the geometry at each element"""
1670
+ """
1671
+ Retrieve a unit length vector indicating the direction pointing away from the geometry at each element
1672
+ """
1558
1673
 
1559
1674
  _bl_idname = "GeometryNodeInputNormal"
1560
1675
  node: bpy.types.GeometryNodeInputNormal
@@ -1585,7 +1700,9 @@ class Normal(NodeBuilder):
1585
1700
 
1586
1701
 
1587
1702
  class Object(NodeBuilder):
1588
- """Output a single object"""
1703
+ """
1704
+ Output a single object
1705
+ """
1589
1706
 
1590
1707
  _bl_idname = "GeometryNodeInputObject"
1591
1708
  node: bpy.types.GeometryNodeInputObject
@@ -1603,7 +1720,9 @@ class Object(NodeBuilder):
1603
1720
 
1604
1721
 
1605
1722
  class ObjectInfo(NodeBuilder):
1606
- """Retrieve information from an object"""
1723
+ """
1724
+ Retrieve information from an object
1725
+ """
1607
1726
 
1608
1727
  _bl_idname = "GeometryNodeObjectInfo"
1609
1728
  node: bpy.types.GeometryNodeObjectInfo
@@ -1665,7 +1784,9 @@ class ObjectInfo(NodeBuilder):
1665
1784
 
1666
1785
 
1667
1786
  class OffsetCornerInFace(NodeBuilder):
1668
- """Retrieve corners in the same face as another"""
1787
+ """
1788
+ Retrieve corners in the same face as another
1789
+ """
1669
1790
 
1670
1791
  _bl_idname = "GeometryNodeOffsetCornerInFace"
1671
1792
  node: bpy.types.GeometryNodeOffsetCornerInFace
@@ -1697,7 +1818,9 @@ class OffsetCornerInFace(NodeBuilder):
1697
1818
 
1698
1819
 
1699
1820
  class OffsetPointInCurve(NodeBuilder):
1700
- """Offset a control point index within its curve"""
1821
+ """
1822
+ Offset a control point index within its curve
1823
+ """
1701
1824
 
1702
1825
  _bl_idname = "GeometryNodeOffsetPointInCurve"
1703
1826
  node: bpy.types.GeometryNodeOffsetPointInCurve
@@ -1734,7 +1857,9 @@ class OffsetPointInCurve(NodeBuilder):
1734
1857
 
1735
1858
 
1736
1859
  class PointsOfCurve(NodeBuilder):
1737
- """Retrieve a point index within a curve"""
1860
+ """
1861
+ Retrieve a point index within a curve
1862
+ """
1738
1863
 
1739
1864
  _bl_idname = "GeometryNodePointsOfCurve"
1740
1865
  node: bpy.types.GeometryNodePointsOfCurve
@@ -1781,7 +1906,9 @@ class PointsOfCurve(NodeBuilder):
1781
1906
 
1782
1907
 
1783
1908
  class Position(NodeBuilder):
1784
- """Retrieve a vector indicating the location of each element"""
1909
+ """
1910
+ Retrieve a vector indicating the location of each element
1911
+ """
1785
1912
 
1786
1913
  _bl_idname = "GeometryNodeInputPosition"
1787
1914
  node: bpy.types.GeometryNodeInputPosition
@@ -1799,7 +1926,9 @@ class Position(NodeBuilder):
1799
1926
 
1800
1927
 
1801
1928
  class Radius(NodeBuilder):
1802
- """Retrieve the radius at each point on curve or point cloud geometry"""
1929
+ """
1930
+ Retrieve the radius at each point on curve or point cloud geometry
1931
+ """
1803
1932
 
1804
1933
  _bl_idname = "GeometryNodeInputRadius"
1805
1934
  node: bpy.types.GeometryNodeInputRadius
@@ -1817,7 +1946,9 @@ class Radius(NodeBuilder):
1817
1946
 
1818
1947
 
1819
1948
  class Rotation(NodeBuilder):
1820
- """Provide a rotation value that can be connected to other nodes in the tree"""
1949
+ """
1950
+ Provide a rotation value that can be connected to other nodes in the tree
1951
+ """
1821
1952
 
1822
1953
  _bl_idname = "FunctionNodeInputRotation"
1823
1954
  node: bpy.types.FunctionNodeInputRotation
@@ -1843,7 +1974,9 @@ class Rotation(NodeBuilder):
1843
1974
 
1844
1975
 
1845
1976
  class SceneTime(NodeBuilder):
1846
- """Retrieve the current time in the scene's animation in units of seconds or frames"""
1977
+ """
1978
+ Retrieve the current time in the scene's animation in units of seconds or frames
1979
+ """
1847
1980
 
1848
1981
  _bl_idname = "GeometryNodeInputSceneTime"
1849
1982
  node: bpy.types.GeometryNodeInputSceneTime
@@ -1866,7 +1999,9 @@ class SceneTime(NodeBuilder):
1866
1999
 
1867
2000
 
1868
2001
  class Selection(NodeBuilder):
1869
- """User selection of the edited geometry, for tool execution"""
2002
+ """
2003
+ User selection of the edited geometry, for tool execution
2004
+ """
1870
2005
 
1871
2006
  _bl_idname = "GeometryNodeToolSelection"
1872
2007
  node: bpy.types.GeometryNodeToolSelection
@@ -1889,7 +2024,9 @@ class Selection(NodeBuilder):
1889
2024
 
1890
2025
 
1891
2026
  class SelfObject(NodeBuilder):
1892
- """Retrieve the object that contains the geometry nodes modifier currently being executed"""
2027
+ """
2028
+ Retrieve the object that contains the geometry nodes modifier currently being executed
2029
+ """
1893
2030
 
1894
2031
  _bl_idname = "GeometryNodeSelfObject"
1895
2032
  node: bpy.types.GeometryNodeSelfObject
@@ -1907,7 +2044,9 @@ class SelfObject(NodeBuilder):
1907
2044
 
1908
2045
 
1909
2046
  class ShortestEdgePaths(NodeBuilder):
1910
- """Find the shortest paths along mesh edges to selected end vertices, with customizable cost per edge"""
2047
+ """
2048
+ Find the shortest paths along mesh edges to selected end vertices, with customizable cost per edge
2049
+ """
1911
2050
 
1912
2051
  _bl_idname = "GeometryNodeInputShortestEdgePaths"
1913
2052
  node: bpy.types.GeometryNodeInputShortestEdgePaths
@@ -1944,7 +2083,9 @@ class ShortestEdgePaths(NodeBuilder):
1944
2083
 
1945
2084
 
1946
2085
  class SpecialCharacters(NodeBuilder):
1947
- """Output string characters that cannot be typed directly with the keyboard"""
2086
+ """
2087
+ Output string characters that cannot be typed directly with the keyboard
2088
+ """
1948
2089
 
1949
2090
  _bl_idname = "FunctionNodeInputSpecialCharacters"
1950
2091
  node: bpy.types.FunctionNodeInputSpecialCharacters
@@ -1967,7 +2108,9 @@ class SpecialCharacters(NodeBuilder):
1967
2108
 
1968
2109
 
1969
2110
  class SplineLength(NodeBuilder):
1970
- """Retrieve the total length of each spline, as a distance or as a number of points"""
2111
+ """
2112
+ Retrieve the total length of each spline, as a distance or as a number of points
2113
+ """
1971
2114
 
1972
2115
  _bl_idname = "GeometryNodeSplineLength"
1973
2116
  node: bpy.types.GeometryNodeSplineLength
@@ -1990,7 +2133,9 @@ class SplineLength(NodeBuilder):
1990
2133
 
1991
2134
 
1992
2135
  class SplineParameter(NodeBuilder):
1993
- """Retrieve how far along each spline a control point is"""
2136
+ """
2137
+ Retrieve how far along each spline a control point is
2138
+ """
1994
2139
 
1995
2140
  _bl_idname = "GeometryNodeSplineParameter"
1996
2141
  node: bpy.types.GeometryNodeSplineParameter
@@ -2018,7 +2163,9 @@ class SplineParameter(NodeBuilder):
2018
2163
 
2019
2164
 
2020
2165
  class SplineResolution(NodeBuilder):
2021
- """Retrieve the number of evaluated points that will be generated for every control point on curves"""
2166
+ """
2167
+ Retrieve the number of evaluated points that will be generated for every control point on curves
2168
+ """
2022
2169
 
2023
2170
  _bl_idname = "GeometryNodeInputSplineResolution"
2024
2171
  node: bpy.types.GeometryNodeInputSplineResolution
@@ -2036,7 +2183,9 @@ class SplineResolution(NodeBuilder):
2036
2183
 
2037
2184
 
2038
2185
  class String(NodeBuilder):
2039
- """Provide a string value that can be connected to other nodes in the tree"""
2186
+ """
2187
+ Provide a string value that can be connected to other nodes in the tree
2188
+ """
2040
2189
 
2041
2190
  _bl_idname = "FunctionNodeInputString"
2042
2191
  node: bpy.types.FunctionNodeInputString
@@ -2062,7 +2211,9 @@ class String(NodeBuilder):
2062
2211
 
2063
2212
 
2064
2213
  class UVTangent(NodeBuilder):
2065
- """Generate tangent directions based on a UV map"""
2214
+ """
2215
+ Generate tangent directions based on a UV map
2216
+ """
2066
2217
 
2067
2218
  _bl_idname = "GeometryNodeUVTangent"
2068
2219
  node: bpy.types.GeometryNodeUVTangent
@@ -2094,7 +2245,9 @@ class UVTangent(NodeBuilder):
2094
2245
 
2095
2246
 
2096
2247
  class Vector(NodeBuilder):
2097
- """Provide a vector value that can be connected to other nodes in the tree"""
2248
+ """
2249
+ Provide a vector value that can be connected to other nodes in the tree
2250
+ """
2098
2251
 
2099
2252
  _bl_idname = "FunctionNodeInputVector"
2100
2253
  node: bpy.types.FunctionNodeInputVector
@@ -2120,7 +2273,9 @@ class Vector(NodeBuilder):
2120
2273
 
2121
2274
 
2122
2275
  class VertexNeighbors(NodeBuilder):
2123
- """Retrieve topology information relating to each vertex of a mesh"""
2276
+ """
2277
+ Retrieve topology information relating to each vertex of a mesh
2278
+ """
2124
2279
 
2125
2280
  _bl_idname = "GeometryNodeInputMeshVertexNeighbors"
2126
2281
  node: bpy.types.GeometryNodeInputMeshVertexNeighbors
@@ -2143,7 +2298,9 @@ class VertexNeighbors(NodeBuilder):
2143
2298
 
2144
2299
 
2145
2300
  class VertexOfCorner(NodeBuilder):
2146
- """Retrieve the vertex each face corner is attached to"""
2301
+ """
2302
+ Retrieve the vertex each face corner is attached to
2303
+ """
2147
2304
 
2148
2305
  _bl_idname = "GeometryNodeVertexOfCorner"
2149
2306
  node: bpy.types.GeometryNodeVertexOfCorner
@@ -2166,7 +2323,9 @@ class VertexOfCorner(NodeBuilder):
2166
2323
 
2167
2324
 
2168
2325
  class ViewportTransform(NodeBuilder):
2169
- """Retrieve the view direction and location of the 3D viewport"""
2326
+ """
2327
+ Retrieve the view direction and location of the 3D viewport
2328
+ """
2170
2329
 
2171
2330
  _bl_idname = "GeometryNodeViewportTransform"
2172
2331
  node: bpy.types.GeometryNodeViewportTransform
@@ -2194,7 +2353,9 @@ class ViewportTransform(NodeBuilder):
2194
2353
 
2195
2354
 
2196
2355
  class VoxelIndex(NodeBuilder):
2197
- """Retrieve the integer coordinates of the voxel that the field is evaluated on"""
2356
+ """
2357
+ Retrieve the integer coordinates of the voxel that the field is evaluated on
2358
+ """
2198
2359
 
2199
2360
  _bl_idname = "GeometryNodeInputVoxelIndex"
2200
2361
  node: bpy.types.GeometryNodeInputVoxelIndex