diff --git a/nodes/main/visualization/preview_mesh_dual.py b/nodes/main/visualization/preview_mesh_dual.py index 6dc5e2b0..f751722b 100644 --- a/nodes/main/visualization/preview_mesh_dual.py +++ b/nodes/main/visualization/preview_mesh_dual.py @@ -86,6 +86,14 @@ class PreviewMeshDualNode: "default": False, "tooltip": "Show mesh edge overlay" }), + "camera_state": ("STRING", { + "default": "", + "tooltip": "Camera position/orientation state (managed by viewer)" + }), + "selected_field": ("STRING", { + "default": "", + "tooltip": "Active scalar field for visualization (managed by viewer)" + }), } } @@ -94,7 +102,7 @@ class PreviewMeshDualNode: FUNCTION = "preview_dual" CATEGORY = "geompack/visualization" - def preview_dual(self, mesh_1, mesh_2, layout="side_by_side", mode="fields", opacity_1=1.0, opacity_2=1.0, show_edges=False): + def preview_dual(self, mesh_1, mesh_2, layout="side_by_side", mode="fields", opacity_1=1.0, opacity_2=1.0, show_edges=False, camera_state="", selected_field=""): """ Preview two meshes with chosen layout and visualization mode. @@ -176,6 +184,8 @@ class PreviewMeshDualNode: "opacity_1": [float(opacity_1)], "opacity_2": [float(opacity_2)], "show_edges": [bool(show_edges)], + "camera_state": [camera_state], + "selected_field": [selected_field], } # Add mode-specific metadata @@ -239,6 +249,8 @@ class PreviewMeshDualNode: "is_watertight_1": [bool(mesh_1.is_watertight) if not is_point_cloud(mesh_1) else False], "is_watertight_2": [bool(mesh_2.is_watertight) if not is_point_cloud(mesh_2) else False], "show_edges": [bool(show_edges)], + "camera_state": [camera_state], + "selected_field": [selected_field], } # Add mode-specific metadata diff --git a/nodes/main/visualization/preview_mesh_multi.py b/nodes/main/visualization/preview_mesh_multi.py index 3e32475b..fd93868d 100644 --- a/nodes/main/visualization/preview_mesh_multi.py +++ b/nodes/main/visualization/preview_mesh_multi.py @@ -95,6 +95,10 @@ class PreviewMeshMultiNode: "default": "", "tooltip": "Camera position/orientation state (managed by viewer)" }), + "selected_field": ("STRING", { + "default": "", + "tooltip": "Active scalar field for visualization (managed by viewer)" + }), } } @@ -103,7 +107,7 @@ class PreviewMeshMultiNode: FUNCTION = "preview_multi" CATEGORY = "geompack/visualization" - def preview_multi(self, mesh_1, mesh_2=None, mesh_3=None, mesh_4=None, mode="fields", show_edges=False, camera_state=""): + def preview_multi(self, mesh_1, mesh_2=None, mesh_3=None, mesh_4=None, mode="fields", show_edges=False, camera_state="", selected_field=""): """ Preview multiple meshes in a grid layout. @@ -215,6 +219,7 @@ class PreviewMeshMultiNode: "is_watertight_list": [is_watertight_list], "show_edges": [bool(show_edges)], "camera_state": [camera_state], + "selected_field": [selected_field], } # Add mode-specific metadata diff --git a/nodes/main/visualization/preview_mesh_vtk.py b/nodes/main/visualization/preview_mesh_vtk.py index 0fa60c54..86b33d6f 100644 --- a/nodes/main/visualization/preview_mesh_vtk.py +++ b/nodes/main/visualization/preview_mesh_vtk.py @@ -51,6 +51,10 @@ class PreviewMeshVTKNode: "default": "", "tooltip": "Camera position/orientation state (managed by viewer)" }), + "selected_field": ("STRING", { + "default": "", + "tooltip": "Active scalar field for visualization (managed by viewer)" + }), }, } @@ -59,7 +63,7 @@ class PreviewMeshVTKNode: FUNCTION = "preview_mesh_vtk" CATEGORY = "geompack/visualization" - def preview_mesh_vtk(self, mode="fields", trimesh=None, voxelgrid=None, show_edges=False, camera_state=""): + def preview_mesh_vtk(self, mode="fields", trimesh=None, voxelgrid=None, show_edges=False, camera_state="", selected_field=""): """ Export mesh and prepare for VTK.js preview. @@ -241,6 +245,7 @@ class PreviewMeshVTKNode: "is_watertight": [bool(is_watertight)], "show_edges": [bool(show_edges)], "camera_state": [camera_state], + "selected_field": [selected_field], } # Add mode-specific metadata diff --git a/requirements.txt b/requirements.txt index 7d2a7e4d..ee7f557a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ # Main process deps (prestartup + lightweight shared libs) -comfy-env==0.1.89 +comfy-env==0.1.90 comfy-dynamic-widgets==0.1.4 -comfy-3d-viewers==0.2.13 +comfy-3d-viewers==0.2.14 numpy trimesh[easy]>=4.0.0 scipy>=1.7.0