[Bf-extensions-cvs] [b4e51491] master: Expand type check in MathVis to also allow subclasses.

Gaia Clary noreply at git.blender.org
Tue Aug 31 14:38:05 CEST 2021


Commit: b4e51491e0ed533331816c32e564a68bde484860
Author: Gaia Clary
Date:   Mon Aug 30 17:58:44 2021 +0200
Branches: master
https://developer.blender.org/rBAb4e51491e0ed533331816c32e564a68bde484860

Expand type check in MathVis to also allow subclasses.

MathVis currently only checks objects for basic classes (Matrix, Vector, Quaternion, Euler)
This patch adds also derived classes of the basic classes.\
This makes it possible to use custom classes together with MathVis.

Differential Revision: https://developer.blender.org/D12349

===================================================================

M	space_view3d_math_vis/utils.py

===================================================================

diff --git a/space_view3d_math_vis/utils.py b/space_view3d_math_vis/utils.py
index 50c8aba3..8174ee5d 100644
--- a/space_view3d_math_vis/utils.py
+++ b/space_view3d_math_vis/utils.py
@@ -35,7 +35,7 @@ def is_display_list(listvar):
     from mathutils import Vector
 
     for var in listvar:
-        if type(var) is not Vector:
+        if not isinstance(var, Vector):
             return False
     return True
 
@@ -120,8 +120,8 @@ def get_math_data():
         if len_fn(var) == 0:
             continue
 
-        if type_var in {Matrix, Vector, Quaternion, Euler} or \
-           type_var in {tuple, list} and is_display_list(var):
+        if isinstance(var, (Matrix, Vector, Quaternion, Euler)) or \
+           isinstance(var, (tuple, list)) and is_display_list(var):
 
             variables[key] = type_var
 
@@ -168,24 +168,22 @@ def console_math_data():
             if not disp:
                 continue
 
-        var_type = type(var)
-
-        if var_type is Matrix:
+        if isinstance(var, Matrix):
             if len(var.col) != 4 or len(var.row) != 4:
                 if len(var.col) == len(var.row):
                     var = var.to_4x4()
                 else:  # todo, support 4x3 matrix
                     continue
             data_matrix[key] = var
-        elif var_type is Vector:
+        elif isinstance(var, Vector):
             if len(var) < 3:
                 var = var.to_3d()
             data_vector[key] = var
-        elif var_type is Quaternion:
+        elif isinstance(var, Quaternion):
             data_quat[key] = var
-        elif var_type is Euler:
+        elif isinstance(var, Euler):
             data_euler[key] = var
-        elif var_type in {list, tuple} and is_display_list(var):
+        elif type(var) in {list, tuple} and is_display_list(var):
             data_vector_array[key] = var
 
     return data_matrix, data_quat, data_euler, data_vector, data_vector_array



More information about the Bf-extensions-cvs mailing list