diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index f343db66168cb5abca89192df2757294d0c36a79..66d42104a7399d2010681a4182e749f2223dfd07 100644
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -21,42 +21,42 @@
 """Import, export and render to POV engines.
 
 These engines can be POV-Ray or Uberpov but others too, since POV is a
-Scene Description Language. The script has been split in as few files 
+Scene Description Language. The script has been split in as few files
 as possible :
 
 ___init__.py :
     Initialize variables
-    
+
 update_files.py
-    Update new variables to values from older API. This file needs an update.  
-    
+    Update new variables to values from older API. This file needs an update.
+
 ui.py :
     Provide property buttons for the user to set up the variables.
-    
+
 primitives.py :
     Display some POV native primitives in 3D view for input and output.
 
 shading.py
-    Translate shading properties to declared textures at the top of a pov file 
+    Translate shading properties to declared textures at the top of a pov file
 
 nodes.py
     Translate node trees to the pov file
-    
+
 df3.py
     Render smoke to *.df3 files
-    
+
 render.py :
     Translate geometry and UI properties (Blender and POV native) to the POV file
-    
+
 
 Along these essential files also coexist a few additional libraries to help make
 Blender stand up to other POV IDEs such as povwin or QTPOV.
     presets :
         Material (sss)
-            apple.py ; chicken.py ; cream.py ; Ketchup.py ; marble.py ; 
+            apple.py ; chicken.py ; cream.py ; Ketchup.py ; marble.py ;
             potato.py ; skim_milk.py ; skin1.py ; skin2.py ; whole_milk.py
         Radiosity
-            01_Debug.py ; 02_Fast.py ; 03_Normal.py ; 04_Two_Bounces.py ; 
+            01_Debug.py ; 02_Fast.py ; 03_Normal.py ; 04_Two_Bounces.py ;
             05_Final.py ; 06_Outdoor_Low_Quality.py ; 07_Outdoor_High_Quality.py ;
             08_Outdoor(Sun)Light.py ; 09_Indoor_Low_Quality.py ;
             10_Indoor_High_Quality.py ;
@@ -73,13 +73,13 @@ Blender stand up to other POV IDEs such as povwin or QTPOV.
             10_(4300K)_40W_Vintage_Fluorescent_T12.py ;
             11_(5000K)_18W_Standard_Fluorescent_T8 ;
             12_(4200K)_18W_Cool_White_Fluorescent_T8.py ;
-            13_(3000K)_18W_Warm_Fluorescent_T8.py ; 
+            13_(3000K)_18W_Warm_Fluorescent_T8.py ;
             14_(6500K)_54W_Grow_Light_Fluorescent_T5-HO.py ;
             15_(3200K)_40W_Induction_Fluorescent.py ;
             16_(2100K)_150W_High_Pressure_Sodium.py ;
             17_(1700K)_135W_Low_Pressure_Sodium.py ;
             18_(6800K)_175W_Mercury_Vapor.py ; 19_(5200K)_700W_Carbon_Arc.py ;
-            20_(6500K)_15W_LED_Spot.py ; 21_(2700K)_7W_OLED_Panel.py ; 
+            20_(6500K)_15W_LED_Spot.py ; 21_(2700K)_7W_OLED_Panel.py ;
             22_(30000K)_40W_Black_Light_Fluorescent.py ;
             23_(30000K)_40W_Black_Light_Bulb.py; 24_(1850K)_Candle.py
     templates:
@@ -93,22 +93,22 @@ Blender stand up to other POV IDEs such as povwin or QTPOV.
 bl_info = {
     "name": "Persistence of Vision",
     "author": "Campbell Barton, "
-              "Maurice Raybaud, "
-              "Leonid Desyatkov, "
-              "Bastien Montagne, "
-              "Constantin Rahn, "
-              "Silvio Falcinelli",
+    "Maurice Raybaud, "
+    "Leonid Desyatkov, "
+    "Bastien Montagne, "
+    "Constantin Rahn, "
+    "Silvio Falcinelli",
     "version": (0, 1, 0),
     "blender": (2, 81, 0),
     "location": "Render Properties > Render Engine > Persistence of Vision",
     "description": "Persistence of Vision integration for blender",
-    "wiki_url": "https://docs.blender.org/manual/en/dev/addons/"
-                "render/povray.html",
+    "wiki_url": "https://docs.blender.org/manual/en/dev/addons/render/povray.html",
     "category": "Render",
 }
 
 if "bpy" in locals():
     import importlib
+
     importlib.reload(ui)
     importlib.reload(render)
     importlib.reload(shading)
@@ -117,36 +117,30 @@ if "bpy" in locals():
 else:
     import bpy
     from bpy.utils import register_class, unregister_class
-    #import addon_utils # To use some other addons
-    import nodeitems_utils #for Nodes
-    from nodeitems_utils import NodeCategory, NodeItem #for Nodes
+    # import addon_utils  # To use some other addons
+    import nodeitems_utils  # for Nodes
+    from nodeitems_utils import NodeCategory, NodeItem  # for Nodes
     from bl_operators.presets import AddPresetBase
-    from bpy.types import (
-            AddonPreferences,
-            PropertyGroup,
-            #Operator,
-            )
+    from bpy.types import AddonPreferences, PropertyGroup
     from bpy.props import (
-            StringProperty,
-            BoolProperty,
-            IntProperty,
-            FloatProperty,
-            FloatVectorProperty,
-            EnumProperty,
-            PointerProperty,
-            CollectionProperty,
-            )
-    from . import (
-            ui,
-            render,
-            update_files,
-            )
+        StringProperty,
+        BoolProperty,
+        IntProperty,
+        FloatProperty,
+        FloatVectorProperty,
+        EnumProperty,
+        PointerProperty,
+        CollectionProperty,
+    )
+    from . import ui, render, update_files
+
 
 def string_strip_hyphen(name):
     """Remove hyphen characters from a string to avoid POV errors."""
     return name.replace("-", "")
 
-def active_texture_name_from_uilist(self,context):
+
+def active_texture_name_from_uilist(self, context):
     mat = context.scene.view_layers["View Layer"].objects.active.active_material
     index = mat.pov.active_texture_index
     name = mat.pov_texture_slots[index].name
@@ -156,7 +150,7 @@ def active_texture_name_from_uilist(self,context):
     mat.pov_texture_slots[index].name = newname
 
 
-def active_texture_name_from_search(self,context):
+def active_texture_name_from_search(self, context):
     mat = context.scene.view_layers["View Layer"].objects.active.active_material
     index = mat.pov.active_texture_index
     name = mat.pov_texture_slots[index].texture_search
@@ -167,1373 +161,1734 @@ def active_texture_name_from_search(self,context):
     except:
         pass
 
+
 ###############################################################################
 # Scene POV properties.
 ###############################################################################
 class RenderPovSettingsScene(PropertyGroup):
     """Declare scene level properties controllable in UI and translated to POV."""
-    #Linux SDL-window enable
+
+    # Linux SDL-window enable
     sdl_window_enable: BoolProperty(
-            name="Enable SDL window",
-            description="Enable the SDL window in Linux OS",
-            default=True)
+        name="Enable SDL window",
+        description="Enable the SDL window in Linux OS",
+        default=True,
+    )
     # File Options
     text_block: StringProperty(
-            name="Text Scene Name",
-            description="Name of POV scene to use. "
-                        "Set when clicking Run to render current text only",
-            maxlen=1024)
+        name="Text Scene Name",
+        description="Name of POV scene to use. "
+        "Set when clicking Run to render current text only",
+        maxlen=1024,
+    )
     tempfiles_enable: BoolProperty(
-            name="Enable Tempfiles",
-            description="Enable the OS-Tempfiles. Otherwise set the path where"
-                        " to save the files",
-            default=True)
+        name="Enable Tempfiles",
+        description="Enable the OS-Tempfiles. Otherwise set the path where"
+                    " to save the files",
+        default=True,
+    )
     pov_editor: BoolProperty(
-            name="POV editor",
-            description="Don't Close POV editor after rendering (Overridden"
-                        " by /EXIT command)",
-            default=False)
+        name="POV editor",
+        description="Don't Close POV editor after rendering (Overridden"
+                    " by /EXIT command)",
+        default=False,
+    )
     deletefiles_enable: BoolProperty(
-            name="Delete files",
-            description="Delete files after rendering. "
-                        "Doesn't work with the image",
-            default=True)
+        name="Delete files",
+        description="Delete files after rendering. "
+                    "Doesn't work with the image",
+        default=True,
+    )
     scene_name: StringProperty(
-            name="Scene Name",
-            description="Name of POV scene to create. Empty name will use "
-                        "the name of the blend file",
-            maxlen=1024)
+        name="Scene Name",
+        description="Name of POV scene to create. Empty name will use "
+        "the name of the blend file",
+        maxlen=1024,
+    )
     scene_path: StringProperty(
-            name="Export scene path",
-            # Bug in POV-Ray RC3
-            # description="Path to directory where the exported scene "
-                        # "(POV and INI) is created",
-            description="Path to directory where the files are created",
-            maxlen=1024, subtype="DIR_PATH")
+        name="Export scene path",
+        # Bug in POV-Ray RC3
+        # description="Path to directory where the exported scene "
+        # "(POV and INI) is created",
+        description="Path to directory where the files are created",
+        maxlen=1024,
+        subtype="DIR_PATH",
+    )
     renderimage_path: StringProperty(
-            name="Rendered image path",
-            description="Full path to directory where the rendered image is "
-                        "saved",
-            maxlen=1024, subtype="DIR_PATH")
+        name="Rendered image path",
+        description="Full path to directory where the rendered image is "
+        "saved",
+        maxlen=1024,
+        subtype="DIR_PATH",
+    )
     list_lf_enable: BoolProperty(
-            name="LF in lists",
-            description="Enable line breaks in lists (vectors and indices). "
-                        "Disabled: lists are exported in one line",
-            default=True)
+        name="LF in lists",
+        description="Enable line breaks in lists (vectors and indices). "
+        "Disabled: lists are exported in one line",
+        default=True,
+    )
 
     # Not a real pov option, just to know if we should write
     radio_enable: BoolProperty(
-            name="Enable Radiosity",
-            description="Enable POV radiosity calculation",
-            default=True)
+        name="Enable Radiosity",
+        description="Enable POV radiosity calculation",
+        default=True,
+    )
 
     radio_display_advanced: BoolProperty(
-            name="Advanced Options",
-            description="Show advanced options",
-            default=False)
+        name="Advanced Options",
+        description="Show advanced options",
+        default=False,
+    )
 
     media_enable: BoolProperty(
-            name="Enable Media",
-            description="Enable POV atmospheric media",
-            default=False)
+        name="Enable Media",
+        description="Enable POV atmospheric media",
+        default=False,
+    )
 
     media_samples: IntProperty(
-            name="Samples",
-            description="Number of samples taken from camera to first object "
-                        "encountered along ray path for media calculation",
-            min=1, max=100, default=35)
+        name="Samples",
+        description="Number of samples taken from camera to first object "
+        "encountered along ray path for media calculation",
+        min=1,
+        max=100,
+        default=35,
+    )
 
     media_scattering_type: EnumProperty(
-            name="Scattering Type",
-            description="Scattering model",
-            items=(('1', "1 Isotropic", "The simplest form of scattering because"
-                                      " it is independent of direction."),
-                   ('2', "2 Mie haze ", "For relatively small particles such as "
-                                      "minuscule water droplets of fog, cloud "
-                                      "particles, and particles responsible "
-                                      "for the polluted sky. In this model the"
-                                      " scattering is extremely directional in"
-                                      " the forward direction i.e. the amount "
-                                      "of scattered light is largest when the "
-                                      "incident light is anti-parallel to the "
-                                      "viewing direction (the light goes "
-                                      "directly to the viewer). It is smallest"
-                                      " when the incident light is parallel to"
-                                      " the viewing direction. "),
-                   ('3', "3 Mie murky", "Like haze but much more directional"),
-                   ('4', "4 Rayleigh", "For extremely small particles such as "
-                                     "molecules of the air. The amount of "
-                                     "scattered light depends on the incident"
-                                     " light angle. It is largest when the "
-                                     "incident light is parallel or "
-                                     "anti-parallel to the viewing direction "
-                                     "and smallest when the incident light is "
-                                     "perpendicular to viewing direction."),
-                   ('5', "5 Henyey-Greenstein", "The default eccentricity value "
-                                              "of zero defines isotropic "
-                                              "scattering while positive "
-                                              "values lead to scattering in "
-                                              "the direction of the light and "
-                                              "negative values lead to "
-                                              "scattering in the opposite "
-                                              "direction of the light. Larger "
-                                              "values of e (or smaller values "
-                                              "in the negative case) increase "
-                                              "the directional property of the"
-                                              " scattering.")),
-            default='1')
+        name="Scattering Type",
+        description="Scattering model",
+        items=(
+            (
+                '1',
+                "1 Isotropic",
+                "The simplest form of scattering because"
+                " it is independent of direction."
+            ),
+            (
+                '2',
+                "2 Mie haze ",
+                "For relatively small particles such as "
+                "minuscule water droplets of fog, cloud "
+                "particles, and particles responsible "
+                "for the polluted sky. In this model the"
+                " scattering is extremely directional in"
+                " the forward direction i.e. the amount "
+                "of scattered light is largest when the "
+                "incident light is anti-parallel to the "
+                "viewing direction (the light goes "
+                "directly to the viewer). It is smallest"
+                " when the incident light is parallel to"
+                " the viewing direction. "
+            ),
+            (
+                '3',
+                "3 Mie murky",
+                "Like haze but much more directional"
+            ),
+            (
+                '4',
+                "4 Rayleigh",
+                "For extremely small particles such as "
+                "molecules of the air. The amount of "
+                "scattered light depends on the incident"
+                " light angle. It is largest when the "
+                "incident light is parallel or "
+                "anti-parallel to the viewing direction "
+                "and smallest when the incident light is "
+                "perpendicular to viewing direction."
+            ),
+            (
+                '5',
+                "5 Henyey-Greenstein",
+                "The default eccentricity value "
+                "of zero defines isotropic "
+                "scattering while positive "
+                "values lead to scattering in "
+                "the direction of the light and "
+                "negative values lead to "
+                "scattering in the opposite "
+                "direction of the light. Larger "
+                "values of e (or smaller values "
+                "in the negative case) increase "
+                "the directional property of the"
+                " scattering."
+            )
+        ),
+        default='1',
+    )
 
     media_diffusion_scale: FloatProperty(
-            name="Scale", description="Scale factor of Media Diffusion Color",
-            precision=12, step=0.00000001, min=0.000000001, max=1.0,
-            default=(1.0))
+        name="Scale",
+        description="Scale factor of Media Diffusion Color",
+        precision=12, step=0.00000001, min=0.000000001, max=1.0,
+        default=(1.0),
+    )
 
     media_diffusion_color: FloatVectorProperty(
-            name="Media Diffusion Color", description="The atmospheric media color",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.001, 0.001, 0.001),
-            options={'ANIMATABLE'},
-            subtype='COLOR')
+        name="Media Diffusion Color",
+        description="The atmospheric media color",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.001, 0.001, 0.001),
+        options={'ANIMATABLE'},
+        subtype='COLOR',
+    )
 
     media_absorption_scale: FloatProperty(
-            name="Scale", description="Scale factor of Media Absorption Color. "
-                                      "use 1/depth of media volume in meters",
-            precision=12, step=0.000001, min=0.000000001, max=1.0,
-            default=(0.00002))
+        name="Scale",
+        description="Scale factor of Media Absorption Color. "
+        "use 1/depth of media volume in meters",
+        precision=12,
+        step=0.000001,
+        min=0.000000001,
+        max=1.0,
+        default=(0.00002),
+    )
 
     media_absorption_color: FloatVectorProperty(
-            name="Media Absorption Color", description="The atmospheric media absorption color",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.0, 0.0, 0.0),
-            options={'ANIMATABLE'},
-            subtype='COLOR')
+        name="Media Absorption Color",
+        description="The atmospheric media absorption color",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.0, 0.0, 0.0),
+        options={'ANIMATABLE'},
+        subtype='COLOR',
+    )
 
     media_eccentricity: FloatProperty(
-            name="Media Eccenticity Factor", description="Positive values lead"
-                 " to scattering in the direction of the light and negative "
-                 "values lead to scattering in the opposite direction of the "
-                 "light. Larger values of e (or smaller values in the negative"
-                 " case) increase the directional property of the scattering.",
-            precision=2, step=0.01, min=-1.0, max=1.0,
-            default=(0.0),
-            options={'ANIMATABLE'})
+        name="Media Eccenticity Factor",
+        description="Positive values lead"
+        " to scattering in the direction of the light and negative "
+        "values lead to scattering in the opposite direction of the "
+        "light. Larger values of e (or smaller values in the negative"
+        " case) increase the directional property of the scattering.",
+        precision=2,
+        step=0.01,
+        min=-1.0,
+        max=1.0,
+        default=(0.0),
+        options={'ANIMATABLE'},
+    )
 
     baking_enable: BoolProperty(
-            name="Enable Baking",
-            description="Enable POV texture baking",
-            default=False)
+        name="Enable Baking",
+        description="Enable POV texture baking",
+        default=False
+    )
+
     indentation_character: EnumProperty(
-            name="Indentation",
-            description="Select the indentation type",
-            items=(('NONE', "None", "No indentation"),
-                   ('TAB', "Tabs", "Indentation with tabs"),
-                   ('SPACE', "Spaces", "Indentation with spaces")),
-            default='SPACE')
+        name="Indentation",
+        description="Select the indentation type",
+        items=(
+            ('NONE', "None", "No indentation"),
+            ('TAB', "Tabs", "Indentation with tabs"),
+            ('SPACE', "Spaces", "Indentation with spaces")),
+        default='SPACE'
+    )
+
     indentation_spaces: IntProperty(
-            name="Quantity of spaces",
-            description="The number of spaces for indentation",
-            min=1, max=10, default=4)
+        name="Quantity of spaces",
+        description="The number of spaces for indentation",
+        min=1,
+        max=10,
+        default=4,
+    )
 
     comments_enable: BoolProperty(
-            name="Enable Comments",
-            description="Add comments to pov file",
-            default=True)
+        name="Enable Comments",
+        description="Add comments to pov file",
+        default=True,
+    )
 
     # Real pov options
     command_line_switches: StringProperty(
-            name="Command Line Switches",
-            description="Command line switches consist of a + (plus) or - "
-                        "(minus) sign, followed by one or more alphabetic "
-                        "characters and possibly a numeric value",
-            maxlen=500)
+        name="Command Line Switches",
+        description="Command line switches consist of a + (plus) or - "
+        "(minus) sign, followed by one or more alphabetic "
+        "characters and possibly a numeric value",
+        maxlen=500,
+    )
 
     antialias_enable: BoolProperty(
-            name="Anti-Alias", description="Enable Anti-Aliasing",
-            default=True)
+        name="Anti-Alias", description="Enable Anti-Aliasing",
+        default=True,
+    )
 
     antialias_method: EnumProperty(
-            name="Method",
-            description="AA-sampling method. Type 1 is an adaptive, "
-                        "non-recursive, super-sampling method. Type 2 is an "
-                        "adaptive and recursive super-sampling method. Type 3 "
-                        "is a stochastic halton based super-sampling method",
-            items=(("0", "non-recursive AA", "Type 1 Sampling in POV"),
-                   ("1", "recursive AA", "Type 2 Sampling in POV"),
-                   ("2", "stochastic AA", "Type 3 Sampling in POV")),
-            default="1")
+        name="Method",
+        description="AA-sampling method. Type 1 is an adaptive, "
+        "non-recursive, super-sampling method. Type 2 is an "
+        "adaptive and recursive super-sampling method. Type 3 "
+        "is a stochastic halton based super-sampling method",
+        items=(
+            ("0", "non-recursive AA", "Type 1 Sampling in POV"),
+            ("1", "recursive AA", "Type 2 Sampling in POV"),
+            ("2", "stochastic AA", "Type 3 Sampling in POV")
+        ),
+        default="1",
+    )
 
     antialias_confidence: FloatProperty(
-            name="Antialias Confidence",
-            description="how surely the computed color "
-                        "of a given pixel is indeed"
-                        "within the threshold error margin",
-            min=0.0001, max=1.0000, default=0.9900, precision=4)
+        name="Antialias Confidence",
+        description="how surely the computed color "
+        "of a given pixel is indeed"
+        "within the threshold error margin",
+        min=0.0001, max=1.0000, default=0.9900, precision=4
+    )
+
     antialias_depth: IntProperty(
-            name="Antialias Depth", description="Depth of pixel for sampling",
-            min=1, max=9, default=3)
+        name="Antialias Depth",
+        description="Depth of pixel for sampling",
+        min=1, max=9, default=3
+    )
 
     antialias_threshold: FloatProperty(
-            name="Antialias Threshold", description="Tolerance for sub-pixels",
-            min=0.0, max=1.0, soft_min=0.05, soft_max=0.5, default=0.03)
+        name="Antialias Threshold",
+        description="Tolerance for sub-pixels",
+        min=0.0,
+        max=1.0,
+        soft_min=0.05,
+        soft_max=0.5,
+        default=0.03,
+    )
 
     jitter_enable: BoolProperty(
-            name="Jitter",
-            description="Enable Jittering. Adds noise into the sampling "
-                        "process (it should be avoided to use jitter in "
-                        "animation)",
-            default=False)
+        name="Jitter",
+        description="Enable Jittering. Adds noise into the sampling "
+        "process (it should be avoided to use jitter in "
+        "animation)",
+        default=False,
+    )
 
     jitter_amount: FloatProperty(
-            name="Jitter Amount", description="Amount of jittering",
-            min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=1.0)
+        name="Jitter Amount",
+        description="Amount of jittering",
+        min=0.0,
+        max=1.0,
+        soft_min=0.01,
+        soft_max=1.0,
+        default=1.0,
+    )
 
     antialias_gamma: FloatProperty(
-            name="Antialias Gamma",
-            description="POV-Ray compares gamma-adjusted values for super "
-                        "sampling. Antialias Gamma sets the Gamma before "
-                        "comparison",
-            min=0.0, max=5.0, soft_min=0.01, soft_max=2.5, default=2.5)
+        name="Antialias Gamma",
+        description="POV-Ray compares gamma-adjusted values for super "
+        "sampling. Antialias Gamma sets the Gamma before "
+        "comparison",
+        min=0.0,
+        max=5.0,
+        soft_min=0.01,
+        soft_max=2.5,
+        default=2.5,
+    )
 
     alpha_mode: EnumProperty(
-            name="Alpha",
-            description="Representation of alpha information in the RGBA pixels",
-            items=(("SKY", "Sky", "Transparent pixels are filled with sky color"),
-                   ("TRANSPARENT", "Transparent", "Transparent, World background is transparent with premultiplied alpha")),
-            default="SKY")
+        name="Alpha",
+        description="Representation of alpha information in the RGBA pixels",
+        items=(
+            ("SKY", "Sky", "Transparent pixels are filled with sky color"),
+            (
+            "TRANSPARENT",
+            "Transparent",
+            "Transparent, World background is transparent with premultiplied alpha",
+            ),
+        ),
+        default="SKY",
+    )
 
     use_shadows: BoolProperty(
-            name="Shadows",
-            description="Calculate shadows while rendering",
-            default=True)
+        name="Shadows",
+        description="Calculate shadows while rendering",
+        default=True,
+    )
 
     max_trace_level: IntProperty(
-            name="Max Trace Level",
-            description="Number of reflections/refractions allowed on ray "
-                        "path",
-            min=1, max=256, default=5)
+        name="Max Trace Level",
+        description="Number of reflections/refractions allowed on ray "
+        "path",
+        min=1, max=256, default=5
+    )
 
-#######NEW from Lanuhum
     adc_bailout_enable: BoolProperty(
-            name="Enable",
-            description="",
-            default=False)
+        name="Enable",
+        description="",
+        default=False,
+    )
 
     adc_bailout: FloatProperty(
-            name="ADC Bailout",
-            description="",
-            min=0.0, max=1000.0,default=0.00392156862745, precision=3)
+        name="ADC Bailout",
+        description="Adaptive Depth Control (ADC) to stop computing additional"
+        "reflected or refracted rays when their contribution is insignificant."
+        "The default value is 1/255, or approximately 0.0039, since a change "
+        "smaller than that could not be visible in a 24 bit image. Generally "
+        "this value is fine and should be left alone."
+        "Setting adc_bailout to 0 will disable ADC, relying completely on "
+        "max_trace_level to set an upper limit on the number of rays spawned. ",
+        min=0.0,
+        max=1000.0,
+        default=0.00392156862745,
+        precision=3
+    )
 
     ambient_light_enable: BoolProperty(
-            name="Enable",
-            description="",
-            default=False)
+        name="Enable",
+        description="",
+        default=False,
+    )
 
     ambient_light: FloatVectorProperty(
-            name="Ambient Light",
-            description="Ambient light is used to simulate the effect of inter-diffuse reflection",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(1, 1, 1), options={'ANIMATABLE'}, subtype='COLOR',
+        name="Ambient Light",
+        description="Ambient light is used to simulate the effect of inter-diffuse reflection",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(1, 1, 1), options={'ANIMATABLE'}, subtype='COLOR',
     )
     global_settings_advanced: BoolProperty(
-            name="Advanced",
-            description="",
-            default=False)
+        name="Advanced",
+        description="",
+        default=False,
+    )
 
     irid_wavelength_enable: BoolProperty(
-            name="Enable",
-            description="",
-            default=False)
+        name="Enable",
+        description="",
+        default=False,
+    )
 
     irid_wavelength: FloatVectorProperty(
-            name="Irid Wavelength",
-            description=(
-                "Iridescence calculations depend upon the dominant "
-                "wavelengths of the primary colors of red, green and blue light"
-            ),
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.25,0.18,0.14), options={'ANIMATABLE'}, subtype='COLOR')
+        name="Irid Wavelength",
+        description=(
+            "Iridescence calculations depend upon the dominant "
+            "wavelengths of the primary colors of red, green and blue light"
+        ),
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.25,0.18,0.14), options={'ANIMATABLE'}, subtype='COLOR'
+    )
 
     charset: EnumProperty(
-            name="Charset",
-            description="This allows you to specify the assumed character set of all text strings",
-            items=(("ascii", "ASCII", ""),
-                   ("utf8", "UTF-8", ""),
-                   ("sys", "SYS", "")),
-            default="utf8")
+        name="Charset",
+        description="This allows you to specify the assumed character set of all text strings",
+        items=(
+            ("ascii", "ASCII", ""),
+            ("utf8", "UTF-8", ""),
+            ("sys", "SYS", "")
+        ),
+        default="utf8",
+    )
 
     max_intersections_enable: BoolProperty(
-            name="Enable",
-            description="",
-            default=False)
+        name="Enable",
+        description="",
+        default=False,
+    )
 
     max_intersections: IntProperty(
-            name="Max Intersections",
-            description="POV-Ray uses a set of internal stacks to collect ray/object intersection points",
-            min=2, max=1024, default=64)
+        name="Max Intersections",
+        description="POV-Ray uses a set of internal stacks to collect ray/object intersection points",
+        min=2,
+        max=1024,
+        default=64,
+    )
 
     number_of_waves_enable: BoolProperty(
-            name="Enable",
-            description="",
-            default=False)
+        name="Enable",
+        description="",
+        default=False,
+    )
 
     number_of_waves: IntProperty(
-            name="Number Waves",
-            description=(
-                "The waves and ripples patterns are generated by summing a series of waves, "
-                "each with a slightly different center and size"
-            ),
-            min=1, max=10, default=1000)
+        name="Number Waves",
+        description=(
+            "The waves and ripples patterns are generated by summing a series of waves, "
+            "each with a slightly different center and size"
+        ),
+        min=1,
+        max=10,
+        default=1000,
+    )
 
     noise_generator_enable: BoolProperty(
-            name="Enable",
-            description="",
-            default=False)
+        name="Enable",
+        description="",
+        default=False,
+    )
 
     noise_generator: IntProperty(
-            name="Noise Generator",
-            description="There are three noise generators implemented",
-            min=1, max=3, default=2)
+        name="Noise Generator",
+        description="There are three noise generators implemented",
+        min=1,
+        max=3,
+        default=2,
+    )
 
     ########################### PHOTONS #######################################
     photon_enable: BoolProperty(
-            name="Photons",
-            description="Enable global photons",
-            default=False)
+        name="Photons",
+        description="Enable global photons",
+        default=False,
+    )
 
     photon_enable_count: BoolProperty(
-            name="Spacing / Count",
-            description="Enable count photons",
-            default=False)
+        name="Spacing / Count",
+        description="Enable count photons",
+        default=False,
+    )
 
     photon_count: IntProperty(
-            name="Count",
-            description="Photons count",
-            min=1, max=100000000, default=20000)
+        name="Count",
+        description="Photons count",
+        min=1,
+        max=100000000,
+        default=20000
+    )
 
     photon_spacing: FloatProperty(
-            name="Spacing",
-            description="Average distance between photons on surfaces. half "
-                        "this get four times as many surface photons",
-            min=0.001, max=1.000, default=0.005,
-            soft_min=0.001, soft_max=1.000, precision=3)
+        name="Spacing",
+        description="Average distance between photons on surfaces. half "
+        "this get four times as many surface photons",
+        min=0.001,
+        max=1.000,
+        soft_min=0.001,
+        soft_max=1.000,
+        precision=3
+        default=0.005,
+    )
 
     photon_max_trace_level: IntProperty(
-            name="Max Trace Level",
-            description="Number of reflections/refractions allowed on ray "
-                        "path",
-            min=1, max=256, default=5)
+        name="Max Trace Level",
+        description="Number of reflections/refractions allowed on ray "
+        "path",
+        min=1,
+        max=256,
+        default=5
+    )
 
     photon_adc_bailout: FloatProperty(
-            name="ADC Bailout",
-            description="The adc_bailout for photons. Use adc_bailout = "
-                        "0.01 / brightest_ambient_object for good results",
-            min=0.0, max=1000.0, default=0.1,
-            soft_min=0.0, soft_max=1.0, precision=3)
+        name="ADC Bailout",
+        description="The adc_bailout for photons. Use adc_bailout = "
+        "0.01 / brightest_ambient_object for good results",
+        min=0.0,
+        max=1000.0,
+        soft_min=0.0,
+        soft_max=1.0,
+        precision=3,
+        default=0.1,
+    )
 
     photon_gather_min: IntProperty(
-            name="Gather Min", description="Minimum number of photons gathered"
-                                           "for each point",
-            min=1, max=256, default=20)
+        name="Gather Min", description="Minimum number of photons gathered"
+        "for each point",
+        min=1, max=256, default=20
+    )
 
     photon_gather_max: IntProperty(
-            name="Gather Max", description="Maximum number of photons gathered for each point",
-            min=1, max=256, default=100)
+        name="Gather Max", description="Maximum number of photons gathered for each point",
+        min=1, max=256, default=100
+    )
 
     photon_map_file_save_load: EnumProperty(
-            name="Operation",
-            description="Load or Save photon map file",
-            items=(("NONE", "None", ""),
-                   ("save", "Save", ""),
-                   ("load", "Load", "")),
-            default="NONE")
+        name="Operation",
+        description="Load or Save photon map file",
+        items=(
+            ("NONE", "None", ""),
+            ("save", "Save", ""),
+            ("load", "Load", "")
+        ),
+        default="NONE",
+    )
 
     photon_map_filename: StringProperty(
-            name="Filename",
-            description="",
-            maxlen=1024)
+        name="Filename",
+        description="",
+        maxlen=1024
+    )
 
     photon_map_dir: StringProperty(
-            name="Directory",
-            description="",
-            maxlen=1024, subtype="DIR_PATH")
+        name="Directory",
+        description="",
+        maxlen=1024,
+        subtype="DIR_PATH",
+    )
 
     photon_map_file: StringProperty(
-            name="File",
-            description="",
-            maxlen=1024, subtype="FILE_PATH")
+        name="File",
+        description="",
+        maxlen=1024,
+        subtype="FILE_PATH"
+    )
 
     #########RADIOSITY########
     radio_adc_bailout: FloatProperty(
-            name="ADC Bailout",
-            description="The adc_bailout for radiosity rays. Use "
-                        "adc_bailout = 0.01 / brightest_ambient_object for good results",
-            min=0.0, max=1000.0, soft_min=0.0, soft_max=1.0, default=0.0039, precision=4)
+        name="ADC Bailout",
+        description="The adc_bailout for radiosity rays. Use "
+        "adc_bailout = 0.01 / brightest_ambient_object for good results",
+        min=0.0,
+        max=1000.0,
+        soft_min=0.0,
+        soft_max=1.0,
+        default=0.0039,
+        precision=4,
+    )
 
     radio_always_sample: BoolProperty(
-            name="Always Sample",
-            description="Only use the data from the pretrace step and not gather "
-                        "any new samples during the final radiosity pass",
-            default=False)
+        name="Always Sample",
+        description="Only use the data from the pretrace step and not gather "
+        "any new samples during the final radiosity pass",
+        default=False,
+    )
 
     radio_brightness: FloatProperty(
-            name="Brightness",
-            description="Amount objects are brightened before being returned "
-                        "upwards to the rest of the system",
-            min=0.0, max=1000.0, soft_min=0.0, soft_max=10.0, default=1.0)
+        name="Brightness",
+        description="Amount objects are brightened before being returned "
+        "upwards to the rest of the system",
+        min=0.0, max=1000.0, soft_min=0.0, soft_max=10.0, default=1.0
+    )
 
     radio_count: IntProperty(
-            name="Ray Count",
-            description="Number of rays for each new radiosity value to be calculated "
-                        "(halton sequence over 1600)",
-            min=1, max=10000, soft_max=1600, default=35)
+        name="Ray Count",
+        description="Number of rays for each new radiosity value to be calculated "
+        "(halton sequence over 1600)",
+        min=1, max=10000, soft_max=1600, default=35
+    )
 
     radio_error_bound: FloatProperty(
-            name="Error Bound",
-            description="One of the two main speed/quality tuning values, "
-                        "lower values are more accurate",
-            min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1.8)
+        name="Error Bound",
+        description="One of the two main speed/quality tuning values, "
+        "lower values are more accurate",
+        min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1.8
+    )
 
     radio_gray_threshold: FloatProperty(
-            name="Gray Threshold",
-            description="One of the two main speed/quality tuning values, "
-                        "lower values are more accurate",
-            min=0.0, max=1.0, soft_min=0, soft_max=1, default=0.0)
+        name="Gray Threshold",
+        description="One of the two main speed/quality tuning values, "
+        "lower values are more accurate",
+        min=0.0, max=1.0, soft_min=0, soft_max=1, default=0.0
+    )
 
     radio_low_error_factor: FloatProperty(
-            name="Low Error Factor",
-            description="Just enough samples is slightly blotchy. Low error changes error "
-                        "tolerance for less critical last refining pass",
-            min=0.000001, max=1.0, soft_min=0.000001, soft_max=1.0, default=0.5)
+        name="Low Error Factor",
+        description="Just enough samples is slightly blotchy. Low error changes error "
+        "tolerance for less critical last refining pass",
+        min=0.000001, max=1.0, soft_min=0.000001, soft_max=1.0, default=0.5
+    )
 
     radio_media: BoolProperty(
-            name="Media", description="Radiosity estimation can be affected by media",
-            default=True)
+        name="Media",
+        description="Radiosity estimation can be affected by media",
+        default=True,
+    )
 
     radio_subsurface: BoolProperty(
-            name="Subsurface", description="Radiosity estimation can be affected by Subsurface Light Transport",
-            default=False)
+        name="Subsurface",
+        description="Radiosity estimation can be affected by Subsurface Light Transport",
+        default=False,
+    )
 
     radio_minimum_reuse: FloatProperty(
-            name="Minimum Reuse",
-            description="Fraction of the screen width which sets the minimum radius of reuse "
-                        "for each sample point (At values higher than 2% expect errors)",
-            min=0.0, max=1.0, soft_min=0.1, soft_max=0.1, default=0.015, precision=3)
+        name="Minimum Reuse",
+        description="Fraction of the screen width which sets the minimum radius of reuse "
+        "for each sample point (At values higher than 2% expect errors)",
+        min=0.0, max=1.0, soft_min=0.1, soft_max=0.1, default=0.015, precision=3
+    )
 
     radio_maximum_reuse: FloatProperty(
-            name="Maximum Reuse",
-            description="The maximum reuse parameter works in conjunction with, and is similar to that of minimum reuse, "
-                        "the only difference being that it is an upper bound rather than a lower one",
-            min=0.0, max=1.0,default=0.2, precision=3)
+        name="Maximum Reuse",
+        description="The maximum reuse parameter works in conjunction with, and is similar to that of minimum reuse, "
+        "the only difference being that it is an upper bound rather than a lower one",
+        min=0.0, max=1.0,default=0.2, precision=3
+    )
 
     radio_nearest_count: IntProperty(
-            name="Nearest Count",
-            description="Number of old ambient values blended together to "
-                        "create a new interpolated value",
-            min=1, max=20, default=1)
+        name="Nearest Count",
+        description="Number of old ambient values blended together to "
+        "create a new interpolated value",
+        min=1, max=20, default=1
+    )
 
     radio_normal: BoolProperty(
-            name="Normals", description="Radiosity estimation can be affected by normals",
-            default=False)
+        name="Normals",
+        description="Radiosity estimation can be affected by normals",
+        default=False,
+    )
 
     radio_recursion_limit: IntProperty(
-            name="Recursion Limit",
-            description="how many recursion levels are used to calculate "
-                        "the diffuse inter-reflection",
-            min=1, max=20, default=1)
+        name="Recursion Limit",
+        description="how many recursion levels are used to calculate "
+        "the diffuse inter-reflection",
+        min=1, max=20, default=1
+    )
 
     radio_pretrace_start: FloatProperty(
-            name="Pretrace Start",
-            description="Fraction of the screen width which sets the size of the "
-                        "blocks in the mosaic preview first pass",
-            min=0.01, max=1.00, soft_min=0.02, soft_max=1.0, default=0.08)
+        name="Pretrace Start",
+        description="Fraction of the screen width which sets the size of the "
+        "blocks in the mosaic preview first pass",
+        min=0.01, max=1.00, soft_min=0.02, soft_max=1.0, default=0.08
+    )
 
     radio_pretrace_end: FloatProperty(
-            name="Pretrace End",
-            description="Fraction of the screen width which sets the size of the blocks "
-                        "in the mosaic preview last pass",
-            min=0.000925, max=1.00, soft_min=0.01, soft_max=1.00, default=0.04, precision=3)
+        name="Pretrace End",
+        description="Fraction of the screen width which sets the size of the blocks "
+        "in the mosaic preview last pass",
+        min=0.000925, max=1.00, soft_min=0.01, soft_max=1.00, default=0.04, precision=3
+    )
 
 ###############################################################################
 # Material POV properties.
 ###############################################################################
 class MaterialTextureSlot(PropertyGroup):
     """Declare material texture slot level properties for UI and translated to POV."""
+
     bl_idname="pov_texture_slots",
     bl_description="Texture_slots from Blender-2.79",
-    
+
     texture : StringProperty(update=active_texture_name_from_uilist)
     texture_search : StringProperty(update=active_texture_name_from_search)
 
     alpha_factor: FloatProperty(
-            name="Alpha",
-            description="Amount texture affects alpha",
-            default = 0.0)
+        name="Alpha",
+        description="Amount texture affects alpha",
+        default = 0.0,
+    )
 
     ambient_factor: FloatProperty(
-            name="",
-            description="Amount texture affects ambient",
-            default = 0.0)
+        name="",
+        description="Amount texture affects ambient",
+        default = 0.0,
+    )
 
     bump_method: EnumProperty(
-            name="",
-            description="Method to use for bump mapping",
-            items=(("BUMP_ORIGINAL", "Bump Original", ""),
-                   ("BUMP_COMPATIBLE", "Bump Compatible", ""),
-                   ("BUMP_DEFAULT", "Bump Default", ""),
-                   ("BUMP_BEST_QUALITY", "Bump Best Quality", "")),
-            default="BUMP_ORIGINAL")            
+        name="",
+        description="Method to use for bump mapping",
+        items=(
+            ("BUMP_ORIGINAL", "Bump Original", ""),
+            ("BUMP_COMPATIBLE", "Bump Compatible", ""),
+            ("BUMP_DEFAULT", "Bump Default", ""),
+            ("BUMP_BEST_QUALITY", "Bump Best Quality", "")
+        ),
+        default="BUMP_ORIGINAL",
+    )
 
     bump_objectspace: EnumProperty(
-            name="",
-            description="Space to apply bump mapping in",
-            items=(("BUMP_VIEWSPACE", "Bump Viewspace", ""),
-                   ("BUMP_OBJECTSPACE", "Bump Objectspace", ""),
-                   ("BUMP_TEXTURESPACE", "Bump Texturespace", "")),
-            default="BUMP_VIEWSPACE")
+        name="",
+        description="Space to apply bump mapping in",
+        items=(
+            ("BUMP_VIEWSPACE", "Bump Viewspace", ""),
+            ("BUMP_OBJECTSPACE", "Bump Objectspace", ""),
+            ("BUMP_TEXTURESPACE", "Bump Texturespace", "")
+        ),
+        default="BUMP_VIEWSPACE",
+    )
 
     density_factor: FloatProperty(
-            name="",
-            description="Amount texture affects density",
-            default = 0.0)
+        name="",
+        description="Amount texture affects density",
+        default = 0.0,
+    )
 
     diffuse_color_factor: FloatProperty(
-            name="",
-            description="Amount texture affects diffuse color",
-            default = 0.0)
+        name="",
+        description="Amount texture affects diffuse color",
+        default = 0.0,
+    )
 
     diffuse_factor: FloatProperty(
-            name="",
-            description="Amount texture affects diffuse reflectivity",
-            default = 0.0)
+        name="",
+        description="Amount texture affects diffuse reflectivity",
+        default = 0.0,
+    )
 
     displacement_factor: FloatProperty(
-            name="",
-            description="Amount texture displaces the surface",
-            default = 0.0)
+        name="",
+        description="Amount texture displaces the surface",
+        default = 0.0,
+    )
 
     emission_color_factor: FloatProperty(
-            name="",
-            description="Amount texture affects emission color",
-            default = 0.0)
+        name="",
+        description="Amount texture affects emission color",
+        default = 0.0,
+    )
 
     emission_factor: FloatProperty(
-            name="",
-            description="Amount texture affects emission",
-            default = 0.0)
+        name="",
+        description="Amount texture affects emission",
+        default = 0.0,
+    )
 
     emit_factor: FloatProperty(
-            name="",
-            description="Amount texture affects emission",
-            default = 0.0)
+        name="",
+        description="Amount texture affects emission",
+        default = 0.0,
+    )
 
     hardness_factor: FloatProperty(
-            name="",
-            description="Amount texture affects hardness",
-            default = 0.0)
+        name="",
+        description="Amount texture affects hardness",
+        default = 0.0,
+    )
 
     mapping: EnumProperty(
-            name="",
-            description="",
-            items=(("FLAT", "Flat", ""),
-                   ("CUBE", "Cube", ""),
-                   ("TUBE", "Tube", ""),
-                   ("SPHERE", "Sphere", "")),
-            default="FLAT")            
+        name="",
+        description="",
+        items=(("FLAT", "Flat", ""),
+               ("CUBE", "Cube", ""),
+               ("TUBE", "Tube", ""),
+               ("SPHERE", "Sphere", "")),
+        default="FLAT",
+    )
 
     mapping_x: EnumProperty(
-            name="",
-            description="",
-            items=(("NONE", "", ""),
-                   ("X", "", ""),
-                   ("Y", "", ""),
-                   ("Z", "", "")),
-            default="NONE")      
+        name="",
+        description="",
+        items=(("NONE", "", ""),
+               ("X", "", ""),
+               ("Y", "", ""),
+               ("Z", "", "")),
+        default="NONE",
+    )
 
     mapping_y: EnumProperty(
-            name="",
-            description="",
-            items=(("NONE", "", ""),
-                   ("X", "", ""),
-                   ("Y", "", ""),
-                   ("Z", "", "")),
-            default="NONE")   
+        name="",
+        description="",
+        items=(("NONE", "", ""),
+               ("X", "", ""),
+               ("Y", "", ""),
+               ("Z", "", "")),
+        default="NONE",
+    )
 
     mapping_z: EnumProperty(
-            name="",
-            description="",
-            items=(("NONE", "", ""),
-                   ("X", "", ""),
-                   ("Y", "", ""),
-                   ("Z", "", "")),
-            default="NONE")   
+        name="",
+        description="",
+        items=(("NONE", "", ""),
+               ("X", "", ""),
+               ("Y", "", ""),
+               ("Z", "", "")),
+        default="NONE",
+    )
 
     mirror_factor: FloatProperty(
-            name="",
-            description="Amount texture affects mirror color",
-            default = 0.0)
+        name="",
+        description="Amount texture affects mirror color",
+        default = 0.0,
+    )
 
     normal_factor: FloatProperty(
-            name="",
-            description="Amount texture affects normal values",
-            default = 0.0)
+        name="",
+        description="Amount texture affects normal values",
+        default = 0.0,
+    )
 
     normal_map_space: EnumProperty(
-            name="",
-            description="Sets space of normal map image",
-            items=(("CAMERA", "Camera", ""),
-                   ("WORLD", "World", ""),
-                   ("OBJECT", "Object", ""),
-                   ("TANGENT", "Tangent", "")),
-            default="CAMERA") 
+        name="",
+        description="Sets space of normal map image",
+        items=(("CAMERA", "Camera", ""),
+               ("WORLD", "World", ""),
+               ("OBJECT", "Object", ""),
+               ("TANGENT", "Tangent", "")),
+        default="CAMERA",
+    )
 
     object: StringProperty(
-            name="Object",
-            description="Object to use for mapping with Object texture coordinates",
-            default ="")
+        name="Object",
+        description="Object to use for mapping with Object texture coordinates",
+        default ="",
+    )
 
     raymir_factor: FloatProperty(
-            name="",
-            description="Amount texture affects ray mirror",
-            default = 0.0)
+        name="",
+        description="Amount texture affects ray mirror",
+        default = 0.0,
+    )
 
     reflection_color_factor: FloatProperty(
-            name="",
-            description="Amount texture affects color of out-scattered light",
-            default = 0.0)
+        name="",
+        description="Amount texture affects color of out-scattered light",
+        default = 0.0,
+    )
 
     reflection_factor: FloatProperty(
-            name="",
-            description="Amount texture affects brightness of out-scattered light",
-            default = 0.0)
+        name="",
+        description="Amount texture affects brightness of out-scattered light",
+        default = 0.0,
+    )
 
     scattering_factor: FloatProperty(
-            name="",
-            description="Amount texture affects scattering",
-            default = 0.0)
+        name="",
+        description="Amount texture affects scattering",
+        default = 0.0,
+    )
 
     specular_color_factor: FloatProperty(
-            name="",
-            description="Amount texture affects specular color",
-            default = 0.0)
+        name="",
+        description="Amount texture affects specular color",
+        default = 0.0,
+    )
 
     specular_factor: FloatProperty(
-            name="",
-            description="Amount texture affects specular reflectivity",
-            default = 0.0)
+        name="",
+        description="Amount texture affects specular reflectivity",
+        default = 0.0,
+    )
 
     texture_coords: EnumProperty(
-            name="",
-            description="",
-            items=(("GLOBAL", "Global", ""),
-                   ("OBJECT", "Object", ""),
-                   ("UV", "UV", ""),
-                   ("ORCO", "Original Coordinates", ""),
-                   ("STRAND", "Strand", ""),
-                   ("STICKY", "Sticky", ""),
-                   ("WINDOW", "Window", ""),
-                   ("NORMAL", "Normal", ""),
-                   ("REFLECTION", "Reflection", ""),
-                   ("STRESS", "Stress", ""),
-                   ("TANGENT", "Tangent", "")),
-            default="GLOBAL")
+        name="",
+        description="",
+        items=(("GLOBAL", "Global", ""),
+               ("OBJECT", "Object", ""),
+               ("UV", "UV", ""),
+               ("ORCO", "Original Coordinates", ""),
+               ("STRAND", "Strand", ""),
+               ("STICKY", "Sticky", ""),
+               ("WINDOW", "Window", ""),
+               ("NORMAL", "Normal", ""),
+               ("REFLECTION", "Reflection", ""),
+               ("STRESS", "Stress", ""),
+               ("TANGENT", "Tangent", "")),
+        default="GLOBAL",
+    )
 
     translucency_factor: FloatProperty(
-            name="",
-            description="Amount texture affects translucency",
-            default = 0.0)
+        name="",
+        description="Amount texture affects translucency",
+        default = 0.0,
+    )
 
     transmission_color_factor: FloatProperty(
-            name="",
-            description="Amount texture affects result color after light has been scattered/absorbed",
-            default = 0.0)
+        name="",
+        description="Amount texture affects result color after light has been scattered/absorbed",
+        default = 0.0,
+    )
 
     use: BoolProperty(
-            name="",
-            description="Enable this material texture slot",
-            default = True)
+        name="",
+        description="Enable this material texture slot",
+        default = True,
+    )
 
     use_from_dupli: BoolProperty(
-            name="",
-            description="Dupli’s instanced from verts, faces or particles, inherit texture coordinate from their parent",
-            default = False)
+        name="",
+        description="Dupli’s instanced from verts, faces or particles, inherit texture coordinate from their parent",
+        default = False,
+    )
 
     use_from_original: BoolProperty(
-            name="",
-            description="Dupli’s derive their object coordinates from the original objects transformation",
-            default = False)
+        name="",
+        description="Dupli’s derive their object coordinates from the original objects transformation",
+        default = False,
+    )
 
     use_map_alpha: BoolProperty(
-            name="",
-            description="Causes the texture to affect the alpha value",
-            default = False)
+        name="",
+        description="Causes the texture to affect the alpha value",
+        default = False,
+    )
 
     use_map_ambient: BoolProperty(
-            name="",
-            description="Causes the texture to affect the value of ambient",
-            default = False)
+        name="",
+        description="Causes the texture to affect the value of ambient",
+        default = False,
+    )
 
     use_map_color_diffuse: BoolProperty(
-            name="",
-            description="Causes the texture to affect basic color of the material",
-            default = False)
+        name="",
+        description="Causes the texture to affect basic color of the material",
+        default = False,
+    )
 
     use_map_color_emission: BoolProperty(
-            name="",
-            description="Causes the texture to affect the color of emission",
-            default = False)
+        name="",
+        description="Causes the texture to affect the color of emission",
+        default = False,
+    )
 
     use_map_color_reflection: BoolProperty(
-            name="",
-            description="Causes the texture to affect the color of scattered light",
-            default = False)
+        name="",
+        description="Causes the texture to affect the color of scattered light",
+        default = False,
+    )
 
     use_map_color_spec: BoolProperty(
-            name="",
-            description="Causes the texture to affect the specularity color",
-            default = False)
+        name="",
+        description="Causes the texture to affect the specularity color",
+        default = False,
+    )
 
     use_map_color_transmission: BoolProperty(
-            name="",
-            description="Causes the texture to affect the result color after other light has been scattered/absorbed",
-            default = False)
+        name="",
+        description="Causes the texture to affect the result color after other light has been scattered/absorbed",
+        default = False,
+    )
 
     use_map_density: BoolProperty(
-            name="",
-            description="Causes the texture to affect the volume’s density",
-            default = False)
+        name="",
+        description="Causes the texture to affect the volume’s density",
+        default = False,
+    )
 
     use_map_diffuse: BoolProperty(
-            name="",
-            description="Causes the texture to affect the value of the materials diffuse reflectivity",
-            default = False)
+        name="",
+        description="Causes the texture to affect the value of the materials diffuse reflectivity",
+        default = False,
+    )
 
     use_map_displacement: BoolProperty(
-            name="",
-            description="Let the texture displace the surface",
-            default = False)
+        name="",
+        description="Let the texture displace the surface",
+        default = False,
+    )
 
     use_map_emission: BoolProperty(
-            name="",
-            description="Causes the texture to affect the volume’s emission",
-            default = False)
+        name="",
+        description="Causes the texture to affect the volume’s emission",
+        default = False,
+    )
 
     use_map_emit: BoolProperty(
-            name="",
-            description="Causes the texture to affect the emit value",
-            default = False)
+        name="",
+        description="Causes the texture to affect the emit value",
+        default = False,
+    )
 
     use_map_hardness: BoolProperty(
-            name="",
-            description="Causes the texture to affect the hardness value",
-            default = False)
+        name="",
+        description="Causes the texture to affect the hardness value",
+        default = False,
+    )
 
     use_map_mirror: BoolProperty(
-            name="",
-            description="Causes the texture to affect the mirror color",
-            default = False)
+        name="",
+        description="Causes the texture to affect the mirror color",
+        default = False,
+    )
 
     use_map_normal: BoolProperty(
-            name="",
-            description="Causes the texture to affect the rendered normal",
-            default = False)
+        name="",
+        description="Causes the texture to affect the rendered normal",
+        default = False,
+    )
 
     use_map_raymir: BoolProperty(
-            name="",
-            description="Causes the texture to affect the ray-mirror value",
-            default = False)
+        name="",
+        description="Causes the texture to affect the ray-mirror value",
+        default = False,
+    )
 
     use_map_reflect: BoolProperty(
-            name="",
-            description="Causes the texture to affect the reflected light’s brightness",
-            default = False)
+        name="",
+        description="Causes the texture to affect the reflected light’s brightness",
+        default = False,
+    )
 
     use_map_scatter: BoolProperty(
-            name="",
-            description="Causes the texture to affect the volume’s scattering",
-            default = False)
+        name="",
+        description="Causes the texture to affect the volume’s scattering",
+        default = False,
+    )
 
     use_map_specular: BoolProperty(
-            name="",
-            description="Causes the texture to affect the value of specular reflectivity",
-            default = False)
+        name="",
+        description="Causes the texture to affect the value of specular reflectivity",
+        default = False,
+    )
 
     use_map_translucency: BoolProperty(
-            name="",
-            description="Causes the texture to affect the translucency value",
-            default = False)
+        name="",
+        description="Causes the texture to affect the translucency value",
+        default = False,
+    )
 
     use_map_warp: BoolProperty(
-            name="",
-            description="Let the texture warp texture coordinates of next channels",
-            default = False)
+        name="",
+        description="Let the texture warp texture coordinates of next channels",
+        default = False,
+    )
 
     uv_layer: StringProperty(
-            name="",
-            description="UV layer to use for mapping with UV texture coordinates",
-            default = "")
+        name="",
+        description="UV layer to use for mapping with UV texture coordinates",
+        default = "",
+    )
 
     warp_factor: FloatProperty(
-            name="",
-            description="Amount texture affects texture coordinates of next channels",
-            default = 0.0)
-    
- 
-#######################################"    
-    
+        name="",
+        description="Amount texture affects texture coordinates of next channels",
+        default = 0.0,
+    )
+
+
+#######################################"
+
     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)
+        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)
+        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="")
+        name="Object",
+        description="Object to use for mapping with Object texture coordinates",
+        default="",
+    )
 
     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")
+        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)
+        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)
+        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)
+        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)
+        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)
+        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)
+        name="Zenith Up",
+        description="Amount texture affects color of the zenith above",
+        soft_min=0.0, soft_max=1.0, default=1.0
+    )
+
 
-                
-# former Space properties from  removed Blender Internal added below at superclass level 
-# so as to be available in World, Material, Light for texture slots use  
+# former Space properties from  removed Blender Internal added below at superclass level
+# so as to be available in World, Material, Light for texture slots use
 
 bpy.types.ID.use_limited_texture_context = BoolProperty(
-        name="",
-        description="Use the limited version of texture user (for ‘old shading’ mode)",
-        default=True)
+    name="",
+    description="Use the limited version of texture user (for ‘old shading’ mode)",
+    default=True,
+)
 bpy.types.ID.texture_context = EnumProperty(
-        name="Texture context",
-        description="Type of texture data to display and edit",
-        items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures"
-               ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures"
-               ('LIGHT', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures"
-               ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures"
-               ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures"
-               ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures"
-        default = 'MATERIAL')
+    name="Texture context",
+    description="Type of texture data to display and edit",
+    items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures"
+           ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures"
+           ('LIGHT', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures"
+           ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures"
+           ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures"
+           ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures"
+    default = 'MATERIAL',
+)
 
 bpy.types.ID.active_texture_index = IntProperty(
-        name = "Index for texture_slots",
-        default = 0)
-                
+    name = "Index for texture_slots",
+    default = 0,
+)
+
 class RenderPovSettingsMaterial(PropertyGroup):
     """Declare material level properties controllable in UI and translated to POV."""
+
     ######################Begin Old Blender Internal Props#########################
-    #former Space properties from  removed Blender Internal
+    # former Space properties from  removed Blender Internal
     use_limited_texture_context: BoolProperty(
-            name="",
-            description="Use the limited version of texture user (for ‘old shading’ mode)",
-            default=True)
+        name="",
+        description="Use the limited version of texture user (for ‘old shading’ mode)",
+        default=True,
+    )
     texture_context: EnumProperty(
-            name="Texture context",
-            description="Type of texture data to display and edit",
-            items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures"
-                   ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures"
-                   ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures"
-                   ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures"
-                   ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures"
-                   ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures"
-            default = 'MATERIAL')
- 
+        name="Texture context",
+        description="Type of texture data to display and edit",
+        items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures"
+               ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures"
+               ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures"
+               ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures"
+               ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures"
+               ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures"
+        default = 'MATERIAL',
+    )
+
     active_texture_index: IntProperty(
-            name = "Index for texture_slots",
-            default = 0)
-            
+        name = "Index for texture_slots",
+        default = 0,
+    )
+
     transparency_method: EnumProperty(
-            name="Specular Shader Model",
-            description="Method to use for rendering transparency",   
-            items=(("MASK", "Mask", "Mask the background"),
-                   ("Z_TRANSPARENCY", "Z Transparency", "Use alpha buffer for transparent faces"),
-                   ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")),
-            default="MASK")
-            
+        name="Specular Shader Model",
+        description="Method to use for rendering transparency",
+        items=(("MASK", "Mask", "Mask the background"),
+               ("Z_TRANSPARENCY", "Z Transparency", "Use alpha buffer for transparent faces"),
+               ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")),
+        default="MASK",
+    )
+
     use_transparency: BoolProperty(
-            name="Transparency", description="Render material as transparent",
-            default=False)
+        name="Transparency",
+        description="Render material as transparent",
+        default=False,
+    )
 
     alpha: FloatProperty(
-            name="Alpha",
-            description="Alpha transparency of the material",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
+        name="Alpha",
+        description="Alpha transparency of the material",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3,
+    )
 
     specular_alpha: FloatProperty(
-            name="Specular alpha",
-            description="Alpha transparency for specular areas",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
-            
+        name="Specular alpha",
+        description="Alpha transparency for specular areas",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3,
+    )
+
     ambient: FloatProperty(
-            name="Ambient",
-            description="Amount of global ambient color the material receives",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
+        name="Ambient",
+        description="Amount of global ambient color the material receives",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3,
+    )
 
     diffuse_color: FloatVectorProperty(
-            name="Diffuse color",
-            description=("Diffuse color of the material"),
-            precision=4, step=0.01, min=0, #max=inf, soft_max=1,
-            default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR')
+        name="Diffuse color",
+        description=("Diffuse color of the material"),
+        precision=4, step=0.01, min=0, # max=inf, soft_max=1,
+        default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR',
+    )
 
     darkness: FloatProperty(
-            name="Darkness",
-            description="Minnaert darkness",
-            min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3)
-            
+        name="Darkness",
+        description="Minnaert darkness",
+        min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3,
+    )
+
     diffuse_fresnel: FloatProperty(
-            name="Diffuse fresnel",
-            description="Power of Fresnel",
-            min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.0, precision=3)
-            
+        name="Diffuse fresnel",
+        description="Power of Fresnel",
+        min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.0, precision=3,
+    )
+
     diffuse_fresnel_factor: FloatProperty(
-            name="Diffuse fresnel factor",
-            description="Blending factor of Fresnel",
-            min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.5, precision=3)
+        name="Diffuse fresnel factor",
+        description="Blending factor of Fresnel",
+        min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.5, precision=3,
+    )
 
     diffuse_intensity: FloatProperty(
-            name="Diffuse intensity",
-            description="Amount of diffuse reflection multiplying color",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.8, precision=3)
-            
+        name="Diffuse intensity",
+        description="Amount of diffuse reflection multiplying color",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.8, precision=3,
+    )
+
     diffuse_ramp_blend: EnumProperty(
-            name="Diffuse ramp blend",
-            description="Blending method of the ramp and the diffuse color",   
-            items=(("MIX", "Mix", ""),
-                   ("ADD", "Add", ""),
-                   ("MULTIPLY", "Multiply", ""),
-                   ("SUBTRACT", "Subtract", ""),
-                   ("SCREEN", "Screen", ""),
-                   ("DIVIDE", "Divide", ""),
-                   ("DIFFERENCE", "Difference", ""),
-                   ("DARKEN", "Darken", ""),
-                   ("LIGHTEN", "Lighten", ""),
-                   ("OVERLAY", "Overlay", ""),
-                   ("DODGE", "Dodge", ""),
-                   ("BURN", "Burn", ""),
-                   ("HUE", "Hue", ""),
-                   ("SATURATION", "Saturation", ""),
-                   ("VALUE", "Value", ""),
-                   ("COLOR", "Color", ""),
-                   ("SOFT_LIGHT", "Soft light", ""),
-                   ("LINEAR_LIGHT", "Linear light", "")),
-            default="MIX")
+        name="Diffuse ramp blend",
+        description="Blending method of the ramp and the diffuse color",
+        items=(("MIX", "Mix", ""),
+               ("ADD", "Add", ""),
+               ("MULTIPLY", "Multiply", ""),
+               ("SUBTRACT", "Subtract", ""),
+               ("SCREEN", "Screen", ""),
+               ("DIVIDE", "Divide", ""),
+               ("DIFFERENCE", "Difference", ""),
+               ("DARKEN", "Darken", ""),
+               ("LIGHTEN", "Lighten", ""),
+               ("OVERLAY", "Overlay", ""),
+               ("DODGE", "Dodge", ""),
+               ("BURN", "Burn", ""),
+               ("HUE", "Hue", ""),
+               ("SATURATION", "Saturation", ""),
+               ("VALUE", "Value", ""),
+               ("COLOR", "Color", ""),
+               ("SOFT_LIGHT", "Soft light", ""),
+               ("LINEAR_LIGHT", "Linear light", "")),
+        default="MIX",
+    )
 
     diffuse_ramp_factor: FloatProperty(
-            name="Factor",
-            description="Blending factor (also uses alpha in Colorband)",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
-            
+        name="Factor",
+        description="Blending factor (also uses alpha in Colorband)",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3,
+    )
+
     diffuse_ramp_input: EnumProperty(
-            name="Input",
-            description="How the ramp maps on the surface",   
-            items=(("SHADER", "Shader", ""),
-                   ("ENERGY", "Energy", ""),
-                   ("NORMAL", "Normal", ""),
-                   ("RESULT", "Result", "")),
-            default="SHADER")
-            
+        name="Input",
+        description="How the ramp maps on the surface",
+        items=(("SHADER", "Shader", ""),
+               ("ENERGY", "Energy", ""),
+               ("NORMAL", "Normal", ""),
+               ("RESULT", "Result", "")),
+        default="SHADER",
+    )
+
     diffuse_shader: EnumProperty(
-            name="Diffuse Shader Model",
-            description="How the ramp maps on the surface",   
-            items=(("LAMBERT", "Lambert", "Use a Lambertian shader"),
-                   ("OREN_NAYAR", "Oren-Nayar", "Use an Oren-Nayar shader"),
-                   ("MINNAERT", "Minnaert", "Use a Minnaert shader"),
-                   ("FRESNEL", "Fresnel", "Use a Fresnel shader")),
-            default="LAMBERT")
+        name="Diffuse Shader Model",
+        description="How the ramp maps on the surface",
+        items=(("LAMBERT", "Lambert", "Use a Lambertian shader"),
+               ("OREN_NAYAR", "Oren-Nayar", "Use an Oren-Nayar shader"),
+               ("MINNAERT", "Minnaert", "Use a Minnaert shader"),
+               ("FRESNEL", "Fresnel", "Use a Fresnel shader")),
+        default="LAMBERT",
+    )
 
     diffuse_toon_size: FloatProperty(
-            name="Size",
-            description="Size of diffuse toon area",
-            min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, default=0.5, precision=3)
-            
+        name="Size",
+        description="Size of diffuse toon area",
+        min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, default=0.5, precision=3,
+    )
+
     diffuse_toon_smooth: FloatProperty(
-            name="Smooth",
-            description="Smoothness of diffuse toon area",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3)
+        name="Smooth",
+        description="Smoothness of diffuse toon area",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3,
+    )
 
     emit: FloatProperty(
-            name="Emit",
-            description="Amount of light to emit",
-            min=0.0, soft_min=0.0, #max=inf, soft_max=inf,
-            default=0.0, precision=3)
+        name="Emit",
+        description="Amount of light to emit",
+        min=0.0, soft_min=0.0, # max=inf, soft_max=inf,
+        default=0.0, precision=3,
+        )
 
     mirror_color: FloatVectorProperty(
-            name="Mirror color",
-            description=("Mirror color of the material"),
-            precision=4, step=0.01, min=0, #max=inf, soft_max=1,
-            default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR')
-            
+        name="Mirror color",
+        description=("Mirror color of the material"),
+        precision=4, step=0.01, min=0, # max=inf, soft_max=1,
+        default=(0.6,0.6,0.6), options={'ANIMATABLE'}, subtype='COLOR'
+    )
+
     roughness: FloatProperty(
-            name="Roughness",
-            description="Oren-Nayar Roughness",
-            min=0.0, max=3.14, soft_min=0.0, soft_max=3.14, default=0.5, precision=3)
+        name="Roughness",
+        description="Oren-Nayar Roughness",
+        min=0.0, max=3.14, soft_min=0.0, soft_max=3.14,
+        precision=3,
+        default=0.5,
+    )
 
     halo: BoolProperty(
-            name="Halo", description=" Halo settings for the material",
-            default=False)
-            #(was readonly in Blender2.79, never None)
-            
+        name="Halo",
+        description=" Halo settings for the material",
+        default=False,
+    )
+            # (was readonly in Blender2.79, never None)
+
     line_color: FloatVectorProperty(
-            name="Line color",
-            description=("Line color used for Freestyle line rendering"),
-            precision=4, step=0.01, min=0, #max=inf, soft_max=1,
-            default=(0.0,0.0,0.0), options={'ANIMATABLE'}, subtype='COLOR')
-
-    #diffuse_ramp:
-    ##Color ramp used to affect diffuse shading
-            ##Type:	ColorRamp, (readonly)    
-    
-            #cr_node = bpy.data.materials['Material'].node_tree.nodes['ColorRamp']
-            #layout.template_color_ramp(cr_node, "color_ramp", expand=True)
-            
-            #ou
-            
-            #class bpy.types.ColorRamp(bpy_struct)            
+        name="Line color",
+        description=("Line color used for Freestyle line rendering"),
+        precision=4, step=0.01, min=0, # max=inf, soft_max=1,
+        default=(0.0,0.0,0.0), options={'ANIMATABLE'}, subtype='COLOR'
+    )
+
+    # diffuse_ramp:
+    ## Color ramp used to affect diffuse shading
+            ## Type:	ColorRamp, (readonly)
+
+            # cr_node = bpy.data.materials['Material'].node_tree.nodes['ColorRamp']
+            # layout.template_color_ramp(cr_node, "color_ramp", expand=True)
+
+            # ou
+
+            # class bpy.types.ColorRamp(bpy_struct)
 
     line_priority: IntProperty(
-            name="Recursion Limit",
-            description="The line color of a higher priority is used at material boundaries",
-            min=0, max=32767, default=0)
-            
+        name="Recursion Limit",
+        description="The line color of a higher priority is used at material boundaries",
+        min=0, max=32767, default=0,
+    )
+
     specular_color: FloatVectorProperty(
-            name="Specular color",
-            description=("Specular color of the material "),
-            precision=4, step=0.01, min=0, #max=inf, soft_max=1,
-            default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR')
+        name="Specular color",
+        description=("Specular color of the material "),
+        precision=4, step=0.01, min=0, # max=inf, soft_max=1,
+        default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR'
+    )
 
     specular_hardness: IntProperty(
-            name="Hardness",
-            description="How hard (sharp) the specular reflection is",
-            min=1, max=511, default=50)
-            
+        name="Hardness",
+        description="How hard (sharp) the specular reflection is",
+        min=1, max=511, default=50,
+    )
+
     specular_intensity: FloatProperty(
-            name="Intensity",
-            description="How intense (bright) the specular reflection is",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.5, precision=3)
+        name="Intensity",
+        description="How intense (bright) the specular reflection is",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.5, precision=3
+    )
 
     specular_ior: FloatProperty(
-            name="IOR",
-            description="Specular index of refraction",
-            min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3)
-            
+        name="IOR",
+        description="Specular index of refraction",
+        min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3
+    )
+
     ior: FloatProperty(
-            name="IOR",
-            description="Index of refraction",
-            min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3)   
+        name="IOR",
+        description="Index of refraction",
+        min=-10.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3
+    )
 
     specular_shader: EnumProperty(
-            name="Specular Shader Model",
-            description="How the ramp maps on the surface",   
-            items=(("COOKTORR", "CookTorr", "Use a Cook-Torrance shader"),
-                   ("PHONG", "Phong", "Use a Phong shader"),
-                   ("BLINN", "Blinn", "Use a Blinn shader"),
-                   ("TOON", "Toon", "Use a Toon shader"),
-                   ("WARDISO", "WardIso", "Use a Ward anisotropic shader")),
-            default="COOKTORR")           
+        name="Specular Shader Model",
+        description="How the ramp maps on the surface",
+        items=(("COOKTORR", "CookTorr", "Use a Cook-Torrance shader"),
+               ("PHONG", "Phong", "Use a Phong shader"),
+               ("BLINN", "Blinn", "Use a Blinn shader"),
+               ("TOON", "Toon", "Use a Toon shader"),
+               ("WARDISO", "WardIso", "Use a Ward anisotropic shader")),
+        default="COOKTORR",
+    )
 
     specular_slope: FloatProperty(
-            name="Slope",
-            description="The standard deviation of surface slope",
-            min=0.0, max=0.4, soft_min=0.0, soft_max=0.4, default=0.1, precision=3)
+        name="Slope",
+        description="The standard deviation of surface slope",
+        min=0.0, max=0.4, soft_min=0.0, soft_max=0.4, default=0.1, precision=3
+    )
 
     specular_toon_size: FloatProperty(
-            name="Size",
-            description="Size of specular toon area",
-            min=0.0, max=0.53, soft_min=0.0, soft_max=0.53, default=0.5, precision=3)
+        name="Size",
+        description="Size of specular toon area",
+        min=0.0, max=0.53, soft_min=0.0, soft_max=0.53, default=0.5, precision=3
+    )
 
     specular_toon_smooth: FloatProperty(
-            name="Smooth",
-            description="Smoothness of specular toon area",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3)
-            
-            
+        name="Smooth",
+        description="Smoothness of specular toon area",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.1, precision=3
+    )
+
+
     translucency: FloatProperty(
-            name="Translucency",
-            description="Amount of diffuse shading on the back side",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3)
-            
+        name="Translucency",
+        description="Amount of diffuse shading on the back side",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3
+    )
+
     transparency_method: EnumProperty(
-            name="Specular Shader Model",
-            description="Method to use for rendering transparency",   
-            items=(("MASK", "Mask", "Mask the background"),
-                   ("Z_TRANSPARENCY", "Z Transparency", "Use an ior of 1 for transparent faces"),
-                   ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")),
-            default="MASK")
-            
+        name="Specular Shader Model",
+        description="Method to use for rendering transparency",
+        items=(("MASK", "Mask", "Mask the background"),
+               ("Z_TRANSPARENCY", "Z Transparency", "Use an ior of 1 for transparent faces"),
+               ("RAYTRACE", "Raytrace", "Use raytracing for transparent refraction rendering")),
+        default="MASK",
+    )
+
     type: EnumProperty(
-            name="Type",
-            description="Material type defining how the object is rendered",   
-            items=(("SURFACE", "Surface", "Render object as a surface"),
-                   ("WIRE", "Wire", "Render the edges of faces as wires (not supported in raytracing)"),#TO UPDATE > USE MACRO AND CHANGE DESCRIPTION
-                   ("VOLUME", "Volume", "Render object as a volume"),
-                   ("‘HALO’", "Halo", "Render object as halo particles")), #TO UPDATE > USE MACRO AND CHANGE DESCRIPTION
-            default="SURFACE")
-            
+        name="Type",
+        description="Material type defining how the object is rendered",
+        items=(("SURFACE", "Surface", "Render object as a surface"),
+               ("WIRE", "Wire", "Render the edges of faces as wires (not supported in raytracing)"),# TO UPDATE > USE MACRO AND CHANGE DESCRIPTION
+               ("VOLUME", "Volume", "Render object as a volume"),
+               ("‘HALO’", "Halo", "Render object as halo particles")), # TO UPDATE > USE MACRO AND CHANGE DESCRIPTION
+        default="SURFACE",
+    )
+
     use_cast_shadows: BoolProperty(
-            name="Cast", description="Allow this material to cast shadows",
-            default=True)
-            
+        name="Cast",
+        description="Allow this material to cast shadows",
+        default=True,
+    )
+
     use_cast_shadows_only: BoolProperty(
-            name="Cast Only", description="Make objects with this material "
-                                          "appear invisible (not rendered), only "
-                                          "casting shadows",
-            default=False)
-            
+        name="Cast Only",
+        description="Make objects with this material "
+        "appear invisible (not rendered), only "
+        "casting shadows",
+        default=False,
+    )
+
     use_cubic: BoolProperty(
-            name="Cubic Interpolation", description="Use cubic interpolation for diffuse "
-                                                    "values, for smoother transitions",
-            default=False)
+        name="Cubic Interpolation",
+        description="Use cubic interpolation for diffuse "
+        "values, for smoother transitions",
+        default=False,
+    )
 
     use_diffuse_ramp: BoolProperty(
-            name="Ramp", description="Toggle diffuse ramp operations",
-            default=False)
-            
+        name="Ramp",
+        description="Toggle diffuse ramp operations",
+        default=False,
+    )
+
     use_light_group_exclusive: BoolProperty(
-            name="Exclusive", description="Material uses the light group exclusively"
-                                          "- these lamps are excluded from other "
-                                          "scene lighting",
-            default=False)
-            
+        name="Exclusive",
+        description="Material uses the light group exclusively"
+        "- these lamps are excluded from other "
+        "scene lighting",
+        default=False,
+    )
+
     use_light_group_local: BoolProperty(
-            name="Local", description="When linked in, material uses local light"
-                                      " group with the same name",
-            default=False)
-            
+        name="Local",
+        description="When linked in, material uses local light"
+        " group with the same name",
+        default=False,
+    )
+
     use_mist: BoolProperty(
-            name="Use Mist", description="Use mist with this material "
-                                      "(in world settings)",
-            default=True)
-            
+        name="Use Mist",
+        description="Use mist with this material "
+        "(in world settings)",
+        default=True,
+        )
+
     use_nodes: BoolProperty(
-            name="Nodes", description="Use shader nodes to render the material",#Add Icon in UI or here? icon='NODES'
-            default=False)
-            
+        name="Nodes",
+        description="Use shader nodes to render the material",# Add Icon in UI or here? icon='NODES'
+        default=False,
+    )
+
     use_object_color: BoolProperty(
-            name="Object Color", description="Modulate the result with a per-object color",
-            default=False)
-            
+        name="Object Color",
+        description="Modulate the result with a per-object color",
+        default=False,
+    )
+
     use_only_shadow: BoolProperty(
-            name="Shadows Only", description="Render shadows as the material’s alpha "
-                                             "value, making the material transparent "
-                                             "except for shadowed areas",
-            default=False)
-            
+        name="Shadows Only",
+        description="Render shadows as the material’s alpha "
+        "value, making the material transparent "
+        "except for shadowed areas",
+        default=False,
+    )
+
     use_shadeless: BoolProperty(
-            name="Shadeless", description="Make this material insensitive to "
-                                          "light or shadow",
-            default=False)
-            
+        name="Shadeless",
+        description="Make this material insensitive to "
+        "light or shadow",
+        default=False,
+    )
+
     use_shadows: BoolProperty(
-            name="Receive", description="Allow this material to receive shadows",
-            default=True)
+        name="Receive",
+        description="Allow this material to receive shadows",
+        default=True,
+    )
 
     use_sky: BoolProperty(
-            name="Sky", description="Render this material with zero alpha, "
-                                        "with sky background in place (scanline only)",
-            default=False)
-            
+        name="Sky",
+        description="Render this material with zero alpha, "
+        "with sky background in place (scanline only)",
+        default=False,
+    )
+
     use_specular_ramp: BoolProperty(
-            name="Ramp", description="Toggle specular ramp operations",
-            default=False)
-            
+        name="Ramp",
+        description="Toggle specular ramp operations",
+        default=False,
+    )
+
     use_tangent_shading: BoolProperty(
-            name="Tangent Shading", description="Use the material’s tangent vector instead"
-                                     "of the normal for shading - for "
-                                     "anisotropic shading effects",
-            default=False)
-            
+        name="Tangent Shading",
+        description="Use the material’s tangent vector instead"
+        "of the normal for shading - for "
+        "anisotropic shading effects",
+        default=False,
+    )
+
     use_transparent_shadows: BoolProperty(
-            name="Receive Transparent", description="Allow this object to receive transparent "
-                                                    "shadows cast through other object",
-            default=False) #linked to fake caustics
-            
+        name="Receive Transparent",
+        description="Allow this object to receive transparent "
+        "shadows cast through other object",
+        default=False,
+    ) # linked to fake caustics
+
     use_vertex_color_light: BoolProperty(
-            name="Vertex Color Light", description="Add vertex colors as additional lighting",
-            default=False)
-            
+        name="Vertex Color Light",
+        description="Add vertex colors as additional lighting",
+        default=False,
+    )
+
     use_vertex_color_paint: BoolProperty(
-            name="Vertex Color Paint", description="Replace object base color with vertex "
-                                                   "colors (multiply with ‘texture face’ "
-                                                   "face assigned textures)",
-            default=False)
+        name="Vertex Color Paint", description="Replace object base color with vertex "
+        "colors (multiply with ‘texture face’ "
+        "face assigned textures)",
+        default=False,
+    )
+
 
-    
     specular_ramp_blend: EnumProperty(
-            name="Specular ramp blend",
-            description="Blending method of the ramp and the specular color",   
-            items=(("MIX", "Mix", ""),
-                   ("ADD", "Add", ""),
-                   ("MULTIPLY", "Multiply", ""),
-                   ("SUBTRACT", "Subtract", ""),
-                   ("SCREEN", "Screen", ""),
-                   ("DIVIDE", "Divide", ""),
-                   ("DIFFERENCE", "Difference", ""),
-                   ("DARKEN", "Darken", ""),
-                   ("LIGHTEN", "Lighten", ""),
-                   ("OVERLAY", "Overlay", ""),
-                   ("DODGE", "Dodge", ""),
-                   ("BURN", "Burn", ""),
-                   ("HUE", "Hue", ""),
-                   ("SATURATION", "Saturation", ""),
-                   ("VALUE", "Value", ""),
-                   ("COLOR", "Color", ""),
-                   ("SOFT_LIGHT", "Soft light", ""),
-                   ("LINEAR_LIGHT", "Linear light", "")),
-            default="MIX")
+        name="Specular ramp blend",
+        description="Blending method of the ramp and the specular color",
+        items=(("MIX", "Mix", ""),
+               ("ADD", "Add", ""),
+               ("MULTIPLY", "Multiply", ""),
+               ("SUBTRACT", "Subtract", ""),
+               ("SCREEN", "Screen", ""),
+               ("DIVIDE", "Divide", ""),
+               ("DIFFERENCE", "Difference", ""),
+               ("DARKEN", "Darken", ""),
+               ("LIGHTEN", "Lighten", ""),
+               ("OVERLAY", "Overlay", ""),
+               ("DODGE", "Dodge", ""),
+               ("BURN", "Burn", ""),
+               ("HUE", "Hue", ""),
+               ("SATURATION", "Saturation", ""),
+               ("VALUE", "Value", ""),
+               ("COLOR", "Color", ""),
+               ("SOFT_LIGHT", "Soft light", ""),
+               ("LINEAR_LIGHT", "Linear light", "")),
+        default="MIX",
+    )
 
     specular_ramp_factor: FloatProperty(
-            name="Factor",
-            description="Blending factor (also uses alpha in Colorband)",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
-            
+        name="Factor",
+        description="Blending factor (also uses alpha in Colorband)",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3,
+    )
+
     specular_ramp_input: EnumProperty(
-            name="Input",
-            description="How the ramp maps on the surface",   
-            items=(("SHADER", "Shader", ""),
-                   ("ENERGY", "Energy", ""),
-                   ("NORMAL", "Normal", ""),
-                   ("RESULT", "Result", "")),
-            default="SHADER")            
+        name="Input",
+        description="How the ramp maps on the surface",
+        items=(("SHADER", "Shader", ""),
+               ("ENERGY", "Energy", ""),
+               ("NORMAL", "Normal", ""),
+               ("RESULT", "Result", "")),
+        default="SHADER",
+    )
 
 
     irid_enable: BoolProperty(
-            name="Iridescence coating",
-            description="Newton's thin film interference (like an oil slick on a puddle of "
-                        "water or the rainbow hues of a soap bubble.)",
-            default=False)
+        name="Iridescence coating",
+        description="Newton's thin film interference (like an oil slick on a puddle of "
+        "water or the rainbow hues of a soap bubble.)",
+        default=False,
+    )
 
     mirror_use_IOR: BoolProperty(
-            name="Correct Reflection",
-            description="Use same IOR as raytrace transparency to calculate mirror reflections. "
-                        "More physically correct",
-            default=False)
+        name="Correct Reflection",
+        description="Use same IOR as raytrace transparency to calculate mirror reflections. "
+        "More physically correct",
+        default=False,
+    )
 
     mirror_metallic: BoolProperty(
-            name="Metallic Reflection",
-            description="mirror reflections get colored as diffuse (for metallic materials)",
-            default=False)
+        name="Metallic Reflection",
+        description="mirror reflections get colored as diffuse (for metallic materials)",
+        default=False,
+    )
 
     conserve_energy: BoolProperty(
-            name="Conserve Energy",
-            description="Light transmitted is more correctly reduced by mirror reflections, "
-                        "also the sum of diffuse and translucency gets reduced below one ",
-            default=True)
+        name="Conserve Energy",
+        description="Light transmitted is more correctly reduced by mirror reflections, "
+        "also the sum of diffuse and translucency gets reduced below one ",
+        default=True,
+    )
 
     irid_amount: FloatProperty(
-            name="amount",
-            description="Contribution of the iridescence effect to the overall surface color. "
-                        "As a rule of thumb keep to around 0.25 (25% contribution) or less, "
-                        "but experiment. If the surface is coming out too white, try lowering "
-                        "the diffuse and possibly the ambient values of the surface",
-            min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=0.25)
+        name="amount",
+        description="Contribution of the iridescence effect to the overall surface color. "
+        "As a rule of thumb keep to around 0.25 (25% contribution) or less, "
+        "but experiment. If the surface is coming out too white, try lowering "
+        "the diffuse and possibly the ambient values of the surface",
+        min=0.0, max=1.0, soft_min=0.01, soft_max=1.0, default=0.25,
+    )
 
     irid_thickness: FloatProperty(
-            name="thickness",
-            description="A very thin film will have a high frequency of color changes while a "
-                        "thick film will have large areas of color",
-            min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1)
+        name="thickness",
+        description="A very thin film will have a high frequency of color changes while a "
+        "thick film will have large areas of color",
+        min=0.0, max=1000.0, soft_min=0.1, soft_max=10.0, default=1,
+    )
 
     irid_turbulence: FloatProperty(
-            name="turbulence", description="This parameter varies the thickness",
-            min=0.0, max=10.0, soft_min=0.000, soft_max=1.0, default=0)
+        name="turbulence",
+        description="This parameter varies the thickness",
+        min=0.0, max=10.0, soft_min=0.000, soft_max=1.0, default=0
+    )
 
     interior_fade_color: FloatVectorProperty(
-            name="Interior Fade Color", description="Color of filtered attenuation for transparent "
-                                           "materials",
-            precision=4, step=0.01, min=0.0, soft_max=1.0,
-            default=(0, 0, 0), options={'ANIMATABLE'}, subtype='COLOR')
+        name="Interior Fade Color",
+        description="Color of filtered attenuation for transparent "
+        "materials",
+        precision=4, step=0.01, min=0.0, soft_max=1.0,
+        default=(0, 0, 0), options={'ANIMATABLE'}, subtype='COLOR'
+    )
 
     caustics_enable: BoolProperty(
-            name="Caustics",
-            description="use only fake refractive caustics (default) or photon based "
-                        "reflective/refractive caustics",
-            default=True)
+        name="Caustics",
+        description="use only fake refractive caustics (default) or photon based "
+                    "reflective/refractive caustics",
+        default=True,
+    )
 
     fake_caustics: BoolProperty(
-            name="Fake Caustics", description="use only (Fast) fake refractive caustics",
-            default=True)
+        name="Fake Caustics",
+        description="use only (Fast) fake refractive caustics",
+        default=True,
+    )
 
     fake_caustics_power: FloatProperty(
-            name="Fake caustics power",
-            description="Values typically range from 0.0 to 1.0 or higher. Zero is no caustics. "
-                        "Low, non-zero values give broad hot-spots while higher values give "
-                        "tighter, smaller simulated focal points",
-            min=0.00, max=10.0, soft_min=0.00, soft_max=5.0, default=0.15)
+        name="Fake caustics power",
+        description="Values typically range from 0.0 to 1.0 or higher. Zero is no caustics. "
+        "Low, non-zero values give broad hot-spots while higher values give "
+        "tighter, smaller simulated focal points",
+        min=0.00, max=10.0, soft_min=0.00, soft_max=5.0, default=0.15
+    )
 
     refraction_caustics: BoolProperty(
-            name="Refractive Caustics", description="hotspots of light focused when going through the material",
-            default=True)
+        name="Refractive Caustics",
+        description="hotspots of light focused when going through the material",
+        default=True,
+    )
 
     photons_dispersion: FloatProperty(
-            name="Chromatic Dispersion",
-            description="Light passing through will be separated according to wavelength. "
-                        "This ratio of refractive indices for violet to red controls how much "
-                        "the colors are spread out 1 = no dispersion, good values are 1.01 to 1.1",
-            min=1.0000, max=10.000, soft_min=1.0000, soft_max=1.1000, precision=4, default=1.0000)
+        name="Chromatic Dispersion",
+        description="Light passing through will be separated according to wavelength. "
+        "This ratio of refractive indices for violet to red controls how much "
+        "the colors are spread out 1 = no dispersion, good values are 1.01 to 1.1",
+        min=1.0000, max=10.000, soft_min=1.0000, soft_max=1.1000, precision=4,
+        default=1.0000,
+    )
 
     photons_dispersion_samples: IntProperty(
-            name="Dispersion Samples", description="Number of color-steps for dispersion",
-            min=2, max=128, default=7)
+        name="Dispersion Samples",
+        description="Number of color-steps for dispersion",
+        min=2, max=128, default=7,
+    )
 
     photons_reflection: BoolProperty(
-            name="Reflective Photon Caustics",
-            description="Use this to make your Sauron's ring ;-P",
-            default=False)
+        name="Reflective Photon Caustics",
+        description="Use this to make your Sauron's ring ;-P",
+        default=False,
+    )
 
     refraction_type: EnumProperty(
-            items=[
-                   ("1", "Z Transparency Fake Caustics", "use fake caustics"),
-                   ("2", "Raytrace Photons Caustics", "use photons for refractive caustics")],
-            name="Refraction Type:",
-            description="use fake caustics (fast) or true photons for refractive Caustics",
-            default="1")
+        items=[
+               ("1", "Z Transparency Fake Caustics", "use fake caustics"),
+               ("2", "Raytrace Photons Caustics", "use photons for refractive caustics")],
+        name="Refraction Type:",
+        description="use fake caustics (fast) or true photons for refractive Caustics",
+        default="1",
+    )
 
     ##################################CustomPOV Code############################
     replacement_text: StringProperty(
-            name="Declared name:",
-            description="Type the declared name in custom POV code or an external "
-                        ".inc it points at. texture {} expected",
-            default="")
-
+        name="Declared name:",
+        description="Type the declared name in custom POV code or an external "
+        ".inc it points at. texture {} expected",
+        default="",
+    )
 
 
             # NODES
@@ -1626,268 +1981,354 @@ class RenderPovSettingsMaterial(PropertyGroup):
         else:
             ob.pov.mesh_write_as = ob.pov.mesh_write_as_old
 
-    material_use_nodes: BoolProperty(name="Use nodes", description="", update=use_material_nodes_callback, default=False)
-    material_active_node: EnumProperty(name="Active node", description="", items=node_enum_callback, update=node_active_callback)
-    preview_settings: BoolProperty(name="Preview Settings", description="",default=False)
-    object_preview_transform: BoolProperty(name="Transform object", description="",default=False)
-    object_preview_scale: FloatProperty(name="XYZ", min=0.5, max=2.0, default=1.0)
-    object_preview_rotate: FloatVectorProperty(name="Rotate", description="", min=-180.0, max=180.0,default=(0.0,0.0,0.0), subtype='XYZ')
-    object_preview_bgcontrast: FloatProperty(name="Contrast", min=0.0, max=1.0, default=0.5)
+    material_use_nodes: BoolProperty(
+        name="Use nodes",
+        description="",
+        update=use_material_nodes_callback,
+        default=False,
+    )
+
+    material_active_node: EnumProperty(
+        name="Active node",
+        description="",
+        items=node_enum_callback,
+        update=node_active_callback
+    )
+
+    preview_settings: BoolProperty(
+        name="Preview Settings",
+        description="",
+        default=False,
+    )
+
+    object_preview_transform: BoolProperty(
+        name="Transform object",
+        description="",
+        default=False,
+    )
+
+    object_preview_scale: FloatProperty(
+        name="XYZ",
+        min=0.5,
+        max=2.0,
+        default=1.0,
+    )
+
+    object_preview_rotate: FloatVectorProperty(
+        name="Rotate",
+        description="",
+        min=-180.0,
+        max=180.0,
+        default=(0.0,0.0,0.0),
+        subtype='XYZ',
+    )
+
+    object_preview_bgcontrast: FloatProperty(
+        name="Contrast",
+        min=0.0,
+        max=1.0,
+        default=0.5,
+    )
+
 
 class MaterialRaytraceTransparency(PropertyGroup):
     """Declare transparency panel properties controllable in UI and translated to POV."""
-           
+
     depth: IntProperty(
-            name="Depth",
-            description="Maximum allowed number of light inter-refractions",
-            min=0, max=32767, default=2)
-            
+        name="Depth",
+        description="Maximum allowed number of light inter-refractions",
+        min=0, max=32767, default=2
+    )
+
     depth_max: FloatProperty(
-            name="Depth",
-            description="Maximum depth for light to travel through the "
-                        "transparent material before becoming fully filtered (0.0 is disabled)",
-            min=0, max=100, default=0.0)
-            
+        name="Depth",
+        description="Maximum depth for light to travel through the "
+        "transparent material before becoming fully filtered (0.0 is disabled)",
+        min=0, max=100, default=0.0,
+    )
+
     falloff: FloatProperty(
-            name="Falloff",
-            description="Falloff power for transmissivity filter effect (1.0 is linear)",
-            min=0.1, max=10.0, default=1.0, precision=3)
+        name="Falloff",
+        description="Falloff power for transmissivity filter effect (1.0 is linear)",
+        min=0.1, max=10.0, default=1.0, precision=3
+    )
+
     filter: FloatProperty(
-            name="Filter",
-            description="Amount to blend in the material’s diffuse color in raytraced "
-                        "transparency (simulating absorption)",
-            min=0.0, max=1.0, default=0.0, precision=3)
+        name="Filter",
+        description="Amount to blend in the material’s diffuse color in raytraced "
+        "transparency (simulating absorption)",
+        min=0.0, max=1.0, default=0.0, precision=3
+    )
 
     fresnel: FloatProperty(
-            name="Fresnel",
-            description="Power of Fresnel for transparency (Ray or ZTransp)",
-            min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3)
+        name="Fresnel",
+        description="Power of Fresnel for transparency (Ray or ZTransp)",
+        min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3
+    )
 
     fresnel_factor: FloatProperty(
-            name="Blend",
-            description="Blending factor for Fresnel",
-            min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3)
-            
+        name="Blend",
+        description="Blending factor for Fresnel",
+        min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3
+    )
+
     gloss_factor: FloatProperty(
-            name="Amount",
-            description="The clarity of the refraction. "
-                        "(values < 1.0 give diffuse, blurry refractions)",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
+        name="Amount",
+        description="The clarity of the refraction. "
+        "(values < 1.0 give diffuse, blurry refractions)",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3
+    )
 
     gloss_samples: IntProperty(
-            name="Samples",
-            description="Number of cone samples averaged for blurry refractions",
-            min=0, max=1024, default=18)
+        name="Samples",
+        description="Number of cone samples averaged for blurry refractions",
+        min=0, max=1024, default=18
+    )
 
     gloss_threshold: FloatProperty(
-            name="Threshold",
-            description="Threshold for adaptive sampling (if a sample "
-                        "contributes less than this amount [as a percentage], "
-                        "sampling is stopped)",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3)
+        name="Threshold",
+        description="Threshold for adaptive sampling (if a sample "
+        "contributes less than this amount [as a percentage], "
+        "sampling is stopped)",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3
+    )
 
     ior: FloatProperty(
-            name="IOR", description="Sets angular index of refraction for raytraced refraction",
-            min=-0.0, max=10.0, soft_min=0.25, soft_max=4.0, default=1.3)
-            
+        name="IOR",
+        description="Sets angular index of refraction for raytraced refraction",
+        min=-0.0, max=10.0, soft_min=0.25, soft_max=4.0, default=1.3
+    )
+
 class MaterialRaytraceMirror(PropertyGroup):
     """Declare reflection panel properties controllable in UI and translated to POV."""
 
-    bl_description = "Raytraced reflection settings for the Material",  
+    bl_description = "Raytraced reflection settings for the Material",
+
     use: BoolProperty(
-            name="Mirror", 
-            description="Enable raytraced reflections",
-            default=False)
-            
+        name="Mirror",
+        description="Enable raytraced reflections",
+        default=False,
+    )
+
 
     depth: IntProperty(
-            name="Depth",
-            description="Maximum allowed number of light inter-reflections",
-            min=0, max=32767, default=2)
+        name="Depth",
+        description="Maximum allowed number of light inter-reflections",
+        min=0, max=32767, default=2
+    )
 
     distance: FloatProperty(
-            name="Max Dist",
-            description="Maximum distance of reflected rays "
-                        "(reflections further than this range "
-                        "fade to sky color or material color)",
-            min=0.0, max=100000.0, soft_min=0.0, soft_max=10000.0, default=0.0, precision=3)
+        name="Max Dist",
+        description="Maximum distance of reflected rays "
+        "(reflections further than this range "
+        "fade to sky color or material color)",
+        min=0.0, max=100000.0, soft_min=0.0, soft_max=10000.0, default=0.0, precision=3
+    )
 
     fade_to: EnumProperty(
-            items=[
-                   ("FADE_TO_SKY", "Fade to sky", ""),
-                   ("FADE_TO_MATERIAL", "Fade to material color", "")],
-            name="Fade-out Color",
-            description="The color that rays with no intersection within the "
-                        "Max Distance take (material color can be best for "
-                        "indoor scenes, sky color for outdoor)",
-            default="FADE_TO_SKY")
+        items=[
+               ("FADE_TO_SKY", "Fade to sky", ""),
+               ("FADE_TO_MATERIAL", "Fade to material color", "")],
+        name="Fade-out Color",
+        description="The color that rays with no intersection within the "
+        "Max Distance take (material color can be best for "
+        "indoor scenes, sky color for outdoor)",
+        default="FADE_TO_SKY",
+    )
 
     fresnel: FloatProperty(
-            name="Fresnel",
-            description="Power of Fresnel for mirror reflection",
-            min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3)
+        name="Fresnel",
+        description="Power of Fresnel for mirror reflection",
+        min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=0.0, precision=3,
+    )
 
     fresnel_factor: FloatProperty(
-            name="Blend",
-            description="Blending factor for Fresnel",
-            min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3)
+        name="Blend",
+        description="Blending factor for Fresnel",
+        min=0.0, max=5.0, soft_min=0.0, soft_max=5.0, default=1.250, precision=3
+    )
 
     gloss_anisotropic: FloatProperty(
-            name="Anisotropic",
-            description="The shape of the reflection, from 0.0 (circular) "
-                        "to 1.0 (fully stretched along the tangent",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
+        name="Anisotropic",
+        description="The shape of the reflection, from 0.0 (circular) "
+        "to 1.0 (fully stretched along the tangent",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3
+    )
 
     gloss_factor: FloatProperty(
-            name="Amount",
-            description="The shininess of the reflection  "
-                        "(values < 1.0 give diffuse, blurry reflections)",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
+        name="Amount",
+        description="The shininess of the reflection  "
+        "(values < 1.0 give diffuse, blurry reflections)",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3
+    )
 
     gloss_samples: IntProperty(
-            name="Samples",
-            description="Number of cone samples averaged for blurry reflections",
-            min=0, max=1024, default=18)
+        name="Samples",
+        description="Number of cone samples averaged for blurry reflections",
+        min=0, max=1024, default=18,
+    )
 
     gloss_threshold: FloatProperty(
-            name="Threshold",
-            description="Threshold for adaptive sampling (if a sample "
-                        "contributes less than this amount [as a percentage], "
-                        "sampling is stopped)",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3)
+        name="Threshold",
+        description="Threshold for adaptive sampling (if a sample "
+        "contributes less than this amount [as a percentage], "
+        "sampling is stopped)",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.005, precision=3
+    )
 
     mirror_color: FloatVectorProperty(
-            name="Mirror color",
-            description=("Mirror color of the material"),
-            precision=4, step=0.01,
-            default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR')
-            
+        name="Mirror color",
+        description=("Mirror color of the material"),
+        precision=4, step=0.01,
+        default=(1.0,1.0,1.0), options={'ANIMATABLE'}, subtype='COLOR'
+    )
+
     reflect_factor: FloatProperty(
-            name="Reflectivity",
-            description="Amount of mirror reflection for raytrace",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
-            
+        name="Reflectivity",
+        description="Amount of mirror reflection for raytrace",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3
+    )
+
+
 class MaterialSubsurfaceScattering(PropertyGroup):
     r"""Declare SSS/SSTL properties controllable in UI and translated to POV."""
 
-    bl_description = "Subsurface scattering settings for the material",          
+    bl_description = "Subsurface scattering settings for the material",
 
     use: BoolProperty(
-            name="Subsurface Scattering", 
-            description="Enable diffuse subsurface scatting "
-                        "effects in a material",
-            default=False)
+        name="Subsurface Scattering",
+        description="Enable diffuse subsurface scatting "
+        "effects in a material",
+        default=False,
+    )
 
-            
-            
     back: FloatProperty(
-            name="Back",
-            description="Back scattering weight",
-            min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3)
-
+        name="Back",
+        description="Back scattering weight",
+        min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=1.0, precision=3
+    )
 
     color: FloatVectorProperty(
-            name="Scattering color",
-            description=("Scattering color"),
-            precision=4, step=0.01,
-            default=(0.604,0.604,0.604), options={'ANIMATABLE'}, subtype='COLOR')
+        name="Scattering color",
+        description=("Scattering color"),
+        precision=4, step=0.01,
+        default=(0.604,0.604,0.604), options={'ANIMATABLE'}, subtype='COLOR'
+    )
 
     color_factor: FloatProperty(
-            name="Color",
-            description="Blend factor for SSS colors",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3)
+        name="Color",
+        description="Blend factor for SSS colors",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=1.0, precision=3
+    )
 
     error_threshold: FloatProperty(
-            name="Error",
-            description="Error tolerance (low values are slower and higher quality)",
-            default=0.050, precision=3)
+        name="Error",
+        description="Error tolerance (low values are slower and higher quality)",
+        default=0.050, precision=3
+    )
 
     front: FloatProperty(
-            name="Front",
-            description="Front scattering weight",
-            min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3)
+        name="Front",
+        description="Front scattering weight",
+        min=0.0, max=2.0, soft_min=0.0, soft_max=2.0, default=1.0, precision=3
+    )
 
     ior: FloatProperty(
-            name="IOR", description="Index of refraction (higher values are denser)",
-            min=-0.0, max=10.0, soft_min=0.1, soft_max=2.0, default=1.3)
+        name="IOR",
+        description="Index of refraction (higher values are denser)",
+        min=-0.0, max=10.0, soft_min=0.1, soft_max=2.0, default=1.3
+    )
 
     radius: FloatVectorProperty(
-            name="RGB Radius",
-            description=("Mean red/green/blue scattering path length"),
-            precision=4, step=0.01, min=0.001,
-            default=(1.0,1.0,1.0), options={'ANIMATABLE'})
+        name="RGB Radius",
+        description=("Mean red/green/blue scattering path length"),
+        precision=4, step=0.01, min=0.001,
+        default=(1.0,1.0,1.0), options={'ANIMATABLE'}
+    )
 
     scale: FloatProperty(
-            name="Scale",
-            description="Object scale factor",
-            default=0.100, precision=3)
+        name="Scale",
+        description="Object scale factor",
+        default=0.100, precision=3
+    )
 
     texture_factor: FloatProperty(
-            name="Texture",
-            description="Texture scattering blend factor",
-            min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3)
+        name="Texture",
+        description="Texture scattering blend factor",
+        min=0.0, max=1.0, soft_min=0.0, soft_max=1.0, default=0.0, precision=3
+    )
+
 
 class MaterialStrandSettings(PropertyGroup):
     """Declare strand properties controllable in UI and translated to POV."""
 
-    bl_description = "Strand settings for the material",          
+    bl_description = "Strand settings for the material",
 
     blend_distance: FloatProperty(
-            name="Distance",
-            description="Worldspace distance over which to blend in the surface normal",
-            min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=0.0, precision=3)
+        name="Distance",
+        description="Worldspace distance over which to blend in the surface normal",
+        min=0.0, max=10.0, soft_min=0.0, soft_max=10.0, default=0.0, precision=3
+    )
 
     root_size: FloatProperty(
-            name="Root",
-            description="Start size of strands in pixels or Blender units",
-            min=0.25, default=1.0, precision=5)
+        name="Root",
+        description="Start size of strands in pixels or Blender units",
+        min=0.25, default=1.0, precision=5
+    )
 
     shape: FloatProperty(
-            name="Shape",
-            description="Positive values make strands rounder, negative ones make strands spiky",
-            min=-0.9, max=0.9, default=0.0, precision=3)
+        name="Shape",
+        description="Positive values make strands rounder, negative ones make strands spiky",
+        min=-0.9, max=0.9, default=0.0, precision=3
+    )
 
     size_min: FloatProperty(
-            name="Minimum",
-            description="Minimum size of strands in pixels",
-            min=0.001, max=10.0, default=1.0, precision=3)
+        name="Minimum",
+        description="Minimum size of strands in pixels",
+        min=0.001, max=10.0, default=1.0, precision=3
+    )
 
     tip_size: FloatProperty(
-            name="Tip",
-            description="End size of strands in pixels or Blender units",
-            min=0.0, default=1.0, precision=5)
+        name="Tip",
+        description="End size of strands in pixels or Blender units",
+        min=0.0, default=1.0, precision=5
+    )
 
     use_blender_units: BoolProperty(
-            name="Blender Units", 
-            description="Use Blender units for widths instead of pixels",
-            default=False)
+        name="Blender Units",
+        description="Use Blender units for widths instead of pixels",
+        default=False,
+    )
 
     use_surface_diffuse: BoolProperty(
-            name="Surface diffuse", 
-            description="Make diffuse shading more similar to shading the surface",
-            default=False)
+        name="Surface diffuse",
+        description="Make diffuse shading more similar to shading the surface",
+        default=False,
+    )
 
     use_tangent_shading: BoolProperty(
-            name="Tangent Shading", 
-            description="Use direction of strands as normal for tangent-shading",
-            default=True)
+        name="Tangent Shading",
+        description="Use direction of strands as normal for tangent-shading",
+        default=True,
+    )
 
     uv_layer: StringProperty(
-            name="UV Layer",
-            #icon="GROUP_UVS",
-            description="Name of UV map to override",
-            default="")
+        name="UV Layer",
+        # icon="GROUP_UVS",
+        description="Name of UV map to override",
+        default="",
+    )
 
     width_fade: FloatProperty(
-            name="Width Fade",
-            description="Transparency along the width of the strand",
-            min=0.0, max=2.0, default=0.0, precision=3)
+        name="Width Fade",
+        description="Transparency along the width of the strand",
+        min=0.0, max=2.0, default=0.0, precision=3
+    )
 
-            
             # halo
 
                 # Halo settings for the material
-                # Type:	MaterialHalo, (readonly, never None)            
+                # Type:	MaterialHalo, (readonly, never None)
 
             # ambient
 
@@ -2342,8 +2783,8 @@ class MaterialStrandSettings(PropertyGroup):
 
                 # Volume settings for the material
                 # Type:	MaterialVolume, (readonly, never None)
-    '''    
-    (mat.type in {'SURFACE', 'WIRE', 'VOLUME'}) 
+    '''
+    (mat.type in {'SURFACE', 'WIRE', 'VOLUME'})
      "use_transparency")
 
 
@@ -2372,7 +2813,7 @@ class MaterialStrandSettings(PropertyGroup):
             col.prop(mat, "diffuse_color", text="")
 
             sub.active = (not mat.use_shadeless)
-            
+
             sub.prop(mat, "diffuse_intensity", text="Intensity")
 
 
@@ -2394,9 +2835,9 @@ class MaterialStrandSettings(PropertyGroup):
                 row.prop(mat, "diffuse_fresnel_factor", text="Factor")
 
             if mat.use_diffuse_ramp:
-       
+
                 col.template_color_ramp(mat, "diffuse_ramp", expand=True)
-        
+
 
 
                 row.prop(mat, "diffuse_ramp_input", text="Input")
@@ -2739,6 +3180,7 @@ class MaterialStrandSettings(PropertyGroup):
 ###############################################################################
 # Povray Nodes
 ###############################################################################
+
 class PovraySocketUniversal(bpy.types.NodeSocket):
     bl_idname = 'PovraySocketUniversal'
     bl_label = 'Povray Socket'
@@ -3181,522 +3623,598 @@ node_categories = [
 ###############################################################################
 # Texture POV properties.
 ###############################################################################
+
 class RenderPovSettingsTexture(PropertyGroup):
     """Declare texture level properties controllable in UI and translated to POV."""
-    
-    #former Space properties from  removed Blender Internal
+
+    # former Space properties from  removed Blender Internal
     active_texture_index: IntProperty(
-            name = "Index for texture_slots",
-            default = 0)    
+        name = "Index for texture_slots",
+        default = 0,
+    )
+
     use_limited_texture_context: BoolProperty(
-            name="",
-            description="Use the limited version of texture user (for ‘old shading’ mode)",
-            default=True)
+        name="",
+        description="Use the limited version of texture user (for ‘old shading’ mode)",
+        default=True,
+    )
+
     texture_context: EnumProperty(
-            name="Texture context",
-            description="Type of texture data to display and edit",
-            items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures"
-                   ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures"
-                   ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures"
-                   ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures"
-                   ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures"
-                   ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures"
-            default = 'MATERIAL')
- 
-    #Custom texture gamma
+        name="Texture context",
+        description="Type of texture data to display and edit",
+        items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures"
+               ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures"
+               ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures"
+               ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures"
+               ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures"
+               ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures"
+        default = 'MATERIAL',
+    )
+
+    # Custom texture gamma
     tex_gamma_enable: BoolProperty(
-            name="Enable custom texture gamma",
-            description="Notify some custom gamma for which texture has been precorrected "
-                        "without the file format carrying it and only if it differs from your "
-                        "OS expected standard (see pov doc)",
-            default=False)
+        name="Enable custom texture gamma",
+        description="Notify some custom gamma for which texture has been precorrected "
+        "without the file format carrying it and only if it differs from your "
+        "OS expected standard (see pov doc)",
+        default=False,
+    )
 
     tex_gamma_value: FloatProperty(
-            name="Custom texture gamma",
-            description="value for which the file was issued e.g. a Raw photo is gamma 1.0",
-            min=0.45, max=5.00, soft_min=1.00, soft_max=2.50, default=1.00)
+        name="Custom texture gamma",
+        description="value for which the file was issued e.g. a Raw photo is gamma 1.0",
+        min=0.45, max=5.00, soft_min=1.00, soft_max=2.50, default=1.00
+    )
 
     ##################################CustomPOV Code############################
-    #commented out below if we wanted custom pov code in texture only, inside exported material:
-    #replacement_text = StringProperty(
+    # commented out below if we wanted custom pov code in texture only, inside exported material:
+    # replacement_text = StringProperty(
     #        name="Declared name:",
     #        description="Type the declared name in custom POV code or an external .inc "
     #                    "it points at. pigment {} expected",
     #        default="")
 
-
-
     tex_pattern_type: EnumProperty(
-            name="Texture_Type",
-            description="Choose between Blender or POV parameters to specify texture",
-            items= (('agate', 'Agate', '','PLUGIN', 0),
-                   ('aoi', 'Aoi', '', 'PLUGIN', 1),
-                   ('average', 'Average', '', 'PLUGIN', 2),
-                   ('boxed', 'Boxed', '', 'PLUGIN', 3),
-                   ('bozo', 'Bozo', '', 'PLUGIN', 4),
-                   ('bumps', 'Bumps', '', 'PLUGIN', 5),
-                   ('cells', 'Cells', '', 'PLUGIN', 6),
-                   ('crackle', 'Crackle', '', 'PLUGIN', 7),
-                   ('cubic', 'Cubic', '', 'PLUGIN', 8),
-                   ('cylindrical', 'Cylindrical', '', 'PLUGIN', 9),
-                   ('density_file', 'Density', '(.df3)', 'PLUGIN', 10),
-                   ('dents', 'Dents', '', 'PLUGIN', 11),
-                   ('fractal', 'Fractal', '', 'PLUGIN', 12),
-                   ('function', 'Function', '', 'PLUGIN', 13),
-                   ('gradient', 'Gradient', '', 'PLUGIN', 14),
-                   ('granite', 'Granite', '', 'PLUGIN', 15),
-                   ('image_pattern', 'Image pattern', '', 'PLUGIN', 16),
-                   ('leopard', 'Leopard', '', 'PLUGIN', 17),
-                   ('marble', 'Marble', '', 'PLUGIN', 18),
-                   ('onion', 'Onion', '', 'PLUGIN', 19),
-                   ('pigment_pattern', 'pigment pattern', '', 'PLUGIN', 20),
-                   ('planar', 'Planar', '', 'PLUGIN', 21),
-                   ('quilted', 'Quilted', '', 'PLUGIN', 22),
-                   ('radial', 'Radial', '', 'PLUGIN', 23),
-                   ('ripples', 'Ripples', '', 'PLUGIN', 24),
-                   ('slope', 'Slope', '', 'PLUGIN', 25),
-                   ('spherical', 'Spherical', '', 'PLUGIN', 26),
-                   ('spiral1', 'Spiral1', '', 'PLUGIN', 27),
-                   ('spiral2', 'Spiral2', '', 'PLUGIN', 28),
-                   ('spotted', 'Spotted', '', 'PLUGIN', 29),
-                   ('waves', 'Waves', '', 'PLUGIN', 30),
-                   ('wood', 'Wood', '', 'PLUGIN', 31),
-                   ('wrinkles', 'Wrinkles', '', 'PLUGIN', 32),
-                   ('brick', "Brick", "", 'PLUGIN', 33),
-                   ('checker', "Checker", "", 'PLUGIN', 34),
-                   ('hexagon', "Hexagon", "", 'PLUGIN', 35),
-                   ('object', "Mesh", "", 'PLUGIN', 36),
-                   ('emulator', "Internal Emulator", "", 'PLUG', 37)),
-            default='emulator',
-            )
+        name="Texture_Type",
+        description="Choose between Blender or POV parameters to specify texture",
+        items= (('agate', 'Agate', '','PLUGIN', 0),
+               ('aoi', 'Aoi', '', 'PLUGIN', 1),
+               ('average', 'Average', '', 'PLUGIN', 2),
+               ('boxed', 'Boxed', '', 'PLUGIN', 3),
+               ('bozo', 'Bozo', '', 'PLUGIN', 4),
+               ('bumps', 'Bumps', '', 'PLUGIN', 5),
+               ('cells', 'Cells', '', 'PLUGIN', 6),
+               ('crackle', 'Crackle', '', 'PLUGIN', 7),
+               ('cubic', 'Cubic', '', 'PLUGIN', 8),
+               ('cylindrical', 'Cylindrical', '', 'PLUGIN', 9),
+               ('density_file', 'Density', '(.df3)', 'PLUGIN', 10),
+               ('dents', 'Dents', '', 'PLUGIN', 11),
+               ('fractal', 'Fractal', '', 'PLUGIN', 12),
+               ('function', 'Function', '', 'PLUGIN', 13),
+               ('gradient', 'Gradient', '', 'PLUGIN', 14),
+               ('granite', 'Granite', '', 'PLUGIN', 15),
+               ('image_pattern', 'Image pattern', '', 'PLUGIN', 16),
+               ('leopard', 'Leopard', '', 'PLUGIN', 17),
+               ('marble', 'Marble', '', 'PLUGIN', 18),
+               ('onion', 'Onion', '', 'PLUGIN', 19),
+               ('pigment_pattern', 'pigment pattern', '', 'PLUGIN', 20),
+               ('planar', 'Planar', '', 'PLUGIN', 21),
+               ('quilted', 'Quilted', '', 'PLUGIN', 22),
+               ('radial', 'Radial', '', 'PLUGIN', 23),
+               ('ripples', 'Ripples', '', 'PLUGIN', 24),
+               ('slope', 'Slope', '', 'PLUGIN', 25),
+               ('spherical', 'Spherical', '', 'PLUGIN', 26),
+               ('spiral1', 'Spiral1', '', 'PLUGIN', 27),
+               ('spiral2', 'Spiral2', '', 'PLUGIN', 28),
+               ('spotted', 'Spotted', '', 'PLUGIN', 29),
+               ('waves', 'Waves', '', 'PLUGIN', 30),
+               ('wood', 'Wood', '', 'PLUGIN', 31),
+               ('wrinkles', 'Wrinkles', '', 'PLUGIN', 32),
+               ('brick', "Brick", "", 'PLUGIN', 33),
+               ('checker', "Checker", "", 'PLUGIN', 34),
+               ('hexagon', "Hexagon", "", 'PLUGIN', 35),
+               ('object', "Mesh", "", 'PLUGIN', 36),
+               ('emulator', "Internal Emulator", "", 'PLUG', 37)),
+        default='emulator',
+    )
 
     magnet_style: EnumProperty(
-            name="Magnet style",
-            description="magnet or julia",
-            items=(('mandel', "Mandelbrot", ""),('julia', "Julia", "")),
-            default='julia')
+        name="Magnet style",
+        description="magnet or julia",
+        items=(('mandel', "Mandelbrot", ""),('julia', "Julia", "")),
+        default='julia',
+    )
 
     magnet_type: IntProperty(
-            name="Magnet_type",
-            description="1 or 2",
-            min=1, max=2, default=2)
+        name="Magnet_type",
+        description="1 or 2",
+        min=1, max=2, default=2
+    )
 
     warp_types: EnumProperty(
-            name="Warp Types",
-            description="Select the type of warp",
-            items=(('PLANAR', "Planar", ""), ('CUBIC', "Cubic", ""),
-                   ('SPHERICAL', "Spherical", ""), ('TOROIDAL', "Toroidal", ""),
-                   ('CYLINDRICAL', "Cylindrical", ""), ('NONE', "None", "No indentation")),
-            default='NONE')
+        name="Warp Types",
+        description="Select the type of warp",
+        items=(('PLANAR', "Planar", ""), ('CUBIC', "Cubic", ""),
+               ('SPHERICAL', "Spherical", ""), ('TOROIDAL', "Toroidal", ""),
+               ('CYLINDRICAL', "Cylindrical", ""), ('NONE', "None", "No indentation")),
+        default='NONE'
+    )
 
     warp_orientation: EnumProperty(
-            name="Warp Orientation",
-            description="Select the orientation of warp",
-            items=(('x', "X", ""), ('y', "Y", ""), ('z', "Z", "")),
-            default='y')
+        name="Warp Orientation",
+        description="Select the orientation of warp",
+        items=(('x', "X", ""), ('y', "Y", ""), ('z', "Z", "")),
+        default='y',
+    )
 
     wave_type: EnumProperty(
-            name="Waves type",
-            description="Select the type of waves",
-            items=(('ramp', "Ramp", ""), ('sine', "Sine", ""), ('scallop', "Scallop", ""),
-                   ('cubic', "Cubic", ""), ('poly', "Poly", ""), ('triangle', 'Triangle', "")),
-            default='ramp')
+        name="Waves type",
+        description="Select the type of waves",
+        items=(('ramp', "Ramp", ""), ('sine', "Sine", ""), ('scallop', "Scallop", ""),
+               ('cubic', "Cubic", ""), ('poly', "Poly", ""), ('triangle', 'Triangle', "")),
+        default='ramp',
+    )
 
     gen_noise: IntProperty(
-            name="Noise Generators",
-            description="Noise Generators",
-            min=1, max=3, default=1)
+        name="Noise Generators",
+        description="Noise Generators",
+        min=1, max=3, default=1,
+    )
 
     warp_dist_exp: FloatProperty(
-            name="Distance exponent",
-            description="Distance exponent",
-            min=0.0, max=100.0, default=1.0)
+        name="Distance exponent",
+        description="Distance exponent",
+        min=0.0, max=100.0, default=1.0,
+    )
 
     warp_tor_major_radius: FloatProperty(
-            name="Major radius",
-            description="Torus is distance from major radius",
-            min=0.0, max=5.0, default=1.0)
-
+        name="Major radius",
+        description="Torus is distance from major radius",
+        min=0.0, max=5.0, default=1.0,
+    )
 
     warp_turbulence_x: FloatProperty(
-            name="Turbulence X",
-            description="Turbulence X",
-            min=0.0, max=5.0, default=0.0)
+        name="Turbulence X",
+        description="Turbulence X",
+        min=0.0, max=5.0, default=0.0,
+    )
 
     warp_turbulence_y: FloatProperty(
-            name="Turbulence Y",
-            description="Turbulence Y",
-            min=0.0, max=5.0, default=0.0)
+        name="Turbulence Y",
+        description="Turbulence Y",
+        min=0.0, max=5.0, default=0.0
+    )
 
     warp_turbulence_z: FloatProperty(
-            name="Turbulence Z",
-            description="Turbulence Z",
-            min=0.0, max=5.0, default=0.0)
+        name="Turbulence Z",
+        description="Turbulence Z",
+        min=0.0, max=5.0, default=0.0
+    )
 
     modifier_octaves: IntProperty(
-            name="Turbulence octaves",
-            description="Turbulence octaves",
-            min=1, max=10, default=1)
+        name="Turbulence octaves",
+        description="Turbulence octaves",
+        min=1, max=10, default=1
+    )
 
     modifier_lambda: FloatProperty(
-            name="Turbulence lambda",
-            description="Turbulence lambda",
-            min=0.0, max=5.0, default=1.00)
+        name="Turbulence lambda",
+        description="Turbulence lambda",
+        min=0.0, max=5.0, default=1.00
+    )
 
     modifier_omega: FloatProperty(
-            name="Turbulence omega",
-            description="Turbulence omega",
-            min=0.0, max=10.0, default=1.00)
+        name="Turbulence omega",
+        description="Turbulence omega",
+        min=0.0, max=10.0, default=1.00
+    )
 
     modifier_phase: FloatProperty(
-            name="Phase",
-            description="The phase value causes the map entries to be shifted so that the map "
-                        "starts and ends at a different place",
-            min=0.0, max=2.0, default=0.0)
+        name="Phase",
+        description="The phase value causes the map entries to be shifted so that the map "
+        "starts and ends at a different place",
+        min=0.0, max=2.0, default=0.0
+    )
 
     modifier_frequency: FloatProperty(
-            name="Frequency",
-            description="The frequency keyword adjusts the number of times that a color map "
-                        "repeats over one cycle of a pattern",
-            min=0.0, max=25.0, default=2.0)
+        name="Frequency",
+        description="The frequency keyword adjusts the number of times that a color map "
+        "repeats over one cycle of a pattern",
+        min=0.0, max=25.0, default=2.0
+    )
 
     modifier_turbulence: FloatProperty(
-            name="Turbulence",
-            description="Turbulence",
-            min=0.0, max=5.0, default=2.0)
+        name="Turbulence",
+        description="Turbulence",
+        min=0.0, max=5.0, default=2.0
+    )
 
     modifier_numbers: IntProperty(
-            name="Numbers",
-            description="Numbers",
-            min=1, max=27, default=2)
+        name="Numbers",
+        description="Numbers",
+        min=1, max=27, default=2
+    )
 
     modifier_control0: IntProperty(
-            name="Control0",
-            description="Control0",
-            min=0, max=100, default=1)
+        name="Control0",
+        description="Control0",
+        min=0, max=100, default=1
+    )
 
     modifier_control1: IntProperty(
-            name="Control1",
-            description="Control1",
-            min=0, max=100, default=1)
+        name="Control1",
+        description="Control1",
+        min=0, max=100, default=1
+    )
 
     brick_size_x: FloatProperty(
-            name="Brick size x",
-            description="",
-            min=0.0000, max=1.0000, default=0.2500)
+        name="Brick size x",
+        description="",
+        min=0.0000, max=1.0000, default=0.2500
+    )
 
     brick_size_y: FloatProperty(
-            name="Brick size y",
-            description="",
-            min=0.0000, max=1.0000, default=0.0525)
+        name="Brick size y",
+        description="",
+        min=0.0000, max=1.0000, default=0.0525
+    )
 
     brick_size_z: FloatProperty(
-            name="Brick size z",
-            description="",
-            min=0.0000, max=1.0000, default=0.1250)
+        name="Brick size z",
+        description="",
+        min=0.0000, max=1.0000, default=0.1250
+    )
 
     brick_mortar: FloatProperty(
-            name="Mortar",
-            description="Mortar",
-            min=0.000, max=1.500, default=0.01)
+        name="Mortar",
+        description="Mortar",
+        min=0.000, max=1.500, default=0.01
+    )
 
     julia_complex_1: FloatProperty(
-            name="Julia Complex 1",
-            description="",
-            min=0.000, max=1.500, default=0.360)
+        name="Julia Complex 1",
+        description="",
+        min=0.000, max=1.500, default=0.360
+    )
 
     julia_complex_2: FloatProperty(
-            name="Julia Complex 2",
-            description="",
-            min=0.000, max=1.500, default=0.250)
+        name="Julia Complex 2",
+        description="",
+        min=0.000, max=1.500, default=0.250
+    )
 
     f_iter: IntProperty(
-            name="Fractal Iteration",
-            description="",
-            min=0, max=100, default=20)
+        name="Fractal Iteration",
+        description="",
+        min=0, max=100, default=20
+    )
 
     f_exponent: IntProperty(
-            name="Fractal Exponent",
-            description="",
-            min=2, max=33, default=2)
+        name="Fractal Exponent",
+        description="",
+        min=2, max=33, default=2
+    )
 
     f_ior: IntProperty(
-            name="Fractal Interior",
-            description="",
-            min=1, max=6, default=1)
+        name="Fractal Interior",
+        description="",
+        min=1, max=6, default=1
+    )
 
     f_ior_fac: FloatProperty(
-            name="Fractal Interior Factor",
-            description="",
-            min=0.0, max=10.0, default=1.0)
+        name="Fractal Interior Factor",
+        description="",
+        min=0.0, max=10.0, default=1.0
+    )
 
     f_eor: IntProperty(
-            name="Fractal Exterior",
-            description="",
-            min=1, max=8, default=1)
+        name="Fractal Exterior",
+        description="",
+        min=1, max=8, default=1
+    )
 
     f_eor_fac: FloatProperty(
-            name="Fractal Exterior Factor",
-            description="",
-            min=0.0, max=10.0, default=1.0)
+        name="Fractal Exterior Factor",
+        description="",
+        min=0.0, max=10.0, default=1.0
+    )
 
     grad_orient_x: IntProperty(
-            name="Gradient orientation X",
-            description="",
-            min=0, max=1, default=0)
+        name="Gradient orientation X",
+        description="",
+        min=0, max=1, default=0
+    )
 
     grad_orient_y: IntProperty(
-            name="Gradient orientation Y",
-            description="",
-            min=0, max=1, default=1)
+        name="Gradient orientation Y",
+        description="",
+        min=0, max=1, default=1
+    )
 
     grad_orient_z: IntProperty(
-            name="Gradient orientation Z",
-            description="",
-            min=0, max=1, default=0)
+        name="Gradient orientation Z",
+        description="",
+        min=0, max=1, default=0
+    )
 
     pave_sides: EnumProperty(
-            name="Pavement sides",
-            description="",
-            items=(('3', "3", ""), ('4', "4", ""), ('6', "6", "")),
-            default='3')
+        name="Pavement sides",
+        description="",
+        items=(('3', "3", ""), ('4', "4", ""), ('6', "6", "")),
+        default='3'
+    )
 
     pave_pat_2: IntProperty(
-            name="Pavement pattern 2",
-            description="maximum: 2",
-            min=1, max=2, default=2)
+        name="Pavement pattern 2",
+        description="maximum: 2",
+        min=1, max=2, default=2
+    )
 
     pave_pat_3: IntProperty(
-            name="Pavement pattern 3",
-            description="maximum: 3",
-            min=1, max=3, default=3)
+        name="Pavement pattern 3",
+        description="maximum: 3",
+        min=1, max=3, default=3
+    )
 
     pave_pat_4: IntProperty(
-            name="Pavement pattern 4",
-            description="maximum: 4",
-            min=1, max=4, default=4)
+        name="Pavement pattern 4",
+        description="maximum: 4",
+        min=1, max=4, default=4
+    )
 
     pave_pat_5: IntProperty(
-            name="Pavement pattern 5",
-            description="maximum: 5",
-            min=1, max=5, default=5)
+        name="Pavement pattern 5",
+        description="maximum: 5",
+        min=1, max=5, default=5
+    )
 
     pave_pat_7: IntProperty(
-            name="Pavement pattern 7",
-            description="maximum: 7",
-            min=1, max=7, default=7)
+        name="Pavement pattern 7",
+        description="maximum: 7",
+        min=1, max=7, default=7
+    )
 
     pave_pat_12: IntProperty(
-            name="Pavement pattern 12",
-            description="maximum: 12",
-            min=1, max=12, default=12)
+        name="Pavement pattern 12",
+        description="maximum: 12",
+        min=1, max=12, default=12
+    )
 
     pave_pat_22: IntProperty(
-            name="Pavement pattern 22",
-            description="maximum: 22",
-            min=1, max=22, default=22)
+        name="Pavement pattern 22",
+        description="maximum: 22",
+        min=1, max=22, default=22
+    )
 
     pave_pat_35: IntProperty(
-            name="Pavement pattern 35",
-            description="maximum: 35",
-            min=1, max=35, default=35)
+        name="Pavement pattern 35",
+        description="maximum: 35",
+        min=1, max=35, default=35,
+    )
 
     pave_tiles: IntProperty(
-            name="Pavement tiles",
-            description="If sides = 6, maximum tiles 5!!!",
-            min=1, max=6, default=1)
+        name="Pavement tiles",
+        description="If sides = 6, maximum tiles 5!!!",
+        min=1, max=6, default=1
+    )
 
     pave_form: IntProperty(
-            name="Pavement form",
-            description="",
-            min=0, max=4, default=0)
+        name="Pavement form",
+        description="",
+        min=0, max=4, default=0
+    )
 
     #########FUNCTIONS#############################################################################
     #########FUNCTIONS#############################################################################
 
     func_list: EnumProperty(
-            name="Functions",
-            description="Select the function for create pattern",
-            items=(('NONE', "None", "No indentation"),
-                   ("f_algbr_cyl1","Algbr cyl1",""), ("f_algbr_cyl2","Algbr cyl2",""),
-                   ("f_algbr_cyl3","Algbr cyl3",""), ("f_algbr_cyl4","Algbr cyl4",""),
-                   ("f_bicorn","Bicorn",""), ("f_bifolia","Bifolia",""),
-                   ("f_blob","Blob",""), ("f_blob2","Blob2",""),
-                   ("f_boy_surface","Boy surface",""), ("f_comma","Comma",""),
-                   ("f_cross_ellipsoids","Cross ellipsoids",""),
-                   ("f_crossed_trough","Crossed trough",""), ("f_cubic_saddle","Cubic saddle",""),
-                   ("f_cushion","Cushion",""), ("f_devils_curve","Devils curve",""),
-                   ("f_devils_curve_2d","Devils curve 2d",""),
-                   ("f_dupin_cyclid","Dupin cyclid",""), ("f_ellipsoid","Ellipsoid",""),
-                   ("f_enneper","Enneper",""), ("f_flange_cover","Flange cover",""),
-                   ("f_folium_surface","Folium surface",""),
-                   ("f_folium_surface_2d","Folium surface 2d",""), ("f_glob","Glob",""),
-                   ("f_heart","Heart",""), ("f_helical_torus","Helical torus",""),
-                   ("f_helix1","Helix1",""), ("f_helix2","Helix2",""), ("f_hex_x","Hex x",""),
-                   ("f_hex_y","Hex y",""), ("f_hetero_mf","Hetero mf",""),
-                   ("f_hunt_surface","Hunt surface",""),
-                   ("f_hyperbolic_torus","Hyperbolic torus",""),
-                   ("f_isect_ellipsoids","Isect ellipsoids",""),
-                   ("f_kampyle_of_eudoxus","Kampyle of eudoxus",""),
-                   ("f_kampyle_of_eudoxus_2d","Kampyle of eudoxus 2d",""),
-                   ("f_klein_bottle","Klein bottle",""),
-                   ("f_kummer_surface_v1","Kummer surface v1",""),
-                   ("f_kummer_surface_v2","Kummer surface v2",""),
-                   ("f_lemniscate_of_gerono","Lemniscate of gerono",""),
-                   ("f_lemniscate_of_gerono_2d","Lemniscate of gerono 2d",""),
-                   ("f_mesh1","Mesh1",""), ("f_mitre","Mitre",""),
-                   ("f_nodal_cubic","Nodal cubic",""), ("f_noise3d","Noise3d",""),
-                   ("f_noise_generator","Noise generator",""), ("f_odd","Odd",""),
-                   ("f_ovals_of_cassini","Ovals of cassini",""), ("f_paraboloid","Paraboloid",""),
-                   ("f_parabolic_torus","Parabolic torus",""), ("f_ph","Ph",""),
-                   ("f_pillow","Pillow",""), ("f_piriform","Piriform",""),
-                   ("f_piriform_2d","Piriform 2d",""), ("f_poly4","Poly4",""),
-                   ("f_polytubes","Polytubes",""), ("f_quantum","Quantum",""),
-                   ("f_quartic_paraboloid","Quartic paraboloid",""),
-                   ("f_quartic_saddle","Quartic saddle",""),
-                   ("f_quartic_cylinder","Quartic cylinder",""), ("f_r","R",""),
-                   ("f_ridge","Ridge",""), ("f_ridged_mf","Ridged mf",""),
-                   ("f_rounded_box","Rounded box",""), ("f_sphere","Sphere",""),
-                   ("f_spikes","Spikes",""), ("f_spikes_2d","Spikes 2d",""),
-                   ("f_spiral","Spiral",""), ("f_steiners_roman","Steiners roman",""),
-                   ("f_strophoid","Strophoid",""), ("f_strophoid_2d","Strophoid 2d",""),
-                   ("f_superellipsoid","Superellipsoid",""), ("f_th","Th",""),
-                   ("f_torus","Torus",""), ("f_torus2","Torus2",""),
-                   ("f_torus_gumdrop","Torus gumdrop",""), ("f_umbrella","Umbrella",""),
-                   ("f_witch_of_agnesi","Witch of agnesi",""),
-                   ("f_witch_of_agnesi_2d","Witch of agnesi 2d","")),
-
-            default='NONE')
+        name="Functions",
+        description="Select the function for create pattern",
+        items=(('NONE', "None", "No indentation"),
+               ("f_algbr_cyl1","Algbr cyl1",""), ("f_algbr_cyl2","Algbr cyl2",""),
+               ("f_algbr_cyl3","Algbr cyl3",""), ("f_algbr_cyl4","Algbr cyl4",""),
+               ("f_bicorn","Bicorn",""), ("f_bifolia","Bifolia",""),
+               ("f_blob","Blob",""), ("f_blob2","Blob2",""),
+               ("f_boy_surface","Boy surface",""), ("f_comma","Comma",""),
+               ("f_cross_ellipsoids","Cross ellipsoids",""),
+               ("f_crossed_trough","Crossed trough",""), ("f_cubic_saddle","Cubic saddle",""),
+               ("f_cushion","Cushion",""), ("f_devils_curve","Devils curve",""),
+               ("f_devils_curve_2d","Devils curve 2d",""),
+               ("f_dupin_cyclid","Dupin cyclid",""), ("f_ellipsoid","Ellipsoid",""),
+               ("f_enneper","Enneper",""), ("f_flange_cover","Flange cover",""),
+               ("f_folium_surface","Folium surface",""),
+               ("f_folium_surface_2d","Folium surface 2d",""), ("f_glob","Glob",""),
+               ("f_heart","Heart",""), ("f_helical_torus","Helical torus",""),
+               ("f_helix1","Helix1",""), ("f_helix2","Helix2",""), ("f_hex_x","Hex x",""),
+               ("f_hex_y","Hex y",""), ("f_hetero_mf","Hetero mf",""),
+               ("f_hunt_surface","Hunt surface",""),
+               ("f_hyperbolic_torus","Hyperbolic torus",""),
+               ("f_isect_ellipsoids","Isect ellipsoids",""),
+               ("f_kampyle_of_eudoxus","Kampyle of eudoxus",""),
+               ("f_kampyle_of_eudoxus_2d","Kampyle of eudoxus 2d",""),
+               ("f_klein_bottle","Klein bottle",""),
+               ("f_kummer_surface_v1","Kummer surface v1",""),
+               ("f_kummer_surface_v2","Kummer surface v2",""),
+               ("f_lemniscate_of_gerono","Lemniscate of gerono",""),
+               ("f_lemniscate_of_gerono_2d","Lemniscate of gerono 2d",""),
+               ("f_mesh1","Mesh1",""), ("f_mitre","Mitre",""),
+               ("f_nodal_cubic","Nodal cubic",""), ("f_noise3d","Noise3d",""),
+               ("f_noise_generator","Noise generator",""), ("f_odd","Odd",""),
+               ("f_ovals_of_cassini","Ovals of cassini",""), ("f_paraboloid","Paraboloid",""),
+               ("f_parabolic_torus","Parabolic torus",""), ("f_ph","Ph",""),
+               ("f_pillow","Pillow",""), ("f_piriform","Piriform",""),
+               ("f_piriform_2d","Piriform 2d",""), ("f_poly4","Poly4",""),
+               ("f_polytubes","Polytubes",""), ("f_quantum","Quantum",""),
+               ("f_quartic_paraboloid","Quartic paraboloid",""),
+               ("f_quartic_saddle","Quartic saddle",""),
+               ("f_quartic_cylinder","Quartic cylinder",""), ("f_r","R",""),
+               ("f_ridge","Ridge",""), ("f_ridged_mf","Ridged mf",""),
+               ("f_rounded_box","Rounded box",""), ("f_sphere","Sphere",""),
+               ("f_spikes","Spikes",""), ("f_spikes_2d","Spikes 2d",""),
+               ("f_spiral","Spiral",""), ("f_steiners_roman","Steiners roman",""),
+               ("f_strophoid","Strophoid",""), ("f_strophoid_2d","Strophoid 2d",""),
+               ("f_superellipsoid","Superellipsoid",""), ("f_th","Th",""),
+               ("f_torus","Torus",""), ("f_torus2","Torus2",""),
+               ("f_torus_gumdrop","Torus gumdrop",""), ("f_umbrella","Umbrella",""),
+               ("f_witch_of_agnesi","Witch of agnesi",""),
+               ("f_witch_of_agnesi_2d","Witch of agnesi 2d","")),
+
+        default='NONE',
+    )
 
     func_x: FloatProperty(
-            name="FX",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="FX",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_plus_x: EnumProperty(
-            name="Func plus x",
-            description="",
-            items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
-            default='NONE')
+        name="Func plus x",
+        description="",
+        items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
+        default='NONE',
+    )
 
     func_y: FloatProperty(
-            name="FY",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="FY",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_plus_y: EnumProperty(
-            name="Func plus y",
-            description="",
-            items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
-            default='NONE')
+        name="Func plus y",
+        description="",
+        items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
+        default='NONE',
+    )
 
     func_z: FloatProperty(
-            name="FZ",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="FZ",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_plus_z: EnumProperty(
-            name="Func plus z",
-            description="",
-            items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
-            default='NONE')
+        name="Func plus z",
+        description="",
+        items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
+        default='NONE',
+    )
 
     func_P0: FloatProperty(
-            name="P0",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P0",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P1: FloatProperty(
-            name="P1",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P1",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P2: FloatProperty(
-            name="P2",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P2",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P3: FloatProperty(
-            name="P3",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P3",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P4: FloatProperty(
-            name="P4",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P4",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P5: FloatProperty(
-            name="P5",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P5",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P6: FloatProperty(
-            name="P6",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P6",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P7: FloatProperty(
-            name="P7",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P7",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P8: FloatProperty(
-            name="P8",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P8",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     func_P9: FloatProperty(
-            name="P9",
-            description="",
-            min=0.0, max=25.0, default=1.0)
+        name="P9",
+        description="",
+        min=0.0, max=25.0, default=1.0
+    )
 
     #########################################
     tex_rot_x: FloatProperty(
-            name="Rotate X",
-            description="",
-            min=-180.0, max=180.0, default=0.0)
+        name="Rotate X",
+        description="",
+        min=-180.0, max=180.0, default=0.0
+    )
 
     tex_rot_y: FloatProperty(
-            name="Rotate Y",
-            description="",
-            min=-180.0, max=180.0, default=0.0)
+        name="Rotate Y",
+        description="",
+        min=-180.0, max=180.0, default=0.0
+    )
 
     tex_rot_z: FloatProperty(
-            name="Rotate Z",
-            description="",
-            min=-180.0, max=180.0, default=0.0)
+        name="Rotate Z",
+        description="",
+        min=-180.0, max=180.0, default=0.0
+    )
 
     tex_mov_x: FloatProperty(
-            name="Move X",
-            description="",
-            min=-100000.0, max=100000.0, default=0.0)
+        name="Move X",
+        description="",
+        min=-100000.0, max=100000.0, default=0.0
+    )
 
     tex_mov_y: FloatProperty(
-            name="Move Y",
-            description="",
-            min=-100000.0, max=100000.0, default=0.0)
+        name="Move Y",
+        description="",
+        min=-100000.0, max=100000.0, default=0.0
+    )
 
     tex_mov_z: FloatProperty(
-            name="Move Z",
-            description="",
-            min=-100000.0, max=100000.0, default=0.0)
+        name="Move Z",
+        description="",
+        min=-100000.0, max=100000.0, default=0.0
+    )
 
     tex_scale_x: FloatProperty(
-            name="Scale X",
-            description="",
-            min=0.0, max=10000.0, default=1.0)
+        name="Scale X",
+        description="",
+        min=0.0, max=10000.0, default=1.0
+    )
 
     tex_scale_y: FloatProperty(
-            name="Scale Y",
-            description="",
-            min=0.0, max=10000.0, default=1.0)
+        name="Scale Y",
+        description="",
+        min=0.0, max=10000.0, default=1.0
+    )
 
     tex_scale_z: FloatProperty(
-            name="Scale Z",
-            description="",
-            min=0.0, max=10000.0, default=1.0)
-
+        name="Scale Z",
+        description="",
+        min=0.0, max=10000.0, default=1.0
+    )
 
 ###############################################################################
 # Object POV properties.
@@ -3707,43 +4225,47 @@ class RenderPovSettingsObject(PropertyGroup):
 
     # Pov inside_vector used for CSG
     inside_vector: FloatVectorProperty(
-            name="CSG Inside Vector", description="Direction to shoot CSG inside test rays at",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.001, 0.001, 0.5),
-            options={'ANIMATABLE'},
-            subtype='XYZ')
+        name="CSG Inside Vector", description="Direction to shoot CSG inside test rays at",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.001, 0.001, 0.5),
+        options={'ANIMATABLE'},
+        subtype='XYZ'
+    )
 
     # Importance sampling
     importance_value: FloatProperty(
-            name="Radiosity Importance",
-            description="Priority value relative to other objects for sampling radiosity rays. "
-                        "Increase to get more radiosity rays at comparatively small yet "
-                        "bright objects",
-            min=0.01, max=1.00, default=0.50)
+        name="Radiosity Importance",
+        description="Priority value relative to other objects for sampling radiosity rays. "
+        "Increase to get more radiosity rays at comparatively small yet "
+        "bright objects",
+        min=0.01, max=1.00, default=0.50
+    )
 
     # Collect photons
     collect_photons: BoolProperty(
-            name="Receive Photon Caustics",
-            description="Enable object to collect photons from other objects caustics. Turn "
-                        "off for objects that don't really need to receive caustics (e.g. objects"
-                        " that generate caustics often don't need to show any on themselves)",
-            default=True)
+        name="Receive Photon Caustics",
+        description="Enable object to collect photons from other objects caustics. Turn "
+        "off for objects that don't really need to receive caustics (e.g. objects"
+        " that generate caustics often don't need to show any on themselves)",
+        default=True,
+    )
 
     # Photons spacing_multiplier
     spacing_multiplier: FloatProperty(
-            name="Photons Spacing Multiplier",
-            description="Multiplier value relative to global spacing of photons. "
-                        "Decrease by half to get 4x more photons at surface of "
-                        "this object (or 8x media photons than specified in the globals",
-            min=0.01, max=1.00, default=1.00)
+        name="Photons Spacing Multiplier",
+        description="Multiplier value relative to global spacing of photons. "
+        "Decrease by half to get 4x more photons at surface of "
+        "this object (or 8x media photons than specified in the globals",
+        min=0.01, max=1.00, default=1.00)
 
     ##################################CustomPOV Code############################
     # Only DUMMIES below for now:
     replacement_text: StringProperty(
-            name="Declared name:",
-            description="Type the declared name in custom POV code or an external .inc "
-                        "it points at. Any POV shape expected e.g: isosurface {}",
-            default="")
+        name="Declared name:",
+        description="Type the declared name in custom POV code or an external .inc "
+        "it points at. Any POV shape expected e.g: isosurface {}",
+        default="",
+    )
 
     #############POV specific object properties.############################
     object_as: StringProperty(maxlen=1024)
@@ -3751,36 +4273,41 @@ class RenderPovSettingsObject(PropertyGroup):
     imported_loc: FloatVectorProperty(
         name="Imported Pov location",
         precision=6,
-        default=(0.0, 0.0, 0.0))
+        default=(0.0, 0.0, 0.0),
+    )
 
     imported_loc_cap: FloatVectorProperty(
         name="Imported Pov location",
         precision=6,
-        default=(0.0, 0.0, 2.0))
+        default=(0.0, 0.0, 2.0),
+    )
 
     unlock_parameters: BoolProperty(name="Lock",default = False)
 
     # not in UI yet but used for sor (lathe) / prism... pov primitives
     curveshape: EnumProperty(
-            name="Povray Shape Type",
-            items=(("birail", "Birail", ""),
-                   ("cairo", "Cairo", ""),
-                   ("lathe", "Lathe", ""),
-                   ("loft", "Loft", ""),
-                   ("prism", "Prism", ""),
-                   ("sphere_sweep", "Sphere Sweep", "")),
-            default="sphere_sweep")
+        name="Povray Shape Type",
+        items=(("birail", "Birail", ""),
+               ("cairo", "Cairo", ""),
+               ("lathe", "Lathe", ""),
+               ("loft", "Loft", ""),
+               ("prism", "Prism", ""),
+               ("sphere_sweep", "Sphere Sweep", "")),
+        default="sphere_sweep",
+    )
 
     mesh_write_as: EnumProperty(
-            name="Mesh Write As",
-            items=(("blobgrid", "Blob Grid", ""),
-                   ("grid", "Grid", ""),
-                   ("mesh", "Mesh", "")),
-            default="mesh")
+        name="Mesh Write As",
+        items=(("blobgrid", "Blob Grid", ""),
+               ("grid", "Grid", ""),
+               ("mesh", "Mesh", "")),
+        default="mesh",
+    )
 
     object_ior: FloatProperty(
-            name="IOR", description="IOR",
-            min=1.0, max=10.0,default=1.0)
+        name="IOR", description="IOR",
+        min=1.0, max=10.0,default=1.0
+    )
 
     # shape_as_light = StringProperty(name="Light",maxlen=1024)
     # fake_caustics_power = FloatProperty(
@@ -3817,11 +4344,13 @@ class RenderPovSettingsObject(PropertyGroup):
     hollow: BoolProperty(name="Hollow",default=False)
 
     boundorclip: EnumProperty(
-            name="Boundorclip",
-            items=(("none", "None", ""),
-                   ("bounded_by", "Bounded_by", ""),
-                   ("clipped_by", "Clipped_by", "")),
-            default="none")
+        name="Boundorclip",
+        items=(("none", "None", ""),
+               ("bounded_by", "Bounded_by", ""),
+               ("clipped_by", "Clipped_by", "")),
+        default="none",
+    )
+
     boundorclipob: StringProperty(maxlen=1024)
 
     addboundorclip: BoolProperty(description="",default=False)
@@ -3835,10 +4364,11 @@ class RenderPovSettingsObject(PropertyGroup):
     res_v: IntProperty(name="V",min=100, max=1000, default=500)
 
     contained_by: EnumProperty(
-            name="Contained by",
-            items=(("box", "Box", ""),
-                   ("sphere", "Sphere", "")),
-            default="box")
+        name="Contained by",
+        items=(("box", "Box", ""),
+               ("sphere", "Sphere", "")),
+        default="box",
+    )
 
     container_scale: FloatProperty(name="Container Scale",min=0.0, max=10.0, default=1.00)
 
@@ -3859,325 +4389,475 @@ class RenderPovSettingsObject(PropertyGroup):
             bpy.ops.pov.cylinder_update()
 
     cylinder_radius: FloatProperty(
-            name="Cylinder R",min=0.00, max=10.0, default=0.04, update=prop_update_cylinder)
+        name="Cylinder R",min=0.00, max=10.0, default=0.04, update=prop_update_cylinder)
 
     cylinder_location_cap: FloatVectorProperty(
-            name="Cylinder Cap Location", subtype='TRANSLATION',
-            description="The position of the 'other' end of the cylinder (relative to object location)",
-            default=(0.0, 0.0, 2.0), update=prop_update_cylinder)
+        name="Cylinder Cap Location", subtype='TRANSLATION',
+        description="The position of the 'other' end of the cylinder (relative to object location)",
+        default=(0.0, 0.0, 2.0), update=prop_update_cylinder
+    )
 
     imported_cyl_loc: FloatVectorProperty(
         name="Imported Pov location",
         precision=6,
-        default=(0.0, 0.0, 0.0))
+        default=(0.0, 0.0, 0.0)
+    )
 
     imported_cyl_loc_cap: FloatVectorProperty(
         name="Imported Pov location",
         precision=6,
-        default=(0.0, 0.0, 2.0))
+        default=(0.0, 0.0, 2.0)
+    )
 
     def prop_update_sphere(self, context):
-        """Update POV sphere primitive parameters not only at creation but anytime they are changed in UI."""    
+
+        """Update POV sphere primitive parameters not only at creation but anytime they are changed in UI."""
+
         bpy.ops.pov.sphere_update()
 
     sphere_radius: FloatProperty(
         name="Sphere radius",min=0.00, max=10.0, default=0.5, update=prop_update_sphere)
 
-
     def prop_update_cone(self, context):
-        """Update POV cone primitive parameters not only at creation but anytime they are changed in UI."""    
+
+        """Update POV cone primitive parameters not only at creation but anytime they are changed in UI."""
+
         bpy.ops.pov.cone_update()
 
     cone_base_radius: FloatProperty(
-        name = "Base radius", description = "The first radius of the cone",
-        default = 1.0, min = 0.01, max = 100.0, update=prop_update_cone)
-        
+        name = "Base radius",
+        description = "The first radius of the cone",
+        default = 1.0, min = 0.01, max = 100.0, update=prop_update_cone
+    )
+
     cone_cap_radius: FloatProperty(
-        name = "Cap radius", description = "The second radius of the cone",
-        default = 0.3, min = 0.0, max = 100.0, update=prop_update_cone)
+        name = "Cap radius",
+        description = "The second radius of the cone",
+        default = 0.3, min = 0.0, max = 100.0, update=prop_update_cone
+    )
 
     cone_segments: IntProperty(
-        name = "Segments", description = "Radial segmentation of proxy mesh",
-        default = 16, min = 3, max = 265, update=prop_update_cone)
+        name = "Segments",
+        description = "Radial segmentation of proxy mesh",
+        default = 16, min = 3, max = 265, update=prop_update_cone
+    )
 
     cone_height: FloatProperty(
-        name = "Height", description = "Height of the cone",
-        default = 2.0, min = 0.01, max = 100.0, update=prop_update_cone)
+        name = "Height",
+        description = "Height of the cone",
+        default = 2.0, min = 0.01, max = 100.0, update=prop_update_cone
+    )
 
     cone_base_z: FloatProperty()
-    
+
     cone_cap_z: FloatProperty()
 
 ###########Parametric
     def prop_update_parametric(self, context):
+
         """Update POV parametric surface primitive parameters not only at creation but anytime they are changed in UI."""
+
         bpy.ops.pov.parametric_update()
 
-    u_min: FloatProperty(name = "U Min",
-                    description = "",
-                    default = 0.0, update=prop_update_parametric)
-    v_min: FloatProperty(name = "V Min",
-                    description = "",
-                    default = 0.0, update=prop_update_parametric)
-    u_max: FloatProperty(name = "U Max",
-                    description = "",
-                    default = 6.28, update=prop_update_parametric)
-    v_max: FloatProperty(name = "V Max",
-                    description = "",
-                    default = 12.57, update=prop_update_parametric)
+    u_min: FloatProperty(
+        name = "U Min",
+        description = "",
+        default = 0.0, update=prop_update_parametric
+    )
+
+    v_min: FloatProperty(
+        name = "V Min",
+        description = "",
+        default = 0.0,
+        update=prop_update_parametric
+    )
+
+    u_max: FloatProperty(
+        name = "U Max",
+        description = "",
+        default = 6.28,
+        update=prop_update_parametric
+    )
+
+    v_max: FloatProperty(
+        name = "V Max",
+        description = "",
+        default = 12.57, update=prop_update_parametric
+    )
+
     x_eq: StringProperty(
-                    maxlen=1024, default = "cos(v)*(1+cos(u))*sin(v/8)", update=prop_update_parametric)
+        maxlen=1024,
+        default = "cos(v)*(1+cos(u))*sin(v/8)",
+        update=prop_update_parametric
+    )
+
     y_eq: StringProperty(
-                    maxlen=1024, default = "sin(u)*sin(v/8)+cos(v/8)*1.5", update=prop_update_parametric)
+        maxlen=1024,
+        default = "sin(u)*sin(v/8)+cos(v/8)*1.5",
+        update=prop_update_parametric
+    )
+
     z_eq: StringProperty(
-                    maxlen=1024, default = "sin(v)*(1+cos(u))*sin(v/8)", update=prop_update_parametric)
+        maxlen=1024,
+        default = "sin(v)*(1+cos(u))*sin(v/8)",
+        update=prop_update_parametric
+    )
 
-###########Torus
+    ###########Torus
 
     def prop_update_torus(self, context):
+
         """Update POV torus primitive parameters not only at creation but anytime they are changed in UI."""
+
         bpy.ops.pov.torus_update()
 
     torus_major_segments: IntProperty(
-                    name = "Segments", description = "Radial segmentation of proxy mesh",
-                    default = 48, min = 3, max = 720, update=prop_update_torus)
+        name = "Segments",
+        description = "Radial segmentation of proxy mesh",
+        default = 48, min = 3, max = 720, update=prop_update_torus
+    )
+
     torus_minor_segments: IntProperty(
-                    name = "Segments", description = "Cross-section segmentation of proxy mesh",
-                    default = 12, min = 3, max = 720, update=prop_update_torus)
+        name = "Segments",
+        description = "Cross-section segmentation of proxy mesh",
+        default = 12, min = 3, max = 720, update=prop_update_torus
+    )
+
     torus_major_radius: FloatProperty(
-                    name="Major radius",
-                    description="Major radius",
-                    min=0.00, max=100.00, default=1.0, update=prop_update_torus)
+        name="Major radius",
+        description="Major radius",
+        min=0.00, max=100.00, default=1.0, update=prop_update_torus
+    )
+
     torus_minor_radius: FloatProperty(
-                    name="Minor radius",
-                    description="Minor radius",
-                    min=0.00, max=100.00, default=0.25, update=prop_update_torus)
+        name="Minor radius",
+        description="Minor radius",
+        min=0.00, max=100.00, default=0.25, update=prop_update_torus
+    )
 
 
-###########Rainbow
-    arc_angle: FloatProperty(name = "Arc angle",
-                      description = "The angle of the raynbow arc in degrees",
-                      default = 360, min = 0.01, max = 360.0)
-    falloff_angle: FloatProperty(name = "Falloff angle",
-                      description = "The angle after which rainbow dissolves into background",
-                      default = 360, min = 0.0, max = 360)
+    ###########Rainbow
+    arc_angle: FloatProperty(
+        name = "Arc angle",
+        description = "The angle of the raynbow arc in degrees",
+        default = 360, min = 0.01, max = 360.0
+    )
+
+    falloff_angle: FloatProperty(
+        name = "Falloff angle",
+        description = "The angle after which rainbow dissolves into background",
+        default = 360, min = 0.0, max = 360
+    )
 
-###########HeightFields
+    ###########HeightFields
 
-    quality: IntProperty(name = "Quality",
-                      description = "",
-                      default = 100, min = 1, max = 100)
+    quality: IntProperty(
+        name = "Quality",
+        description = "",
+        default = 100, min = 1, max = 100
+    )
 
     hf_filename: StringProperty(maxlen = 1024)
 
     hf_gamma: FloatProperty(
-            name="Gamma",
-            description="Gamma",
-            min=0.0001, max=20.0, default=1.0)
+        name="Gamma",
+        description="Gamma",
+        min=0.0001, max=20.0, default=1.0
+    )
 
     hf_premultiplied: BoolProperty(
-            name="Premultiplied",
-            description="Premultiplied",
-            default=True)
+        name="Premultiplied",
+        description="Premultiplied",
+        default=True,
+    )
 
     hf_smooth: BoolProperty(
-            name="Smooth",
-            description="Smooth",
-            default=False)
+        name="Smooth",
+        description="Smooth",
+        default=False,
+    )
 
     hf_water: FloatProperty(
-            name="Water Level",
-            description="Wather Level",
-            min=0.00, max=1.00, default=0.0)
+        name="Water Level",
+        description="Wather Level",
+        min=0.00, max=1.00, default=0.0,
+    )
 
     hf_hierarchy: BoolProperty(
-            name="Hierarchy",
-            description="Height field hierarchy",
-            default=True)
+        name="Hierarchy",
+        description="Height field hierarchy",
+        default=True,
+    )
 
-##############Superellipsoid
+    ##############Superellipsoid
     def prop_update_superellipsoid(self, context):
+
         """Update POV superellipsoid primitive parameters not only at creation but anytime they are changed in UI."""
+
         bpy.ops.pov.superellipsoid_update()
 
     se_param1: FloatProperty(
-            name="Parameter 1",
-            description="",
-            min=0.00, max=10.0, default=0.04)
+        name="Parameter 1",
+        description="",
+        min=0.00, max=10.0, default=0.04
+    )
 
     se_param2: FloatProperty(
-            name="Parameter 2",
-            description="",
-            min=0.00, max=10.0, default=0.04)
-
-    se_u: IntProperty(name = "U-segments",
-                    description = "radial segmentation",
-                    default = 20, min = 4, max = 265,
-                    update=prop_update_superellipsoid)
-    se_v: IntProperty(name = "V-segments",
-                    description = "lateral segmentation",
-                    default = 20, min = 4, max = 265,
-                    update=prop_update_superellipsoid)
-    se_n1: FloatProperty(name = "Ring manipulator",
-                    description = "Manipulates the shape of the Ring",
-                    default = 1.0, min = 0.01, max = 100.0,
-                    update=prop_update_superellipsoid)
+        name="Parameter 2",
+        description="",
+        min=0.00, max=10.0, default=0.04
+    )
+
+    se_u: IntProperty(
+        name = "U-segments",
+        description = "radial segmentation",
+        default = 20, min = 4, max = 265,
+        update=prop_update_superellipsoid
+    )
+
+    se_v: IntProperty(
+        name = "V-segments",
+        description = "lateral segmentation",
+        default = 20, min = 4, max = 265,
+        update=prop_update_superellipsoid
+    )
+
+    se_n1: FloatProperty(
+        name = "Ring manipulator",
+        description = "Manipulates the shape of the Ring",
+        default = 1.0, min = 0.01, max = 100.0,
+        update=prop_update_superellipsoid
+    )
+
     se_n2: FloatProperty(name = "Cross manipulator",
-                    description = "Manipulates the shape of the cross-section",
-                    default = 1.0, min = 0.01, max = 100.0,
-                    update=prop_update_superellipsoid)
+        description = "Manipulates the shape of the cross-section",
+        default = 1.0, min = 0.01, max = 100.0,
+        update=prop_update_superellipsoid
+    )
+
     se_edit: EnumProperty(items=[("NOTHING", "Nothing", ""),
                                 ("NGONS", "N-Gons", ""),
                                 ("TRIANGLES", "Triangles", "")],
-                    name="Fill up and down",
-                    description="",
-                    default='TRIANGLES',
-                    update=prop_update_superellipsoid)
-#############Used for loft and Superellipsoid, etc.
+        name="Fill up and down",
+        description="",
+        default='TRIANGLES',
+        update=prop_update_superellipsoid
+    )
+
+    #############Used for loft and Superellipsoid, etc.
     curveshape: EnumProperty(
-            name="Povray Shape Type",
-            items=(("birail", "Birail", ""),
-                   ("cairo", "Cairo", ""),
-                   ("lathe", "Lathe", ""),
-                   ("loft", "Loft", ""),
-                   ("prism", "Prism", ""),
-                   ("sphere_sweep", "Sphere Sweep", ""),
-                   ("sor", "Surface of Revolution", "")),
-            default="sphere_sweep")
+        name="Povray Shape Type",
+        items=(("birail", "Birail", ""),
+               ("cairo", "Cairo", ""),
+               ("lathe", "Lathe", ""),
+               ("loft", "Loft", ""),
+               ("prism", "Prism", ""),
+               ("sphere_sweep", "Sphere Sweep", ""),
+               ("sor", "Surface of Revolution", "")),
+        default="sphere_sweep",
+    )
 
 #############Supertorus
     def prop_update_supertorus(self, context):
-        """Update POV supertorus primitive parameters not only at creation but anytime they are changed in UI."""  
+
+        """Update POV supertorus primitive parameters not only at creation but anytime they are changed in UI."""
+
         bpy.ops.pov.supertorus_update()
 
     st_major_radius: FloatProperty(
-            name="Major radius",
-            description="Major radius",
-            min=0.00, max=100.00, default=1.0,
-            update=prop_update_supertorus)
+        name="Major radius",
+        description="Major radius",
+        min=0.00, max=100.00, default=1.0,
+        update=prop_update_supertorus
+    )
 
     st_minor_radius: FloatProperty(
-            name="Minor radius",
-            description="Minor radius",
-            min=0.00, max=100.00, default=0.25,
-            update=prop_update_supertorus)
+        name="Minor radius",
+        description="Minor radius",
+        min=0.00, max=100.00, default=0.25,
+        update=prop_update_supertorus
+    )
 
     st_ring: FloatProperty(
-            name="Ring",
-            description="Ring manipulator",
-            min=0.0001, max=100.00, default=1.00,
-            update=prop_update_supertorus)
+        name="Ring",
+        description="Ring manipulator",
+        min=0.0001, max=100.00, default=1.00,
+        update=prop_update_supertorus
+    )
 
     st_cross: FloatProperty(
-            name="Cross",
-            description="Cross manipulator",
-            min=0.0001, max=100.00, default=1.00,
-            update=prop_update_supertorus)
+        name="Cross",
+        description="Cross manipulator",
+        min=0.0001, max=100.00, default=1.00,
+        update=prop_update_supertorus
+    )
 
     st_accuracy: FloatProperty(
-            name="Accuracy",
-            description="Supertorus accuracy",
-            min=0.00001, max=1.00, default=0.001)
+        name="Accuracy",
+        description="Supertorus accuracy",
+        min=0.00001, max=1.00, default=0.001
+    )
 
     st_max_gradient: FloatProperty(
-            name="Gradient",
-            description="Max gradient",
-            min=0.0001, max=100.00, default=10.00,
-            update=prop_update_supertorus)
-
-    st_R: FloatProperty(name = "big radius",
-                      description = "The radius inside the tube",
-                      default = 1.0, min = 0.01, max = 100.0,
-                      update=prop_update_supertorus)
-    st_r: FloatProperty(name = "small radius",
-                      description = "The radius of the tube",
-                      default = 0.3, min = 0.01, max = 100.0,
-                      update=prop_update_supertorus)
-    st_u: IntProperty(name = "U-segments",
-                    description = "radial segmentation",
-                    default = 16, min = 3, max = 265,
-                    update=prop_update_supertorus)
-    st_v: IntProperty(name = "V-segments",
-                    description = "lateral segmentation",
-                    default = 8, min = 3, max = 265,
-                    update=prop_update_supertorus)
-    st_n1: FloatProperty(name = "Ring manipulator",
-                      description = "Manipulates the shape of the Ring",
-                      default = 1.0, min = 0.01, max = 100.0,
-                      update=prop_update_supertorus)
-    st_n2: FloatProperty(name = "Cross manipulator",
-                      description = "Manipulates the shape of the cross-section",
-                      default = 1.0, min = 0.01, max = 100.0,
-                      update=prop_update_supertorus)
-    st_ie: BoolProperty(name = "Use Int.+Ext. radii",
-                      description = "Use internal and external radii",
-                      default = False,
-                      update=prop_update_supertorus)
-    st_edit: BoolProperty(name="",
-                        description="",
-                        default=False,
-                        options={'HIDDEN'},
-                        update=prop_update_supertorus)
-
-########################Loft
-    loft_n: IntProperty(name = "Segments",
-                    description = "Vertical segments",
-                    default = 16, min = 3, max = 720)
-    loft_rings_bottom: IntProperty(name = "Bottom",
-                    description = "Bottom rings",
-                    default = 5, min = 2, max = 100)
-    loft_rings_side: IntProperty(name = "Side",
-                    description = "Side rings",
-                    default = 10, min = 2, max = 100)
-    loft_thick: FloatProperty(name = "Thickness",
-                      description = "Manipulates the shape of the Ring",
-                      default = 0.3, min = 0.01, max = 1.0)
-    loft_r: FloatProperty(name = "Radius",
-                      description = "Radius",
-                      default = 1, min = 0.01, max = 10)
-    loft_height: FloatProperty(name = "Height",
-                      description = "Manipulates the shape of the Ring",
-                      default = 2, min = 0.01, max = 10.0)
-
-###################Prism
-    prism_n: IntProperty(name = "Sides",
-                    description = "Number of sides",
-                    default = 5, min = 3, max = 720)
-    prism_r: FloatProperty(name = "Radius",
-                    description = "Radius",
-                    default = 1.0)
-
-##################Isosurface
-    iso_function_text: StringProperty(name="Function Text",maxlen=1024)#,update=iso_props_update_callback)
-
-##################PolygonToCircle
-    polytocircle_resolution: IntProperty(name = "Resolution",
-                    description = "",
-                    default = 3, min = 0, max = 256)
-    polytocircle_ngon: IntProperty(name = "NGon",
-                    description = "",
-                    min = 3, max = 64,default = 5)
-    polytocircle_ngonR: FloatProperty(name = "NGon Radius",
-                    description = "",
-                    default = 0.3)
-    polytocircle_circleR: FloatProperty(name = "Circle Radius",
-                    description = "",
-                    default = 1.0)
+        name="Gradient",
+        description="Max gradient",
+        min=0.0001, max=100.00, default=10.00,
+        update=prop_update_supertorus
+    )
+
+    st_R: FloatProperty(
+        name = "big radius",
+        description = "The radius inside the tube",
+        default = 1.0, min = 0.01, max = 100.0,
+        update=prop_update_supertorus
+    )
+
+    st_r: FloatProperty(
+        name = "small radius",
+        description = "The radius of the tube",
+        default = 0.3, min = 0.01, max = 100.0,
+        update=prop_update_supertorus
+    )
+
+    st_u: IntProperty(
+        name = "U-segments",
+        description = "radial segmentation",
+        default = 16, min = 3, max = 265,
+        update=prop_update_supertorus
+    )
+
+    st_v: IntProperty(
+        name = "V-segments",
+        description = "lateral segmentation",
+        default = 8, min = 3, max = 265,
+        update=prop_update_supertorus
+    )
+
+    st_n1: FloatProperty(
+        name = "Ring manipulator",
+        description = "Manipulates the shape of the Ring",
+        default = 1.0, min = 0.01, max = 100.0,
+        update=prop_update_supertorus
+    )
+
+    st_n2: FloatProperty(
+        name = "Cross manipulator",
+        description = "Manipulates the shape of the cross-section",
+        default = 1.0, min = 0.01, max = 100.0,
+        update=prop_update_supertorus
+    )
+
+    st_ie: BoolProperty(
+        name = "Use Int.+Ext. radii",
+        description = "Use internal and external radii",
+        default = False,
+        update=prop_update_supertorus
+    )
+
+    st_edit: BoolProperty(
+        name="",
+        description="",
+        default=False,
+        options={'HIDDEN'},
+        update=prop_update_supertorus
+    )
+
+    ########################Loft
+    loft_n: IntProperty(
+        name = "Segments",
+        description = "Vertical segments",
+        default = 16, min = 3, max = 720
+    )
+
+    loft_rings_bottom: IntProperty(
+        name = "Bottom",
+        description = "Bottom rings",
+        default = 5, min = 2, max = 100
+    )
+
+    loft_rings_side: IntProperty(
+        name = "Side",
+        description = "Side rings",
+        default = 10, min = 2, max = 100
+    )
+
+    loft_thick: FloatProperty(
+        name = "Thickness",
+        description = "Manipulates the shape of the Ring",
+        default = 0.3, min = 0.01, max = 1.0
+    )
+
+    loft_r: FloatProperty(
+        name = "Radius",
+        description = "Radius",
+        default = 1, min = 0.01, max = 10
+    )
+
+    loft_height: FloatProperty(
+        name = "Height",
+        description = "Manipulates the shape of the Ring",
+        default = 2, min = 0.01, max = 10.0
+    )
+
+    ###################Prism
+    prism_n: IntProperty(
+        name = "Sides",
+        description = "Number of sides",
+        default = 5, min = 3, max = 720
+    )
+
+    prism_r: FloatProperty(
+        name = "Radius",
+        description = "Radius",
+        default = 1.0
+    )
+
+    ##################Isosurface
+    iso_function_text: StringProperty(
+        name="Function Text",
+        maxlen=1024
+    ) #,update=iso_props_update_callback)
+
+    ##################PolygonToCircle
+    polytocircle_resolution: IntProperty(
+        name = "Resolution",
+        description = "",
+        default = 3, min = 0, max = 256
+    )
+
+    polytocircle_ngon: IntProperty(
+        name = "NGon",
+        description = "",
+        min = 3, max = 64,default = 5
+    )
+
+    polytocircle_ngonR: FloatProperty(
+        name = "NGon Radius",
+        description = "",
+        default = 0.3
+    )
+
+    polytocircle_circleR: FloatProperty(
+        name = "Circle Radius",
+        description = "",
+        default = 1.0
+    )
 
 
 ###############################################################################
 # Modifiers POV properties.
 ###############################################################################
-#class RenderPovSettingsModifier(PropertyGroup):
+# class RenderPovSettingsModifier(PropertyGroup):
     boolean_mod: EnumProperty(
-            name="Operation",
-            description="Choose the type of calculation for Boolean modifier",
-            items=(("BMESH", "Use the BMesh Boolean Solver", ""),
-                   ("CARVE", "Use the Carve Boolean Solver", ""),
-                   ("POV", "Use POV Constructive Solid Geometry", "")),
-            default="BMESH")
-
-#################Avogadro
+        name="Operation",
+        description="Choose the type of calculation for Boolean modifier",
+        items=(("BMESH", "Use the BMesh Boolean Solver", ""),
+               ("CARVE", "Use the Carve Boolean Solver", ""),
+               ("POV", "Use POV Constructive Solid Geometry", "")),
+        default="BMESH",
+    )
+
+    #################Avogadro
     # filename_ext = ".png"
 
     # filter_glob = StringProperty(
@@ -4189,238 +4869,310 @@ class RenderPovSettingsObject(PropertyGroup):
 # Camera POV properties.
 ###############################################################################
 class RenderPovSettingsCamera(PropertyGroup):
+
     """Declare camera properties controllable in UI and translated to POV."""
-    #DOF Toggle
+
+    # DOF Toggle
     dof_enable: BoolProperty(
-            name="Depth Of Field", description="Enable POV Depth Of Field ",
-            default=False)
+        name="Depth Of Field",
+        description="Enable POV Depth Of Field ",
+        default=False,
+    )
 
     # Aperture (Intensity of the Blur)
     dof_aperture: FloatProperty(
-            name="Aperture",
-            description="Similar to a real camera's aperture effect over focal blur (though not "
-                        "in physical units and independent of focal length). "
-                        "Increase to get more blur",
-            min=0.01, max=1.00, default=0.50)
+        name="Aperture",
+        description="Similar to a real camera's aperture effect over focal blur (though not "
+        "in physical units and independent of focal length). "
+        "Increase to get more blur",
+        min=0.01, max=1.00, default=0.50
+    )
 
     # Aperture adaptive sampling
     dof_samples_min: IntProperty(
-            name="Samples Min", description="Minimum number of rays to use for each pixel",
-            min=1, max=128, default=3)
+        name="Samples Min",
+        description="Minimum number of rays to use for each pixel",
+        min=1, max=128, default=3
+    )
 
     dof_samples_max: IntProperty(
-            name="Samples Max", description="Maximum number of rays to use for each pixel",
-            min=1, max=128, default=9)
+        name="Samples Max",
+        description="Maximum number of rays to use for each pixel",
+        min=1, max=128, default=9
+    )
 
     dof_variance: IntProperty(
-            name="Variance",
-            description="Minimum threshold (fractional value) for adaptive DOF sampling (up "
-                        "increases quality and render time). The value for the variance should "
-                        "be in the range of the smallest displayable color difference",
-            min=1, max=100000, soft_max=10000, default=8192)
+        name="Variance",
+        description="Minimum threshold (fractional value) for adaptive DOF sampling (up "
+        "increases quality and render time). The value for the variance should "
+        "be in the range of the smallest displayable color difference",
+        min=1, max=100000, soft_max=10000, default=8192
+    )
 
     dof_confidence: FloatProperty(
-            name="Confidence",
-            description="Probability to reach the real color value. Larger confidence values "
-                        "will lead to more samples, slower traces and better images",
-            min=0.01, max=0.99, default=0.20)
+        name="Confidence",
+        description="Probability to reach the real color value. Larger confidence values "
+                    "will lead to more samples, slower traces and better images",
+        min=0.01, max=0.99, default=0.20
+    )
 
     normal_enable: BoolProperty(name="Perturbated Camera", default=False)
+
     cam_normal: FloatProperty(name="Normal Strength", min=0.0, max=1.0, default=0.0)
+
     normal_patterns: EnumProperty(
-            name="Pattern",
-            description="",
-            items=(('agate', "Agate", ""), ('boxed', "Boxed", ""), ('bumps', "Bumps", ""), ('cells', "Cells", ""),
-                   ('crackle', "Crackle", ""),('dents', "Dents", ""),
-                   ('granite', "Granite", ""),
-                   ('leopard', "Leopard", ""),
-                   ('marble', "Marble", ""), ('onion', "Onion", ""), ('pavement', "Pavement", ""), ('planar', "Planar", ""),
-                   ('quilted', "Quilted", ""), ('ripples', "Ripples", ""),  ('radial', "Radial", ""),
-                   ('spherical', "Spherical", ""),('spiral1', "Spiral1", ""), ('spiral2', "Spiral2", ""), ('spotted', "Spotted", ""),
-                   ('square', "Square", ""),('tiling', "Tiling", ""),
-                   ('waves', "Waves", ""), ('wood', "Wood", ""),('wrinkles', "Wrinkles", "")),
-            default='agate')
+        name="Pattern",
+        description="",
+        items=(('agate', "Agate", ""), ('boxed', "Boxed", ""), ('bumps', "Bumps", ""), ('cells', "Cells", ""),
+               ('crackle', "Crackle", ""),('dents', "Dents", ""),
+               ('granite', "Granite", ""),
+               ('leopard', "Leopard", ""),
+               ('marble', "Marble", ""), ('onion', "Onion", ""), ('pavement', "Pavement", ""), ('planar', "Planar", ""),
+               ('quilted', "Quilted", ""), ('ripples', "Ripples", ""),  ('radial', "Radial", ""),
+               ('spherical', "Spherical", ""),('spiral1', "Spiral1", ""), ('spiral2', "Spiral2", ""), ('spotted', "Spotted", ""),
+               ('square', "Square", ""),('tiling', "Tiling", ""),
+               ('waves', "Waves", ""), ('wood', "Wood", ""),('wrinkles', "Wrinkles", "")),
+        default='agate',
+    )
+
     turbulence: FloatProperty(name="Turbulence", min=0.0, max=100.0, default=0.1)
+
     scale: FloatProperty(name="Scale", min=0.0,default=1.0)
 
     ##################################CustomPOV Code############################
     # Only DUMMIES below for now:
     replacement_text: StringProperty(
-            name="Texts in blend file",
-            description="Type the declared name in custom POV code or an external .inc "
-                        "it points at. camera {} expected",
-            default="")
+        name="Texts in blend file",
+        description="Type the declared name in custom POV code or an external .inc "
+        "it points at. camera {} expected",
+        default="",
+    )
 ###############################################################################
 # Light POV properties.
 ###############################################################################
 class RenderPovSettingsLight(PropertyGroup):
+
     """Declare light properties controllable in UI and translated to POV."""
-    #former Space properties from  removed Blender Internal
+
+    # former Space properties from  removed Blender Internal
     use_limited_texture_context: BoolProperty(
-            name="",
-            description="Use the limited version of texture user (for ‘old shading’ mode)",
-            default=True)
+        name="",
+        description="Use the limited version of texture user (for ‘old shading’ mode)",
+        default=True,
+    )
+
     texture_context: EnumProperty(
-            name="Texture context",
-            description="Type of texture data to display and edit",
-            items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures"
-                   ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures"
-                   ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures"
-                   ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures"
-                   ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures"
-                   ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures"
-            default = 'MATERIAL')
- 
+        name="Texture context",
+        description="Type of texture data to display and edit",
+        items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures"
+               ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures"
+               ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures"
+               ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures"
+               ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures"
+               ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures"
+        default = 'MATERIAL',
+    )
+
     shadow_method: EnumProperty(
-                name="Shadow",
-                description="",
-                items=(("NOSHADOW", "No Shadow", "No Shadow"),
-                       ("RAY_SHADOW", "Ray Shadow", "Ray Shadow, Use ray tracing for shadow")),
-                default="RAY_SHADOW")
+        name="Shadow",
+        description="",
+        items=(("NOSHADOW", "No Shadow", "No Shadow"),
+               ("RAY_SHADOW", "Ray Shadow", "Ray Shadow, Use ray tracing for shadow")),
+        default="RAY_SHADOW",
+    )
+
     active_texture_index: IntProperty(
-            name = "Index for texture_slots",
-            default = 0)             
+        name = "Index for texture_slots",
+        default = 0
+    )
+
     use_halo: BoolProperty(
-            name="Halo", description="Render spotlight with a volumetric halo",
-            default=False)
+        name="Halo",
+        description="Render spotlight with a volumetric halo",
+        default=False,
+    )
+
     halo_intensity: FloatProperty(
-            name="Halo intensity",
-            description="Brightness of the spotlight halo cone",
-            soft_min=0.0, soft_max=1.0, default=1.0)
+        name="Halo intensity",
+        description="Brightness of the spotlight halo cone",
+        soft_min=0.0, soft_max=1.0, default=1.0
+    )
+
     shadow_ray_samples_x: IntProperty(
-            name = "Number of samples taken extra (samples x samples)",
-            min=1, soft_max=64,
-            default = 1)
+        name = "Number of samples taken extra (samples x samples)",
+        min=1, soft_max=64,
+        default = 1,
+    )
+
     shadow_ray_samples_y: IntProperty(
-            name = "Number of samples taken extra (samples x samples)",
-            min=1, soft_max=64,
-            default = 1)
+        name = "Number of samples taken extra (samples x samples)",
+        min=1, soft_max=64,
+        default = 1,
+    )
+
     shadow_ray_sample_method: EnumProperty(
-            name="",
-            description="Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower",
-            items=(('ADAPTIVE_QMC', "", "Halton samples distribution", "",0),
-                   ('CONSTANT_QMC', "", "QMC samples distribution", "",1),
-                   ('CONSTANT_JITTERED', "", "Uses POV jitter keyword", "",2)), #"Show other data textures"
-            default = 'CONSTANT_JITTERED')
+        name="",
+        description="Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower",
+        items=(('ADAPTIVE_QMC', "", "Halton samples distribution", "",0),
+               ('CONSTANT_QMC', "", "QMC samples distribution", "",1),
+               ('CONSTANT_JITTERED', "", "Uses POV jitter keyword", "",2)), # "Show other data textures"
+        default = 'CONSTANT_JITTERED',
+    )
+
     use_jitter: BoolProperty(
-            name="Jitter", description="Use noise for sampling (Constant Jittered sampling)",
-            default=False)
+        name="Jitter",
+        description="Use noise for sampling (Constant Jittered sampling)",
+        default=False,
+    )
+
 ###############################################################################
 # World POV properties.
 ###############################################################################
 class RenderPovSettingsWorld(PropertyGroup):
+
     """Declare world properties controllable in UI and translated to POV."""
-    #former Space properties from  removed Blender Internal
+
+    # former Space properties from  removed Blender Internal
     use_limited_texture_context: BoolProperty(
-            name="",
-            description="Use the limited version of texture user (for ‘old shading’ mode)",
-            default=True)
+        name="",
+        description="Use the limited version of texture user (for ‘old shading’ mode)",
+        default=True,
+    )
+
     texture_context: EnumProperty(
-            name="Texture context",
-            description="Type of texture data to display and edit",
-            items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), #"Show material textures"
-                   ('WORLD', "", "Show world textures", "WORLD",1), #"Show world textures"
-                   ('LAMP', "", "Show lamp textures", "LIGHT",2), #"Show lamp textures"
-                   ('PARTICLES', "", "Show particles textures", "PARTICLES",3), #"Show particles textures"
-                   ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), #"Show linestyle textures"
-                   ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), #"Show other data textures"
-            default = 'MATERIAL')
+        name="Texture context",
+        description="Type of texture data to display and edit",
+        items=(('MATERIAL', "", "Show material textures", "MATERIAL",0), # "Show material textures"
+               ('WORLD', "", "Show world textures", "WORLD",1), # "Show world textures"
+               ('LAMP', "", "Show lamp textures", "LIGHT",2), # "Show lamp textures"
+               ('PARTICLES', "", "Show particles textures", "PARTICLES",3), # "Show particles textures"
+               ('LINESTYLE', "", "Show linestyle textures", "LINE_DATA",4), # "Show linestyle textures"
+               ('OTHER', "", "Show other data textures", "TEXTURE_DATA",5)), # "Show other data textures"
+        default = 'MATERIAL',
+    )
 
     use_sky_blend: BoolProperty(
-            name="Blend Sky", description="Render background with natural progression from horizon to zenith",
-            default=False)
+        name="Blend Sky",
+        description="Render background with natural progression from horizon to zenith",
+        default=False,
+    )
+
     use_sky_paper: BoolProperty(
-            name="Paper Sky", description="Flatten blend or texture coordinates",
-            default=False)
+        name="Paper Sky",
+        description="Flatten blend or texture coordinates",
+        default=False,
+    )
+
     use_sky_real: BoolProperty(
-            name="Real Sky", description="Render background with a real horizon, relative to the camera angle",
-            default=False)
-            
+        name="Real Sky",
+        description="Render background with a real horizon, relative to the camera angle",
+        default=False,
+    )
+
     horizon_color: FloatVectorProperty(
-            name="Horizon Color",
-            description="Color at the horizon",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR',
+        name="Horizon Color",
+        description="Color at the horizon",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR',
     )
+
     zenith_color: FloatVectorProperty(
-            name="Zenith Color",
-            description="Color at the zenith",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR',
+        name="Zenith Color",
+        description="Color at the zenith",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR',
     )
+
     ambient_color: FloatVectorProperty(
-            name="Ambient Color",
-            description="Ambient color of the world",
-            precision=4, step=0.01, min=0, soft_max=1,
-            default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR',
+        name="Ambient Color",
+        description="Ambient color of the world",
+        precision=4, step=0.01, min=0, soft_max=1,
+        default=(0.0, 0.0, 0.0), options={'ANIMATABLE'}, subtype='COLOR',
     )
     active_texture_index: IntProperty(
-            name = "Index for texture_slots",
-            default = 0)
+        name = "Index for texture_slots",
+        default = 0
+    )
+
+
 class WorldTextureSlot(PropertyGroup):
     """Declare world texture slot properties controllable in UI and translated to POV."""
+
     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)
+        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)
+        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="")
+        name="Object",
+        description="Object to use for mapping with Object texture coordinates",
+        default="",
+    )
 
     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")
+        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)
+        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)
+        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)
+        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)
+        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)
+        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)
+        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):
+# class WORLD_TEXTURE_SLOTS_UL_layerlist(bpy.types.UIList):
 #    texture_slots:
-    
+
 class WorldTextureSlots(bpy.props.PropertyGroup):
     index = bpy.prop.PropertyInt(name='index')
-    #foo  = random prop
+    # foo  = random prop
 
 bpy.types.World.texture_slots = bpy.props.CollectionProperty(type=PropertyGroup)
 
@@ -4429,13 +5181,13 @@ for i in range(18):  # length of world texture slots
 '''
 
 class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList):
-#    texture_slots:
+    # texture_slots:
     index: bpy.props.IntProperty(name='index')
-    #foo  = random prop
+    # foo  = random prop
     def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
         ob = data
         slot = item
-        #ma = slot.name
+        # ma = slot.name
         # draw_item must handle the three layout types... Usually 'DEFAULT' and 'COMPACT' can share the same code.
         if self.layout_type in {'DEFAULT', 'COMPACT'}:
             # You should always start your row layout by a label (icon + text), or a non-embossed text field,
@@ -4449,49 +5201,60 @@ class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList):
         # 'GRID' layout type should be as compact as possible (typically a single icon!).
         elif self.layout_type in {'GRID'}:
             layout.alignment = 'CENTER'
-            layout.label(text="", icon_value=icon)    
-    
+            layout.label(text="", icon_value=icon)
+
 
 ###############################################################################
 # Text POV properties.
 ###############################################################################
+
+
 class RenderPovSettingsText(PropertyGroup):
+
     """Declare text properties to use UI as an IDE or render text snippets to POV."""
+
     custom_code: EnumProperty(
-            name="Custom Code",
-            description="rendered source: Both adds text at the "
-                        "top of the exported POV file",
-            items=(("3dview", "View", ""),
-                   ("text", "Text", ""),
-                   ("both", "Both", "")),
-            default="text")
+        name="Custom Code",
+        description="rendered source: Both adds text at the "
+                    "top of the exported POV file",
+        items=(("3dview", "View", ""),
+               ("text", "Text", ""),
+               ("both", "Both", "")),
+        default="text",
+    )
 
 ###############################################################################
 # Povray Preferences.
 ###############################################################################
+
+
 class PovrayPreferences(AddonPreferences):
+
     """Declare preference variables to set up POV binary."""
+
     bl_idname = __name__
 
     branch_feature_set_povray: EnumProperty(
-                name="Feature Set",
-                description="Choose between official (POV-Ray) or (UberPOV) "
-                            "development branch features to write in the pov file",
-                items= (('povray', 'Official POV-Ray', '','PLUGIN', 0),
-                        ('uberpov', 'Unofficial UberPOV', '', 'PLUGIN', 1)),
-                default='povray'
-                )
+        name="Feature Set",
+        description="Choose between official (POV-Ray) or (UberPOV) "
+        "development branch features to write in the pov file",
+        items= (('povray', 'Official POV-Ray', '','PLUGIN', 0),
+                ('uberpov', 'Unofficial UberPOV', '', 'PLUGIN', 1)),
+        default='povray',
+    )
 
     filepath_povray: StringProperty(
-                name="Binary Location",
-                description="Path to renderer executable",
-                subtype='FILE_PATH',
-                )
+        name="Binary Location",
+        description="Path to renderer executable",
+        subtype='FILE_PATH',
+    )
+
     docpath_povray: StringProperty(
-                name="Includes Location",
-                description="Path to Insert Menu files",
-                subtype='FILE_PATH',
-                )
+        name="Includes Location",
+        description="Path to Insert Menu files",
+        subtype='FILE_PATH',
+    )
+
     def draw(self, context):
         layout = self.layout
         layout.prop(self, "branch_feature_set_povray")
@@ -4502,13 +5265,13 @@ class PovrayPreferences(AddonPreferences):
 classes = (
     PovrayPreferences,
     RenderPovSettingsCamera,
-    RenderPovSettingsLight,    
+    RenderPovSettingsLight,
     RenderPovSettingsWorld,
     MaterialTextureSlot,
     WorldTextureSlot,
     RenderPovSettingsMaterial,
     MaterialRaytraceTransparency,
-    MaterialRaytraceMirror, 
+    MaterialRaytraceMirror,
     MaterialSubsurfaceScattering,
     MaterialStrandSettings,
     RenderPovSettingsObject,
@@ -4520,17 +5283,17 @@ classes = (
 
 def register():
 
-    #bpy.utils.register_module(__name__) #DEPRECATED Now imported from bpy.utils import register_class
+    # bpy.utils.register_module(__name__) # DEPRECATED Now imported from bpy.utils import register_class
 
     for cls in classes:
         register_class(cls)
- 
+
     render.register()
     ui.register()
     primitives.register()
     nodes.register()
 
-    '''    
+    '''
         bpy.types.VIEW3D_MT_add.prepend(ui.menu_func_add)
         bpy.types.TOPBAR_MT_file_import.append(ui.menu_func_import)
         bpy.types.TEXT_MT_templates.append(ui.menu_func_templates)
@@ -4539,18 +5302,18 @@ def register():
         bpy.types.WORLD_PT_world.prepend(ui.world_panel_func)
         # was used for parametric objects but made the other addon unreachable on
         # unregister for other tools to use created a user action call instead
-        #addon_utils.enable("add_mesh_extra_objects", default_set=False, persistent=True)
+        # addon_utils.enable("add_mesh_extra_objects", default_set=False, persistent=True)
 
-        #bpy.types.TEXTURE_PT_context_texture.prepend(TEXTURE_PT_povray_type)
+        # bpy.types.TEXTURE_PT_context_texture.prepend(TEXTURE_PT_povray_type)
     '''
     bpy.types.NODE_HT_header.append(ui.menu_func_nodes)
     nodeitems_utils.register_node_categories("POVRAYNODES", node_categories)
     bpy.types.Scene.pov = PointerProperty(type=RenderPovSettingsScene)
-    #bpy.types.Modifier.pov = PointerProperty(type=RenderPovSettingsModifier)
+    # bpy.types.Modifier.pov = PointerProperty(type=RenderPovSettingsModifier)
     bpy.types.Material.pov_raytrace_transparency = PointerProperty(type=MaterialRaytraceTransparency)
     bpy.types.Material.pov = PointerProperty(type=RenderPovSettingsMaterial)
     bpy.types.Material.pov_subsurface_scattering = PointerProperty(type=MaterialSubsurfaceScattering)
-    bpy.types.Material.strand = PointerProperty(type= MaterialStrandSettings)
+    bpy.types.Material.strand = PointerProperty(type=MaterialStrandSettings)
     bpy.types.Material.pov_raytrace_mirror = PointerProperty(type=MaterialRaytraceMirror)
     bpy.types.Texture.pov = PointerProperty(type=RenderPovSettingsTexture)
     bpy.types.Object.pov = PointerProperty(type=RenderPovSettingsObject)
@@ -4558,11 +5321,10 @@ def register():
     bpy.types.Light.pov = PointerProperty(type=RenderPovSettingsLight)
     bpy.types.World.pov = PointerProperty(type=RenderPovSettingsWorld)
     bpy.types.Material.pov_texture_slots = CollectionProperty(type=MaterialTextureSlot)
-    bpy.types.World.texture_slots = CollectionProperty(type = WorldTextureSlot)
+    bpy.types.World.texture_slots = CollectionProperty(type=WorldTextureSlot)
     bpy.types.Text.pov = PointerProperty(type=RenderPovSettingsText)
 
 
-
 def unregister():
     del bpy.types.Scene.pov
     del bpy.types.Material.pov
@@ -4570,20 +5332,20 @@ def unregister():
     del bpy.types.Material.strand
     del bpy.types.Material.pov_raytrace_mirror
     del bpy.types.Material.pov_raytrace_transparency
-    #del bpy.types.Modifier.pov
+    # del bpy.types.Modifier.pov
     del bpy.types.Texture.pov
     del bpy.types.Object.pov
     del bpy.types.Camera.pov
     del bpy.types.Light.pov
     del bpy.types.World.pov
-    del bpy.types.Material.pov_texture_slots    
+    del bpy.types.Material.pov_texture_slots
     del bpy.types.Text.pov
 
     nodeitems_utils.unregister_node_categories("POVRAYNODES")
     bpy.types.NODE_HT_header.remove(ui.menu_func_nodes)
     '''
-    #bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type)
-    #addon_utils.disable("add_mesh_extra_objects", default_set=False)
+    # bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type)
+    # addon_utils.disable("add_mesh_extra_objects", default_set=False)
     bpy.types.WORLD_PT_POV_world.remove(ui.world_panel_func)
     bpy.types.LIGHT_PT_POV_light.remove(ui.light_panel_func)
     bpy.types.RENDER_PT_POV_radiosity.remove(ui.rad_panel_func)
@@ -4591,7 +5353,7 @@ def unregister():
     bpy.types.TOPBAR_MT_file_import.remove(ui.menu_func_import)
     bpy.types.VIEW3D_MT_add.remove(ui.menu_func_add)
     '''
-    #bpy.utils.unregister_module(__name__)
+    # bpy.utils.unregister_module(__name__)
 
     nodes.unregister()
     primitives.unregister()
@@ -4600,7 +5362,7 @@ def unregister():
 
     for cls in reversed(classes):
         unregister_class(cls)
- 
+
 
 
 if __name__ == "__main__":
diff --git a/render_povray/primitives.py b/render_povray/primitives.py
index c1e37ab35b776672b79b5d42f6d05d60a7cba3eb..4d10995849683025b38f50365d4256294efbb4ec 100644
--- a/render_povray/primitives.py
+++ b/render_povray/primitives.py
@@ -1468,10 +1468,10 @@ def pov_parametric_define(context, op, ob):
         bpy.ops.object.mode_set(mode="EDIT")
         bpy.ops.mesh.hide(unselected=False)
         bpy.ops.object.mode_set(mode="OBJECT")
-        
+
 class POVRAY_OT_parametric_add(bpy.types.Operator):
     """Add the representation of POV parametric surfaces using pov_parametric_define() function."""
-    
+
     bl_idname = "pov.addparametric"
     bl_label = "Parametric"
     bl_description = "Add Paramertic"
@@ -1517,7 +1517,7 @@ class POVRAY_OT_parametric_update(bpy.types.Operator):
 
     Delete its previous proxy geometry and rerun pov_parametric_define() function
     with the new parameters"""
-    
+
     bl_idname = "pov.parametric_update"
     bl_label = "Update"
     bl_description = "Update parametric object"
diff --git a/render_povray/render.py b/render_povray/render.py
index ec5b668961770e4886a7aa26da1d5242e0c35550..6af0b692d8ad57210c688d18158dcd5c1da87b26 100644
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -170,7 +170,7 @@ def string_strip_hyphen(name):
 
 def safety(name, Level):
     """append suffix characters to names of various material declinations.
-    
+
     Material declinations are necessary to POV syntax and used in shading.py
     by the povHasnoSpecularMaps function to create the finish map trick and
     the suffixes avoid name collisions.
@@ -180,7 +180,7 @@ def safety(name, Level):
         Level=1 is for texture with No specular nor Mirror reflection
         Level=2 is for texture with translation of spec and mir levels
         for when no map influences them
-        Level=3 is for texture with Maximum Spec and Mirror    
+        Level=3 is for texture with Maximum Spec and Mirror
     """
 
     try:
@@ -309,7 +309,7 @@ def write_global_setting(scene,file):
 def write_object_modifiers(scene,ob,File):
     """Translate some object level POV statements from Blender UI
     to POV syntax and write to exported file """
-    
+
     # Maybe return that string to be added instead of directly written.
 
     '''XXX WIP
@@ -410,7 +410,7 @@ def write_pov(filename, scene=None, info_callback=None):
     tab = setTab(scene.pov.indentation_character, scene.pov.indentation_spaces)
     if not scene.pov.tempfiles_enable:
         def tabWrite(str_o):
-            """Indent POV syntax from brackets levels and write to exported file """        
+            """Indent POV syntax from brackets levels and write to exported file """
             global tabLevel
             brackets = str_o.count("{") - str_o.count("}") + str_o.count("[") - str_o.count("]")
             if brackets < 0:
@@ -425,12 +425,12 @@ def write_pov(filename, scene=None, info_callback=None):
                 tabLevel = tabLevel + brackets
     else:
         def tabWrite(str_o):
-            """write directly to exported file if user checked autonamed temp files (faster)."""        
+            """write directly to exported file if user checked autonamed temp files (faster)."""
 
             file.write(str_o)
 
     def uniqueName(name, nameSeq):
-        """Increment any generated POV name that could get identical to avoid collisions"""        
+        """Increment any generated POV name that could get identical to avoid collisions"""
 
         if name not in nameSeq:
             name = string_strip_hyphen(name)
@@ -465,8 +465,8 @@ def write_pov(filename, scene=None, info_callback=None):
 
     def writeObjectMaterial(material, ob):
         """Translate some object level material from Blender UI (VS data level)
-        to POV interior{} syntax and write it to exported file """    
-    
+        to POV interior{} syntax and write it to exported file """
+
         # DH - modified some variables to be function local, avoiding RNA write
         # this should be checked to see if it is functionally correct
 
@@ -484,7 +484,7 @@ def write_pov(filename, scene=None, info_callback=None):
                 tabWrite("ior %.6f\n" % material.pov_raytrace_transparency.ior)
             elif material.pov.transparency_method=='Z_TRANSPARENCY':
                 tabWrite("interior {\n")
-                tabWrite("ior 1.0\n")                
+                tabWrite("ior 1.0\n")
             else:
                 tabWrite("interior {\n")
                 tabWrite("ior %.6f\n" % material.pov_raytrace_transparency.ior)
@@ -3606,7 +3606,7 @@ def write_pov(filename, scene=None, info_callback=None):
         tabWrite("}\n")
 
     def exportCustomCode():
-        """write all POV user defined custom code to exported file """    
+        """write all POV user defined custom code to exported file """
         # Write CurrentAnimation Frame for use in Custom POV Code
         file.write("#declare CURFRAMENUM = %d;\n" % bpy.context.scene.frame_current)
         #Change path and uncomment to add an animated include file by hand:
@@ -3828,7 +3828,7 @@ class PovrayRender(bpy.types.RenderEngine):
 
     @staticmethod
     def _locate_binary():
-        """Identify POV engine"""    
+        """Identify POV engine"""
         addon_prefs = bpy.context.preferences.addons[__package__].preferences
 
         # Use the system preference if its set.
@@ -3879,7 +3879,7 @@ class PovrayRender(bpy.types.RenderEngine):
         return ""
 
     def _export(self, depsgraph, povPath, renderImagePath):
-        """gather all necessary output files paths user defined and auto generated and export there"""    
+        """gather all necessary output files paths user defined and auto generated and export there"""
         import tempfile
         scene = bpy.context.scene
         if scene.pov.tempfiles_enable:
@@ -3989,7 +3989,7 @@ class PovrayRender(bpy.types.RenderEngine):
                     # and Windows does not know how to delete a file in use!
                     time.sleep(self.DELAY)
     def render(self, depsgraph):
-        """Export necessary files from text editor and render image."""    
+        """Export necessary files from text editor and render image."""
         import tempfile
         scene = bpy.context.scene
         r = scene.render
diff --git a/render_povray/shading.py b/render_povray/shading.py
index 7c229ecb5c11739b0daf172be90ad76b236409b3..0789824538f7f7dfe484b3bb1d50567e13193ef3 100644
--- a/render_povray/shading.py
+++ b/render_povray/shading.py
@@ -249,13 +249,13 @@ def writeMaterial(using_uberpov, DEF_MAT_NAME, scene, tabWrite, safety, comments
         for t in material.pov_texture_slots:
             idx += 1
             # index = material.pov.active_texture_index
-            slot = material.pov_texture_slots[idx] # [index]  
+            slot = material.pov_texture_slots[idx] # [index]
             povtex = slot.name
-            tex = bpy.data.textures[povtex]  
-        
+            tex = bpy.data.textures[povtex]
+
             if t and t.use and tex is not None:
-            
-            
+
+
                 if (tex.type == 'IMAGE' and tex.image) or tex.type != 'IMAGE':
                     #validPath
                     if(t and t.use and
@@ -272,10 +272,10 @@ def writeMaterial(using_uberpov, DEF_MAT_NAME, scene, tabWrite, safety, comments
 
 def exportPattern(texture, string_strip_hyphen):
     """Translate Blender procedural textures to POV patterns and write to pov file.
-    
+
     Function Patterns can be used to better access sub components of a pattern like
     grey values for influence mapping"""
-    
+
     tex=texture
     pat = tex.pov
     PATname = "PAT_%s"%string_strip_hyphen(bpy.path.clean_name(tex.name))
@@ -761,7 +761,7 @@ def writeTextureInfluence(mater, materialNames, LocalMaterialNames, path_image,
                             imageFormat, imgMap, imgMapTransforms, tabWrite, comments,
                             string_strip_hyphen, safety, col, os, preview_dir, unpacked_images):
     """Translate Blender texture influences to various POV texture tricks and write to pov file."""
-        
+
     material_finish = materialNames[mater.name]
     if mater.pov.use_transparency:
         trans = 1.0 - mater.pov.alpha
@@ -790,10 +790,10 @@ def writeTextureInfluence(mater, materialNames, LocalMaterialNames, path_image,
         for t in mater.pov_texture_slots:
             idx += 1
             # index = mater.pov.active_texture_index
-            slot = mater.pov_texture_slots[idx] # [index]  
+            slot = mater.pov_texture_slots[idx] # [index]
             povtex = slot.name
             tex = bpy.data.textures[povtex]
-            
+
         if t and (t.use and (tex is not None)):
             # 'NONE' ('NONE' type texture is different from no texture covered above)
             if (tex.type == 'NONE' and tex.pov.tex_pattern_type == 'emulator'):
@@ -1185,9 +1185,9 @@ def writeTextureInfluence(mater, materialNames, LocalMaterialNames, path_image,
     for t in mater.pov_texture_slots:
         idx += 1
         # index = mater.pov.active_texture_index
-        slot = mater.pov_texture_slots[idx] # [index]  
+        slot = mater.pov_texture_slots[idx] # [index]
         povtex = slot.name
-        tex = bpy.data.textures[povtex]    
+        tex = bpy.data.textures[povtex]
         if(t and t.use and ((tex.type == 'IMAGE' and tex.image) or tex.type != 'IMAGE') and
            (t.use_map_specular or t.use_map_raymir)):
             # Specular mapped textures would conflict with colored specular
diff --git a/render_povray/ui.py b/render_povray/ui.py
index 94092121334df4c7e5cfd6cf33eafa7d50276054..33d2daa42ad9ef1fbd09c2d5ef77ce6dd6556c2d 100644
--- a/render_povray/ui.py
+++ b/render_povray/ui.py
@@ -192,8 +192,8 @@ 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)): 
+        # 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
             subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
     except:
@@ -272,7 +272,7 @@ class WORLD_OT_POV_add_preset(AddPresetBase, Operator):
 
     # where to store the preset
     preset_subdir = "pov/world"
-    
+
 def check_material(mat):
     if mat is not None:
         if mat.use_nodes:
@@ -287,10 +287,10 @@ def simple_material(mat):
     if (mat is not None) and (not mat.use_nodes):
         return True
     return False
-    
+
 def check_add_mesh_extra_objects():
     """Test if Add mesh extra objects addon is activated
-    
+
     This addon is currently used to generate the proxy for POV parametric
     surface which is almost the same priciple as its Math xyz surface
     """
@@ -300,10 +300,10 @@ def check_add_mesh_extra_objects():
 
 def locate_docpath():
     """POV can be installed with some include files.
-    
+
     Get their path as defined in user preferences or registry keys for
     the user to be able to invoke them."""
-    
+
     addon_prefs = bpy.context.preferences.addons[__package__].preferences
     # Use the system preference if its set.
     pov_documents = addon_prefs.docpath_povray
@@ -338,7 +338,7 @@ def locate_docpath():
 
 def pov_context_tex_datablock(context):
     """Texture context type recreated as deprecated in blender 2.8"""
-    
+
     idblock = context.brush
     if idblock and bpy.context.scene.texture_context == 'OTHER':
         return idblock
@@ -351,7 +351,7 @@ def pov_context_tex_datablock(context):
     idblock = context.world
     if idblock:
         return idblock
-        
+
     idblock = context.light
     if idblock:
         return idblock
@@ -364,11 +364,11 @@ def pov_context_tex_datablock(context):
     idblock = context.line_style
     if idblock:
         return idblock
-        
+
 class RenderButtonsPanel():
     """Use this class to define buttons from the render tab of
     properties window."""
-    
+
     bl_space_type = 'PROPERTIES'
     bl_region_type = 'WINDOW'
     bl_context = "render"
@@ -670,7 +670,7 @@ class LIGHT_PT_POV_sunsky(PovLampButtonsPanel, Panel):
 class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel):
     bl_label =  "Shadow"
     COMPAT_ENGINES = {'POVRAY_RENDER'}
-    
+
     @classmethod
     def poll(cls, context):
         lamp = context.lamp
@@ -683,7 +683,7 @@ class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel):
         lamp = context.lamp
 
         layout.row().prop(lamp, "shadow_method", expand=True)
-        
+
         split = layout.split()
 
         col = split.column()
@@ -746,7 +746,7 @@ class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel):
                 elif lamp.shape == 'RECTANGLE':
                     sub.prop(lamp, "shadow_ray_samples_x", text="Samples X")
                     sub.prop(lamp, "shadow_ray_samples_y", text="Samples Y")
-            
+
 '''
         if lamp.shadow_method == 'NOSHADOW' and lamp.type == 'AREA':
             split = layout.split()
@@ -985,7 +985,7 @@ class WORLD_PT_POV_mist(WorldButtonsPanel, Panel):
         col.prop(world.mist_settings, "height")
 
         layout.prop(world.mist_settings, "falloff")
-        
+
 class RENDER_PT_POV_export_settings(RenderButtonsPanel, Panel):
     """Use this class to define pov ini settingss buttons."""
 
@@ -1058,11 +1058,11 @@ class RENDER_PT_POV_render_settings(RenderButtonsPanel, Panel):
 
         if sys.platform[:3] != "win":
             layout.prop(scene.pov, "sdl_window_enable", text="POV-Ray SDL Window")
-   
+
         col = layout.column()
         col.label(text="Main Path Tracing:")
         col.prop(scene.pov, "max_trace_level", text="Ray Depth")
-        align = True   
+        align = True
         layout.active = scene.pov.global_settings_advanced
         layout.prop(scene.pov,"charset")
         row = layout.row(align = align)
@@ -1077,15 +1077,15 @@ class RENDER_PT_POV_render_settings(RenderButtonsPanel, Panel):
         row.prop(scene.pov,"number_of_waves")
         row = layout.row(align = align)
         row.prop(scene.pov,"noise_generator")
-        
+
         split = layout.split()
         split.label(text="Shading:")
         split = layout.split()
-    
+
         row = split.row(align = align)
         row.prop(scene.pov, "use_shadows")
-        row.prop(scene.pov, "alpha_mode") 
-        
+        row.prop(scene.pov, "alpha_mode")
+
 class RENDER_PT_POV_photons(RenderButtonsPanel, Panel):
     """Use this class to define pov photons buttons."""
 
@@ -1473,7 +1473,7 @@ class MATERIAL_PT_POV_sss(MaterialButtonsPanel, Panel):
         sub.prop(sss, "back")
         col.separator()
         col.prop(sss, "error_threshold", text="Error")
-        
+
 class MATERIAL_PT_POV_activate_node(MaterialButtonsPanel, Panel):
     """Use this class to define an activate pov nodes button."""
 
@@ -1558,7 +1558,7 @@ class MATERIAL_PT_POV_mirror(MaterialButtonsPanel, Panel):
     bl_idname = "MATERIAL_PT_POV_raytrace_mirror"
     COMPAT_ENGINES = {'POVRAY_RENDER'}
 
-    
+
     @classmethod
     def poll(cls, context):
         mat = context.material
@@ -1677,12 +1677,12 @@ class MATERIAL_PT_POV_transp(MaterialButtonsPanel, Panel):
             sub.active = rayt.gloss_factor < 1.0
             sub.prop(rayt, "gloss_threshold", text="Threshold")
             sub.prop(rayt, "gloss_samples", text="Samples")
-        
+
 class MATERIAL_PT_POV_reflection(MaterialButtonsPanel, Panel):
     """Use this class to define more pov specific reflectivity buttons."""
 
     bl_label = "POV-Ray Reflection"
-    bl_parent_id = "MATERIAL_PT_POV_raytrace_mirror"    
+    bl_parent_id = "MATERIAL_PT_POV_raytrace_mirror"
     COMPAT_ENGINES = {'POVRAY_RENDER'}
 
     @classmethod
@@ -1718,8 +1718,8 @@ class MATERIAL_PT_POV_reflection(MaterialButtonsPanel, Panel):
 #group some native Blender (SSS) and POV (Fade)settings under such a parent panel?
 class MATERIAL_PT_POV_interior(MaterialButtonsPanel, Panel):
     bl_label = "POV-Ray Interior"
-    bl_idname = "material.pov_interior"    
-    #bl_parent_id = "material.absorption"    
+    bl_idname = "material.pov_interior"
+    #bl_parent_id = "material.absorption"
     COMPAT_ENGINES = {'POVRAY_RENDER'}
     @classmethod
     def poll(cls, context):
@@ -1731,14 +1731,14 @@ class MATERIAL_PT_POV_interior(MaterialButtonsPanel, Panel):
 
     def draw_header(self, context):
         mat = context.material
-'''   
+'''
 
 class MATERIAL_PT_POV_fade_color(MaterialButtonsPanel, Panel):
     """Use this class to define pov fading (absorption) color buttons."""
 
     bl_label = "POV-Ray Absorption"
     COMPAT_ENGINES = {'POVRAY_RENDER'}
-    #bl_parent_id = "material.pov_interior" 
+    #bl_parent_id = "material.pov_interior"
 
     @classmethod
     def poll(cls, context):
@@ -1859,7 +1859,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel):
         sub.label(text="Surface diffuse:")
         sub = col.column()
         sub.prop(tan, "blend_distance", text="Distance")
-        
+
 class MATERIAL_PT_POV_replacement_text(MaterialButtonsPanel, Panel):
     """Use this class to define pov custom code declared name field."""
 
@@ -1920,8 +1920,8 @@ class MATERIAL_TEXTURE_SLOTS_UL_List(UIList):
         material = context.material#.pov
         active_data = material
         #tex = context.texture #may be needed later?
-        
-        
+
+
         # We could write some code to decide which icon to use here...
         custom_icon = 'TEXTURE'
 
@@ -1932,7 +1932,7 @@ class MATERIAL_TEXTURE_SLOTS_UL_List(UIList):
         elif self.layout_type in {'GRID'}:
             layout.alignment = 'CENTER'
             layout.label("", icon = custom_icon)
-'''            
+'''
 class WORLD_TEXTURE_SLOTS_UL_List(UIList):
     """Use this class to show pov texture slots list.""" # XXX Not used yet
 
@@ -1943,8 +1943,8 @@ class WORLD_TEXTURE_SLOTS_UL_List(UIList):
         world = context.world#.pov
         active_data = world.pov
         #tex = context.texture #may be needed later?
-        
-        
+
+
         # We could write some code to decide which icon to use here...
         custom_icon = 'TEXTURE'
 
@@ -1955,7 +1955,7 @@ class WORLD_TEXTURE_SLOTS_UL_List(UIList):
         elif self.layout_type in {'GRID'}:
             layout.alignment = 'CENTER'
             layout.label("", icon = custom_icon)
-            
+
 class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList):
     """Use this class to show pov texture slots list."""
 
@@ -1980,7 +1980,7 @@ class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList):
         elif self.layout_type in {'GRID'}:
             layout.alignment = 'CENTER'
             layout.label(text="", icon_value=icon)
-            
+
 class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
     """Use this class to show pov texture context buttons."""
 
@@ -1991,7 +1991,7 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
     @classmethod
     def poll(cls, context):
         engine = context.scene.render.engine
-        return (engine in cls.COMPAT_ENGINES)        
+        return (engine in cls.COMPAT_ENGINES)
         # if not (hasattr(context, "texture_slot") or hasattr(context, "texture_node")):
         #     return False
         return ((context.material or
@@ -1999,14 +1999,14 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
                  context.light or
                  context.texture or
                  context.line_style or
-                 context.particle_system or 
+                 context.particle_system or
                  isinstance(context.space_data.pin_id, ParticleSettings) or
                  context.texture_user) and
                 (engine in cls.COMPAT_ENGINES))
 
     def draw(self, context):
         layout = self.layout
-        
+
         scene = context.scene
         layout.prop(scene, "texture_context", expand=True)
         if scene.texture_context == 'MATERIAL':
@@ -2017,7 +2017,7 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
             col.operator("pov.textureslotadd",icon='ADD',text='')
             col.operator("pov.textureslotremove",icon='REMOVE',text='')
             col.separator()
-            
+
             if mat.pov_texture_slots:
                 index = mat.pov.active_texture_index
                 slot = mat.pov_texture_slots[index]
@@ -2028,37 +2028,37 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
                 layout.prop_search(slot,'texture_search',bpy.data,'textures',text='')
             # else:
                 # for i in range(18):  # length of material texture slots
-                    # mat.pov_texture_slots.add()            
+                    # mat.pov_texture_slots.add()
 
-# Commented out below is a reminder of what existed in Blender Internal 
+# Commented out below is a reminder of what existed in Blender Internal
 # attributes need to be recreated
 '''
         slot = getattr(context, "texture_slot", None)
         node = getattr(context, "texture_node", None)
         space = context.space_data
-        
-        #attempt at replacing removed space_data 
+
+        #attempt at replacing removed space_data
         mtl = getattr(context, "material", None)
         if mtl != None:
-            spacedependant = mtl        
+            spacedependant = mtl
         wld = getattr(context, "world", None)
         if wld != None:
-            spacedependant = wld             
+            spacedependant = wld
         lgt = getattr(context, "light", None)
         if lgt != None:
-            spacedependant = lgt 
+            spacedependant = lgt
 
 
         #idblock = context.particle_system.settings
-            
+
         tex = getattr(context, "texture", None)
         if tex != None:
-            spacedependant = tex             
+            spacedependant = tex
+
 
 
-        
         scene = context.scene
-        idblock = scene.pov#pov_context_tex_datablock(context) 
+        idblock = scene.pov#pov_context_tex_datablock(context)
         pin_id = space.pin_id
 
         #spacedependant.use_limited_texture_context = True
@@ -2100,7 +2100,7 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
         tex_collection = (pin_id is None) and (node is None) and (spacedependant.texture_context not in ('LINESTYLE','OTHER'))
 
         if tex_collection:
-            
+
             pov = getattr(context, "pov", None)
             active_texture_index = getattr(spacedependant, "active_texture_index", None)
             print (pov)
@@ -2110,10 +2110,10 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel):
 
             row.template_list("TEXTURE_UL_texslots", "", idblock, "texture_slots",
                               idblock, "active_texture_index", rows=2, maxrows=16, type="DEFAULT")
-                              
+
             # row.template_list("WORLD_TEXTURE_SLOTS_UL_List", "texture_slots", world,
                               # world.texture_slots, world, "active_texture_index", rows=2)
-                              
+
             col = row.column(align=True)
             col.operator("texture.slot_move", text="", icon='TRIA_UP').type = 'UP'
             col.operator("texture.slot_move", text="", icon='TRIA_DOWN').type = 'DOWN'
@@ -2214,7 +2214,7 @@ class MATERIAL_OT_POV_texture_slot_remove(Operator):
         return {'FINISHED'}
 
 class TextureSlotPanel(TextureButtonsPanel):
-    """Use this class to show pov texture slots panel.""" 
+    """Use this class to show pov texture slots panel."""
 
     COMPAT_ENGINES = {'POVRAY_RENDER'}
 
@@ -2245,8 +2245,8 @@ class TEXTURE_PT_POV_type(TextureButtonsPanel, Panel):
         # row = layout.row()
         # row.template_list("WORLD_TEXTURE_SLOTS_UL_List", "texture_slots", world,
                           # world.texture_slots, world, "active_texture_index")
-        
-        
+
+
 class TEXTURE_PT_POV_preview(TextureButtonsPanel, Panel):
     """Use this class to define pov texture preview panel."""
 
@@ -2527,7 +2527,7 @@ class TEXTURE_PT_POV_influence(TextureSlotPanel, Panel):
         if isinstance(idblock, Material):
             split = layout.split()
 
-            col = split.column()       
+            col = split.column()
             if idblock.pov.type in {'SURFACE', 'WIRE'}:
 
                 split = layout.split()
@@ -3242,11 +3242,11 @@ class CAMERA_PT_POV_cam_dof(CameraDataButtonsPanel, Panel):
         col = flow.column()
         col.label(text="F-Stop value will export as")
         col.label(text="POV aperture : " + "%.3f" % (1/cam.dof.aperture_fstop*1000))
-        
+
         col = flow.column()
         col.prop(cam.pov, "dof_samples_min")
         col.prop(cam.pov, "dof_samples_max")
-        col.prop(cam.pov, "dof_variance")        
+        col.prop(cam.pov, "dof_variance")
         col.prop(cam.pov, "dof_confidence")
 
 
@@ -3296,7 +3296,7 @@ class CAMERA_PT_POV_replacement_text(CameraDataButtonsPanel, Panel):
 
 class TEXT_OT_POV_insert(Operator):
     """Use this class to create blender text editor operator to insert pov snippets like other pov IDEs."""
-    
+
     bl_idname = "text.povray_insert"
     bl_label = "Insert"
 
@@ -3416,7 +3416,7 @@ classes = (
     WORLD_MT_POV_presets,
     WORLD_OT_POV_add_preset,
     WORLD_TEXTURE_SLOTS_UL_List,
-    WORLD_PT_POV_mist,    
+    WORLD_PT_POV_mist,
     #RenderButtonsPanel,
     #ModifierButtonsPanel,
     #MaterialButtonsPanel,
@@ -3462,7 +3462,7 @@ classes = (
     MATERIAL_PT_POV_caustics,
     MATERIAL_PT_POV_replacement_text,
     TEXTURE_MT_POV_specials,
-    TEXTURE_PT_POV_context_texture,    
+    TEXTURE_PT_POV_context_texture,
     TEXTURE_PT_POV_type,
     TEXTURE_PT_POV_preview,
     TEXTURE_PT_POV_parameters,
@@ -3490,7 +3490,7 @@ classes = (
     # TEXTURE_PT_context,
     #TEXTURE_PT_POV_povray_texture_slots,
     TEXTURE_UL_POV_texture_slots,
-    MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist,    
+    MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist,
     MATERIAL_OT_POV_texture_slot_add,
     MATERIAL_OT_POV_texture_slot_remove,
     TEXTURE_PT_POV_influence
diff --git a/render_povray/update_files.py b/render_povray/update_files.py
index e0d4495d9aee79ef915e33ff10165759c68a075b..8b89c1f2abbdf5a49f1ff55c2a87f8dc15f0f93d 100644
--- a/render_povray/update_files.py
+++ b/render_povray/update_files.py
@@ -17,7 +17,7 @@
 # ##### END GPL LICENSE BLOCK #####
 
 # <pep8 compliant>
-"""update new variables to values from older API. 
+"""update new variables to values from older API.
 
 It does not have a UI and used to be found with F3 search field.
 This file needs an update."""