diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2021-08-30 18:58:44 +0300 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2021-08-31 15:37:44 +0300 |
commit | b4e51491e0ed533331816c32e564a68bde484860 (patch) | |
tree | d8a593bcdce2868c0b2c865b7c00d7069c271b73 /space_view3d_math_vis | |
parent | 4e30cfd30603c3bd8e4f7ecdea77cc65ec213d3a (diff) |
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
Diffstat (limited to 'space_view3d_math_vis')
-rw-r--r-- | space_view3d_math_vis/utils.py | 18 |
1 files changed, 8 insertions, 10 deletions
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 |