|
54 | 54 | "GeometryNodeFillCurve" : ["mode"], |
55 | 55 | "GeometryNodeFilletCurve" : ["mode"], |
56 | 56 | "GeometryNodeResampleCurve" : ["mode"], |
57 | | - "GeometryNodeSampleCurve" : ["mode"], |
| 57 | + "GeometryNodeSampleCurve" : ["data_type", "mode", |
| 58 | + "use_all_curves"], |
58 | 59 | "GeometryNodeTrimCurve" : ["mode"], |
| 60 | + "GeometryNodeSetCurveNormal" : ["mode"], |
59 | 61 | "GeometryNodeCurveHandleTypeSelection" : ["mode", "handle_type"], |
60 | 62 | "GeometryNodeSetCurveHandlePositions" : ["mode"], |
61 | 63 | "GeometryNodeCurveSetHandles" : ["mode", "handle_type"], |
|
74 | 76 | "GeometryNodeProximity" : ["target_element"], |
75 | 77 | "GeometryNodeMergeByDistance" : ["mode"], |
76 | 78 | "GeometryNodeRaycast" : ["data_type", "mapping"], |
| 79 | + "GeometryNodeSampleIndex" : ["data_type", "domain", "clamp"], |
| 80 | + "GeometryNodeSampleNearest" : ["domain"], |
77 | 81 | "GeometryNodeSeparateGeometry" : ["domain"], |
78 | 82 |
|
79 | 83 | #input |
|
86 | 90 | "GeometryNodeMeshBoolean" : ["operation"], |
87 | 91 | "GeometryNodeMeshToPoints" : ["mode"], |
88 | 92 | "GeometryNodeMeshToVolume" : ["resolution_mode"], |
| 93 | + "GeometryNodeSampleNearestSurface" : ["data_type"], |
| 94 | + "GeometryNodeSampleUVSurface" : ["data_type"], |
89 | 95 | "GeometryNodeSubdivisionSurface" : ["uv_smooth", "boundary_smooth"], |
90 | 96 | "GeometryNodeTriangulate" : ["quad_method", "ngon_method"], |
91 | 97 | "GeometryNodeScaleElements" : ["domain", "scale_mode"], |
|
96 | 102 | "GeometryNodeMeshCircle" : ["fill_type"], |
97 | 103 | "GeometryNodeMeshLine" : ["mode"], |
98 | 104 |
|
| 105 | + #output |
| 106 | + "GeometryNodeViewer" : ["domain"], |
| 107 | + |
99 | 108 | #point |
100 | | - "GeometryNodeDistributePointsOnFaces" : ["distribute_method"], |
101 | | - "GeometryNodePointsToVolume" : ["resolution_mode"], |
| 109 | + "GeometryNodeDistributePointsInVolume" : ["mode"], |
| 110 | + "GeometryNodeDistributePointsOnFaces" : ["distribute_method"], |
| 111 | + "GeometryNodePointsToVolume" : ["resolution_mode"], |
102 | 112 |
|
103 | 113 | #text |
104 | 114 | "GeometryNodeStringToCurves" : ["overflow", "align_x", "align_y", |
@@ -280,11 +290,12 @@ def process_node_group(node_group, level): |
280 | 290 | #special nodes |
281 | 291 | if node.bl_idname in node_settings: |
282 | 292 | for setting in node_settings[node.bl_idname]: |
283 | | - attr = getattr(node, setting) |
284 | | - if type(attr) == str: |
285 | | - attr = f"\'{attr}\'" |
286 | | - file.write((f"{inner}{node_name}.{setting} = " |
287 | | - f"{attr}\n")) |
| 293 | + attr = getattr(node, setting, None) |
| 294 | + if attr: |
| 295 | + if type(attr) == str: |
| 296 | + attr = f"\'{attr}\'" |
| 297 | + file.write((f"{inner}{node_name}.{setting} " |
| 298 | + f"= {attr}\n")) |
288 | 299 | elif node.bl_idname == 'GeometryNodeGroup': |
289 | 300 | file.write((f"{inner}{node_name}.node_tree = " |
290 | 301 | f"bpy.data.node_groups" |
|
0 commit comments