From fc0d7afa4d872339b8e5b55b176c4b654979a72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sofus=20Albert=20H=C3=B8gsbro=20Rose?= Date: Fri, 26 Apr 2024 22:18:49 +0200 Subject: [PATCH] ui: Added dynamic labels to map/filter --- .../nodes/analysis/math/map_math.py | 37 +++++++++++++++++++ .../nodes/analysis/math/operate_math.py | 22 +++++++++-- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/map_math.py b/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/map_math.py index 58f47e0..9121cea 100644 --- a/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/map_math.py +++ b/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/map_math.py @@ -184,6 +184,43 @@ class MapMathNode(base.MaxwellSimNode): (*item, '', i) if item is not None else None for i, item in enumerate(items) ] + #################### + # - UI + #################### + def draw_label(self): + labels = { + 'REAL': 'ℝ(v)', + 'IMAG': 'Im(v)', + 'ABS': '|v|', + 'SQ': 'v²', + 'SQRT': '√v', + 'INV_SQRT': '1/√v', + 'COS': 'cos v', + 'SIN': 'sin v', + 'TAN': 'tan v', + 'ACOS': 'acos v', + 'ASIN': 'asin v', + 'ATAN': 'atan v', + 'NORM_2': '||v||₂', + 'DET': 'det V', + 'COND': 'κ(V)', + 'NORM_FRO': '||V||_F', + 'RANK': 'rank V', + 'DIAG': 'diag V', + 'EIG_VALS': 'eigvals V', + 'SVD_VALS': 'svdvals V', + 'INV': 'V⁻¹', + 'TRA': 'Vt', + 'QR': 'qr V', + 'CHOL': 'chol V', + 'SVD': 'svd V', + } + + if (label := labels.get(self.operation)) is not None: + return 'Map: ' + label + + return self.bl_label + def draw_props(self, _: bpy.types.Context, layout: bpy.types.UILayout) -> None: layout.prop(self, self.blfields['operation'], text='') diff --git a/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/operate_math.py b/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/operate_math.py index 774ec02..c53c38b 100644 --- a/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/operate_math.py +++ b/src/blender_maxwell/node_trees/maxwell_sim_nodes/nodes/analysis/math/operate_math.py @@ -190,7 +190,7 @@ class OperateMathNode(base.MaxwellSimNode): ('ADD', 'L + R', 'Add'), ('SUB', 'L - R', 'Subtract'), ('MUL', 'L · R', 'Multiply'), - ('DIV', 'L ÷ R', 'Divide'), + ('DIV', 'L / R', 'Divide'), ('POW', 'L^R', 'Power'), ('ATAN2', 'atan2(L,R)', 'atan2(L,R)'), ] @@ -221,6 +221,24 @@ class OperateMathNode(base.MaxwellSimNode): (*item, '', i) if item is not None else None for i, item in enumerate(items) ] + #################### + # - UI + #################### + def draw_label(self): + labels = { + 'ADD': lambda: 'Filter: L + R', + 'SUB': lambda: 'Filter: L - R', + 'MUL': lambda: 'Filter: L · R', + 'DIV': lambda: 'Filter: L / R', + 'POW': lambda: 'Filter: L^R', + 'ATAN2': lambda: 'Filter: atan2(L,R)', + } + + if (label := labels.get(self.operation)) is not None: + return label() + + return self.bl_label + def draw_props(self, _: bpy.types.Context, layout: bpy.types.UILayout) -> None: layout.prop(self, self.blfields['category'], text='') layout.prop(self, self.blfields['operation'], text='') @@ -384,8 +402,6 @@ class OperateMathNode(base.MaxwellSimNode): has_data_r_info = not ct.FlowSignal.check(data_r_info) has_data_r_params = not ct.FlowSignal.check(data_r_params) - #log.critical((props, input_sockets)) - # Compose by Socket Set ## Data | Data if (