From 6c87db255114aa97bc1aa105a439bfd7b11b61e6 Mon Sep 17 00:00:00 2001
From: Clemens Barth <barth@root-1.de>
Date: Fri, 29 Mar 2019 20:33:17 +0100
Subject: [PATCH] Fix 1: Atomic structures based on meta spheres were not
 visible because the meta balls were hidden by default, T62804 Fix 2: Option
 'Mesh UV spheres' for atomic structures lead to an error message, T62804

Comments
========
1: It i strange that a representative mesh sphere or NURBS sphere in a dupliverts structure
can be hidden, which is not the case for meta balls. A representative meta ball needs to
be 'visible' and not hidden. By default this is now the case.
2: The 'size' option in 'bpy.ops.mesh.primitive_uv_sphere_add' does not exist anymore.
Option 'size' was removed.
---
 io_mesh_atomic/pdb_import.py | 6 ++++--
 io_mesh_atomic/xyz_import.py | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/io_mesh_atomic/pdb_import.py b/io_mesh_atomic/pdb_import.py
index 06a808c00..4f0bddd8b 100644
--- a/io_mesh_atomic/pdb_import.py
+++ b/io_mesh_atomic/pdb_import.py
@@ -707,7 +707,7 @@ def draw_atoms_one_type(draw_all_atoms_type,
         elif Ball_type == "1":
             bpy.ops.mesh.primitive_uv_sphere_add(
                         segments=Ball_azimuth, ring_count=Ball_zenith,
-                        size=1, view_align=False, enter_editmode=False,
+                        view_align=False, enter_editmode=False,
                         location=(0,0,0), rotation=(0, 0, 0))
         # Meta balls
         elif Ball_type == "2":
@@ -719,7 +719,9 @@ def draw_atoms_one_type(draw_all_atoms_type,
     # Hide this ball because its appearance has no meaning. It is just the
     # representative ball. The ball is visible at the vertices of the mesh.
     # Rememmber, this is a dupliverts construct!
-    ball.hide_set(True)
+    # However, hiding does not work with meta balls!
+    if Ball_type == "0" or Ball_type == "1":
+        ball.hide_set(True)
     # Scale up/down the ball radius.
     ball.scale  = (atom[3]*Ball_radius_factor,) * 3
 
diff --git a/io_mesh_atomic/xyz_import.py b/io_mesh_atomic/xyz_import.py
index fe903f4ed..8f6b4c5b0 100644
--- a/io_mesh_atomic/xyz_import.py
+++ b/io_mesh_atomic/xyz_import.py
@@ -679,7 +679,7 @@ def import_xyz(Ball_type,
             elif Ball_type == "1":
                 bpy.ops.mesh.primitive_uv_sphere_add(
                             segments=Ball_azimuth, ring_count=Ball_zenith,
-                            size=1, view_align=False, enter_editmode=False,
+                            view_align=False, enter_editmode=False,
                             location=(0,0,0), rotation=(0, 0, 0))
             # Meta balls
             elif Ball_type == "2":
@@ -691,7 +691,9 @@ def import_xyz(Ball_type,
         # Hide this ball because its appearance has no meaning. It is just the
         # representative ball. The ball is visible at the vertices of the mesh.
         # Rememmber, this is a dupliverts construct!
-        ball.hide_set(True)
+        # However, hiding does not work with meta balls!
+        if Ball_type == "0" or Ball_type == "1":
+            ball.hide_set(True)
         # Scale up/down the ball radius.
         ball.scale  = (atom.radius*Ball_radius_factor,) * 3
 
-- 
GitLab