Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2021-05-27 18:26:34 +0300
committerBastien Montagne <bastien@blender.org>2021-05-27 18:26:34 +0300
commit73c752effe0d3ac18d50ec39a1431b5cb24cd5c2 (patch)
tree06761f2667d2f875d10ed0fff1af1bc7c20a2bda
parentea587cffd123977f5b94ed9cea9e81282b6c9b71 (diff)
Povray: Fix bunch of issues after recent refactor.
Those were breaking automated tests, since (un)registering was not working properly. Mainly: * Use `hasattr` instead of try/except when batch-assigning to a variable that does not always exist. * Fix some incorrect call to sub-`register()` from parent `unregister()` functions. * Remove double definition (in two different files) of World's pov textures.
-rwxr-xr-xrender_povray/__init__.py4
-rwxr-xr-xrender_povray/base_ui.py2
-rwxr-xr-xrender_povray/object_gui.py5
-rwxr-xr-xrender_povray/render_gui.py24
-rwxr-xr-xrender_povray/scenography_gui.py63
-rwxr-xr-xrender_povray/scenography_properties.py122
-rwxr-xr-xrender_povray/shading_gui.py10
-rwxr-xr-xrender_povray/texturing_gui.py6
8 files changed, 22 insertions, 214 deletions
diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index 58f6040d..f0734c5f 100755
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -422,7 +422,7 @@ def unregister():
scripting.unregister()
base_ui.unregister()
render.unregister()
- scenography.register()
+ scenography.unregister()
scripting_properties.unregister()
object_properties.unregister()
texturing_properties.unregister()
@@ -430,7 +430,7 @@ def unregister():
scenography_properties.unregister()
render_properties.unregister()
- for cls in classes:
+ for cls in reversed(classes):
unregister_class(cls)
diff --git a/render_povray/base_ui.py b/render_povray/base_ui.py
index f0e2cb2f..85374ba3 100755
--- a/render_povray/base_ui.py
+++ b/render_povray/base_ui.py
@@ -304,4 +304,4 @@ def unregister():
shading_gui.unregister()
object_gui.unregister()
scenography_gui.unregister()
- render_gui.register()
+ render_gui.unregister()
diff --git a/render_povray/object_gui.py b/render_povray/object_gui.py
index bc7df9f4..9fbf8a8b 100755
--- a/render_povray/object_gui.py
+++ b/render_povray/object_gui.py
@@ -34,11 +34,8 @@ from bl_ui import properties_data_modifier
for member in dir(properties_data_modifier):
subclass = getattr(properties_data_modifier, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
del properties_data_modifier
diff --git a/render_povray/render_gui.py b/render_povray/render_gui.py
index 5148c0d9..018821cb 100755
--- a/render_povray/render_gui.py
+++ b/render_povray/render_gui.py
@@ -36,38 +36,26 @@ from bl_ui import properties_output
for member in dir(properties_output):
subclass = getattr(properties_output, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_output
from bl_ui import properties_freestyle
for member in dir(properties_freestyle):
subclass = getattr(properties_freestyle, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
if not (subclass.bl_space_type == 'PROPERTIES' and subclass.bl_context == "render"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
# subclass.bl_parent_id = "RENDER_PT_POV_filter"
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_freestyle
from bl_ui import properties_view_layer
for member in dir(properties_view_layer):
subclass = getattr(properties_view_layer, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_view_layer
# Use some of the existing buttons.
@@ -452,17 +440,13 @@ if check_render_freestyle_svg():
'''
for member in dir(render_freestyle_svg):
subclass = getattr(render_freestyle_svg, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
if subclass.bl_idname == "RENDER_PT_SVGExporterPanel":
subclass.bl_parent_id = "RENDER_PT_POV_filter"
subclass.bl_options = {'HIDE_HEADER'}
# subclass.bl_order = 11
print(subclass.bl_info)
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
# del render_freestyle_svg.RENDER_PT_SVGExporterPanel.bl_parent_id
diff --git a/render_povray/scenography_gui.py b/render_povray/scenography_gui.py
index 307d8f41..6eb5aed9 100755
--- a/render_povray/scenography_gui.py
+++ b/render_povray/scenography_gui.py
@@ -31,12 +31,8 @@ from bl_ui import properties_data_camera
for member in dir(properties_data_camera):
subclass = getattr(properties_data_camera, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_data_camera
# ##################################
@@ -54,12 +50,8 @@ from bl_ui import properties_physics_common
for member in dir(properties_physics_common):
subclass = getattr(properties_physics_common, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_common
# Physics Rigid Bodies wrapping every class 'as is'
@@ -67,12 +59,8 @@ from bl_ui import properties_physics_rigidbody
for member in dir(properties_physics_rigidbody):
subclass = getattr(properties_physics_rigidbody, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_rigidbody
# Physics Rigid Body Constraint wrapping every class 'as is'
@@ -80,12 +68,8 @@ from bl_ui import properties_physics_rigidbody_constraint
for member in dir(properties_physics_rigidbody_constraint):
subclass = getattr(properties_physics_rigidbody_constraint, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_rigidbody_constraint
# Physics Smoke and fluids wrapping every class 'as is'
@@ -93,12 +77,8 @@ from bl_ui import properties_physics_fluid
for member in dir(properties_physics_fluid):
subclass = getattr(properties_physics_fluid, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_fluid
# Physics softbody wrapping every class 'as is'
@@ -106,12 +86,8 @@ from bl_ui import properties_physics_softbody
for member in dir(properties_physics_softbody):
subclass = getattr(properties_physics_softbody, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_softbody
# Physics Field wrapping every class 'as is'
@@ -119,12 +95,8 @@ from bl_ui import properties_physics_field
for member in dir(properties_physics_field):
subclass = getattr(properties_physics_field, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_field
# Physics Cloth wrapping every class 'as is'
@@ -132,12 +104,8 @@ from bl_ui import properties_physics_cloth
for member in dir(properties_physics_cloth):
subclass = getattr(properties_physics_cloth, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_cloth
# Physics Dynamic Paint wrapping every class 'as is'
@@ -145,24 +113,16 @@ from bl_ui import properties_physics_dynamicpaint
for member in dir(properties_physics_dynamicpaint):
subclass = getattr(properties_physics_dynamicpaint, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_physics_dynamicpaint
from bl_ui import properties_particle
for member in dir(properties_particle): # add all "particle" panels from blender
subclass = getattr(properties_particle, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_particle
@@ -795,6 +755,7 @@ def register():
def unregister():
+ bpy.types.LIGHT_PT_POV_light.remove(light_panel_func)
for cls in reversed(classes):
unregister_class(cls)
- bpy.types.LIGHT_PT_POV_light.remove(light_panel_func)
+
diff --git a/render_povray/scenography_properties.py b/render_povray/scenography_properties.py
index b45922eb..dd886513 100755
--- a/render_povray/scenography_properties.py
+++ b/render_povray/scenography_properties.py
@@ -353,125 +353,6 @@ class RenderPovSettingsWorld(PropertyGroup):
)
-class WorldTextureSlot(PropertyGroup):
- """Declare world texture slot level properties for UI and translated to POV."""
-
- bl_idname = ("pov_texture_slots",)
- bl_description = ("Texture_slots from Blender-2.79",)
-
- # Adding a "real" texture datablock as property is not possible
- # (or at least not easy through a dynamically populated EnumProperty).
- # That's why we'll use a prop_search() UILayout function in texturing_gui.py.
- # So we'll assign the name of the needed texture datablock to the below StringProperty.
- texture: StringProperty(update=active_texture_name_from_uilist)
- # and use another temporary StringProperty to change the linked data
- texture_search: StringProperty(
- name="", update=active_texture_name_from_search, description="Browse Texture to be linked"
- )
-
- blend_factor: FloatProperty(
- name="Blend",
- description="Amount texture affects color progression of the " "background",
- soft_min=0.0,
- soft_max=1.0,
- default=1.0,
- )
-
- horizon_factor: FloatProperty(
- name="Horizon",
- description="Amount texture affects color of the horizon",
- soft_min=0.0,
- soft_max=1.0,
- default=1.0,
- )
-
- object: StringProperty(
- name="Object",
- description="Object to use for mapping with Object texture coordinates",
- default="",
- )
-
- offset: FloatVectorProperty(
- name="Offset",
- description=("Fine tune of the texture mapping X, Y and Z locations "),
- precision=4,
- step=0.1,
- soft_min=-100.0,
- soft_max=100.0,
- default=(0.0, 0.0, 0.0),
- options={"ANIMATABLE"},
- subtype="TRANSLATION",
- )
-
- scale: FloatVectorProperty(
- name="Size",
- subtype="XYZ",
- size=3,
- description="Set scaling for the texture’s X, Y and Z sizes ",
- precision=4,
- step=0.1,
- soft_min=-100.0,
- soft_max=100.0,
- default=(1.0, 1.0, 1.0),
- options={"ANIMATABLE"},
- )
-
- texture_coords: EnumProperty(
- name="Coordinates",
- description="Texture coordinates used to map the texture onto the background",
- items=(
- ("VIEW", "View", "Use view vector for the texture coordinates"),
- (
- "GLOBAL",
- "Global",
- "Use global coordinates for the texture coordinates (interior mist)",
- ),
- (
- "ANGMAP",
- "AngMap",
- "Use 360 degree angular coordinates, e.g. for spherical light probes",
- ),
- ("SPHERE", "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"),
- ("EQUIRECT", "Equirectangular", "For 360 degree panorama sky, equirectangular mapping"),
- ("TUBE", "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"),
- ("OBJECT", "Object", "Use linked object’s coordinates for texture coordinates"),
- ),
- default="VIEW",
- )
-
- use_map_blend: BoolProperty(
- name="Blend Map", description="Affect the color progression of the background", default=True
- )
-
- use_map_horizon: BoolProperty(
- name="Horizon Map", description="Affect the color of the horizon", default=False
- )
-
- use_map_zenith_down: BoolProperty(
- name="", description="Affect the color of the zenith below", default=False
- )
-
- use_map_zenith_up: BoolProperty(
- name="Zenith Up Map", description="Affect the color of the zenith above", default=False
- )
-
- zenith_down_factor: FloatProperty(
- name="Zenith Down",
- description="Amount texture affects color of the zenith below",
- soft_min=0.0,
- soft_max=1.0,
- default=1.0,
- )
-
- zenith_up_factor: FloatProperty(
- name="Zenith Up",
- description="Amount texture affects color of the zenith above",
- soft_min=0.0,
- soft_max=1.0,
- default=1.0,
- )
-
-
"""
# class WORLD_TEXTURE_SLOTS_UL_layerlist(bpy.types.UIList):
# texture_slots:
@@ -490,7 +371,6 @@ classes = (
RenderPovSettingsCamera,
RenderPovSettingsLight,
RenderPovSettingsWorld,
- WorldTextureSlot,
)
@@ -501,14 +381,12 @@ def register():
bpy.types.Camera.pov = PointerProperty(type=RenderPovSettingsCamera)
bpy.types.Light.pov = PointerProperty(type=RenderPovSettingsLight)
bpy.types.World.pov = PointerProperty(type=RenderPovSettingsWorld)
- bpy.types.World.pov_texture_slots = CollectionProperty(type=WorldTextureSlot)
def unregister():
del bpy.types.Camera.pov
del bpy.types.Light.pov
del bpy.types.World.pov
- del bpy.types.World.pov_texture_slots
for cls in reversed(classes):
unregister_class(cls)
diff --git a/render_povray/shading_gui.py b/render_povray/shading_gui.py
index 3df7f4a9..428542c8 100755
--- a/render_povray/shading_gui.py
+++ b/render_povray/shading_gui.py
@@ -29,16 +29,8 @@ from bl_ui import properties_material
for member in dir(properties_material):
subclass = getattr(properties_material, member)
- try:
- # mat=bpy.context.active_object.active_material
- # if (mat and mat.pov.type == "SURFACE"
- # and not (mat.pov.material_use_nodes or mat.use_nodes)):
- # and (engine in cls.COMPAT_ENGINES)) if subclasses were sorted
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_material
from .shading_properties import check_material
diff --git a/render_povray/texturing_gui.py b/render_povray/texturing_gui.py
index 6d12fb62..ad889f43 100755
--- a/render_povray/texturing_gui.py
+++ b/render_povray/texturing_gui.py
@@ -49,12 +49,8 @@ from bl_ui import properties_texture
for member in dir(properties_texture):
subclass = getattr(properties_texture, member)
- try:
+ if hasattr(subclass, "COMPAT_ENGINES"):
subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
- except BaseException as e:
- print(e.__doc__)
- print('An exception occurred: {}'.format(e))
- pass
del properties_texture