diff --git a/render_povray/ui.py b/render_povray/ui.py index 1cb03125b4e5d22ff6178098f3af2c68e1d90b99..94092121334df4c7e5cfd6cf33eafa7d50276054 100644 --- a/render_povray/ui.py +++ b/render_povray/ui.py @@ -17,7 +17,7 @@ # ##### END GPL LICENSE BLOCK ##### # <pep8 compliant> - +"""User interface for the POV tools""" import bpy import sys #really import here and in render.py? import os #really import here and in render.py? @@ -191,9 +191,9 @@ from bl_ui import properties_material for member in dir(properties_material): subclass = getattr(properties_material, member) try: - mat=bpy.context.active_object.active_material - if (mat and mat.pov.type == "SURFACE" - and not (mat.pov.material_use_nodes or mat.use_nodes)): + # mat=bpy.context.active_object.active_material + # if (mat and mat.pov.type == "SURFACE" + # and not (mat.pov.material_use_nodes or mat.use_nodes)): # and (engine in cls.COMPAT_ENGINES)) if subclasses were sorted subclass.COMPAT_ENGINES.add('POVRAY_RENDER') except: @@ -283,16 +283,27 @@ def check_material(mat): return False def simple_material(mat): + """Test if a material uses nodes""" 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 + """ if "add_mesh_extra_objects" in bpy.context.preferences.addons.keys(): return True return False 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 @@ -326,7 +337,8 @@ def locate_docpath(): return "" 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 @@ -354,6 +366,9 @@ def pov_context_tex_datablock(context): 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" @@ -365,6 +380,8 @@ class RenderButtonsPanel(): return (rd.engine in cls.COMPAT_ENGINES) class ModifierButtonsPanel(): + """Use this class to define buttons from the modifier tab of + properties window.""" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "modifier" @@ -377,6 +394,8 @@ class ModifierButtonsPanel(): return mods and (rd.engine in cls.COMPAT_ENGINES) class MaterialButtonsPanel(): + """Use this class to define buttons from the material tab of + properties window.""" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "material" @@ -390,6 +409,8 @@ class MaterialButtonsPanel(): class TextureButtonsPanel(): + """Use this class to define buttons from the texture tab of + properties window.""" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "texture" @@ -411,6 +432,8 @@ class TextureButtonsPanel(): class ObjectButtonsPanel(): + """Use this class to define buttons from the object tab of + properties window.""" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "object" @@ -423,6 +446,8 @@ class ObjectButtonsPanel(): return obj and (rd.engine in cls.COMPAT_ENGINES) class CameraDataButtonsPanel(): + """Use this class to define buttons from the camera data tab of + properties window.""" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "data" @@ -435,6 +460,8 @@ class CameraDataButtonsPanel(): return cam and (rd.engine in cls.COMPAT_ENGINES) class WorldButtonsPanel(): + """Use this class to define buttons from the world tab of + properties window.""" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "world" @@ -447,6 +474,8 @@ class WorldButtonsPanel(): return wld and (rd.engine in cls.COMPAT_ENGINES) class TextButtonsPanel(): + """Use this class to define buttons from the side tab of + text window.""" bl_space_type = 'TEXT_EDITOR' bl_region_type = 'UI' bl_label = "POV-Ray" @@ -467,6 +496,8 @@ properties_data_mesh.DATA_PT_context_mesh.COMPAT_ENGINES.add('POVRAY_RENDER') ## by recreating custom panels inheriting their properties class PovDataButtonsPanel(properties_data_mesh.MeshButtonsPanel): + """Use this class to define buttons from the edit data tab of + properties window.""" COMPAT_ENGINES = {'POVRAY_RENDER'} POV_OBJECT_TYPES = {'PLANE', 'BOX', 'SPHERE', 'CYLINDER', 'CONE', 'TORUS', 'BLOB', 'ISOSURFACE', 'SUPERELLIPSOID', 'SUPERTORUS', 'HEIGHT_FIELD', @@ -551,6 +582,8 @@ properties_data_light.DATA_PT_context_light.COMPAT_ENGINES.add('POVRAY_RENDER') ## make some native panels contextual to some object variable ## by recreating custom panels inheriting their properties class PovLampButtonsPanel(properties_data_light.DataButtonsPanel): + """Use this class to define buttons from the light data tab of + properties window.""" COMPAT_ENGINES = {'POVRAY_RENDER'} POV_OBJECT_TYPES = {'RAINBOW'} @@ -578,6 +611,8 @@ class LIGHT_PT_POV_light(PovLampButtonsPanel, Panel): draw = properties_data_light.DATA_PT_light.draw class LIGHT_MT_POV_presets(bpy.types.Menu): + """Use this class to define preset menu for pov lights.""" + bl_label = "Lamp Presets" preset_subdir = "pov/lamp" preset_operator = "script.execute_preset" @@ -585,6 +620,8 @@ class LIGHT_MT_POV_presets(bpy.types.Menu): class LIGHT_OT_POV_add_preset(AddPresetBase, Operator): + """Use this class to define pov world buttons.""" + '''Add a Lamp Preset''' bl_idname = "object.light_preset_add" bl_label = "Add Lamp Preset" @@ -843,6 +880,8 @@ class LIGHT_PT_POV_falloff_curve(PovLampButtonsPanel, Panel): draw = properties_data_light.DATA_PT_falloff_curve.draw class OBJECT_PT_POV_rainbow(PovLampButtonsPanel, Panel): + """Use this class to define buttons from the rainbow panel of + properties window. inheriting lamp buttons panel class""" bl_label = "POV-Ray Rainbow" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -886,6 +925,7 @@ del properties_data_light ############################################################################### class WORLD_PT_POV_world(WorldButtonsPanel, Panel): + """Use this class to define pov world buttons.""" bl_label = "World" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -916,6 +956,8 @@ class WORLD_PT_POV_world(WorldButtonsPanel, Panel): #row.prop(world, "color_range") class WORLD_PT_POV_mist(WorldButtonsPanel, Panel): + """Use this class to define pov mist buttons.""" + bl_label = "Mist" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -945,6 +987,8 @@ class WORLD_PT_POV_mist(WorldButtonsPanel, Panel): layout.prop(world.mist_settings, "falloff") class RENDER_PT_POV_export_settings(RenderButtonsPanel, Panel): + """Use this class to define pov ini settingss buttons.""" + bl_label = "Start Options" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -992,6 +1036,8 @@ class RENDER_PT_POV_export_settings(RenderButtonsPanel, Panel): class RENDER_PT_POV_render_settings(RenderButtonsPanel, Panel): + """Use this class to define pov render settings buttons.""" + bl_label = "Global Settings" bl_icon = 'SETTINGS' bl_options = {'DEFAULT_CLOSED'} @@ -1041,6 +1087,8 @@ class RENDER_PT_POV_render_settings(RenderButtonsPanel, Panel): row.prop(scene.pov, "alpha_mode") class RENDER_PT_POV_photons(RenderButtonsPanel, Panel): + """Use this class to define pov photons buttons.""" + bl_label = "Photons" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1085,6 +1133,8 @@ class RENDER_PT_POV_photons(RenderButtonsPanel, Panel): #end main photons class RENDER_PT_POV_antialias(RenderButtonsPanel, Panel): + """Use this class to define pov antialiasing buttons.""" + bl_label = "Anti-Aliasing" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1145,6 +1195,8 @@ class RENDER_PT_POV_antialias(RenderButtonsPanel, Panel): class RENDER_PT_POV_radiosity(RenderButtonsPanel, Panel): + """Use this class to define pov radiosity buttons.""" + bl_label = "Diffuse Radiosity" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1200,6 +1252,8 @@ class RENDER_PT_POV_radiosity(RenderButtonsPanel, Panel): class POV_RADIOSITY_MT_presets(bpy.types.Menu): + """Use this class to define pov radiosity presets menu.""" + bl_label = "Radiosity Presets" preset_subdir = "pov/radiosity" preset_operator = "script.execute_preset" @@ -1207,6 +1261,8 @@ class POV_RADIOSITY_MT_presets(bpy.types.Menu): class RENDER_OT_POV_radiosity_add_preset(AddPresetBase, Operator): + """Use this class to define pov radiosity add presets button.""" + '''Add a Radiosity Preset''' bl_idname = "scene.radiosity_preset_add" bl_label = "Add Radiosity Preset" @@ -1255,6 +1311,8 @@ def rad_panel_func(self, context): row.operator(RENDER_OT_POV_radiosity_add_preset.bl_idname, text="", icon='REMOVE').remove_active = True class RENDER_PT_POV_media(WorldButtonsPanel, Panel): + """Use this class to define a pov global atmospheric media buttons.""" + bl_label = "Atmosphere Media" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1304,6 +1362,8 @@ class RENDER_PT_POV_media(WorldButtonsPanel, Panel): ## layout.active = scene.pov.baking_enable class MODIFIERS_PT_POV_modifiers(ModifierButtonsPanel, Panel): + """Use this class to define pov modifier buttons. (For booleans)""" + bl_label = "POV-Ray" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1333,13 +1393,15 @@ class MODIFIERS_PT_POV_modifiers(ModifierButtonsPanel, Panel): col.prop(ob.pov, "inside_vector") class MATERIAL_MT_POV_sss_presets(bpy.types.Menu): + """Use this class to define pov sss preset menu.""" + bl_label = "SSS Presets" preset_subdir = "pov/material/sss" preset_operator = "script.execute_preset" draw = bpy.types.Menu.draw_preset class MATERIAL_OT_POV_sss_add_preset(AddPresetBase, Operator): - '''Add an SSS Preset''' + """Add an SSS Preset""" bl_idname = "material.sss_preset_add" bl_label = "Add SSS Preset" preset_menu = "MATERIAL_MT_POV_sss_presets" @@ -1360,6 +1422,8 @@ class MATERIAL_OT_POV_sss_add_preset(AddPresetBase, Operator): class MATERIAL_PT_POV_sss(MaterialButtonsPanel, Panel): + """Use this class to define pov sss buttons panel.""" + bl_label = "Subsurface Scattering" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1411,6 +1475,8 @@ class MATERIAL_PT_POV_sss(MaterialButtonsPanel, Panel): 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.""" + bl_label = "Activate Node Settings" bl_context = "material" bl_options = {'HIDE_HEADER'} @@ -1431,6 +1497,8 @@ class MATERIAL_PT_POV_activate_node(MaterialButtonsPanel, Panel): "material.pov.material_use_nodes" class MATERIAL_PT_POV_active_node(MaterialButtonsPanel, Panel): + """Use this class to show pov active node properties buttons.""" + bl_label = "Active Node Settings" bl_context = "material" bl_options = {'HIDE_HEADER'} @@ -1483,6 +1551,8 @@ class MATERIAL_PT_POV_active_node(MaterialButtonsPanel, Panel): layout.label(text="No active nodes!") class MATERIAL_PT_POV_mirror(MaterialButtonsPanel, Panel): + """Use this class to define standard material reflectivity (mirror) buttons.""" + bl_label = "Mirror" bl_options = {'DEFAULT_CLOSED'} bl_idname = "MATERIAL_PT_POV_raytrace_mirror" @@ -1543,6 +1613,8 @@ class MATERIAL_PT_POV_mirror(MaterialButtonsPanel, Panel): sub.prop(raym, "gloss_anisotropic", text="Anisotropic") class MATERIAL_PT_POV_transp(MaterialButtonsPanel, Panel): + """Use this class to define pov material transparency (alpha) buttons.""" + bl_label = "Transparency" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1607,6 +1679,8 @@ class MATERIAL_PT_POV_transp(MaterialButtonsPanel, Panel): 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" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1660,6 +1734,8 @@ class MATERIAL_PT_POV_interior(MaterialButtonsPanel, Panel): ''' 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" @@ -1690,6 +1766,8 @@ class MATERIAL_PT_POV_fade_color(MaterialButtonsPanel, Panel): class MATERIAL_PT_POV_caustics(MaterialButtonsPanel, Panel): + """Use this class to define pov caustics buttons.""" + bl_label = "Caustics" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1735,6 +1813,8 @@ class MATERIAL_PT_POV_caustics(MaterialButtonsPanel, Panel): col.label(text="but you didn't chose any !") class MATERIAL_PT_strand(MaterialButtonsPanel, Panel): + """Use this class to define Blender strand antialiasing buttons.""" + bl_label = "Strand" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1781,6 +1861,8 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel): 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.""" + bl_label = "Custom POV Code" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1795,6 +1877,8 @@ class MATERIAL_PT_POV_replacement_text(MaterialButtonsPanel, Panel): col.prop(mat.pov, "replacement_text", text="") class TEXTURE_MT_POV_specials(bpy.types.Menu): + """Use this class to define pov texture slot operations buttons.""" + bl_label = "Texture Specials" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1805,6 +1889,8 @@ class TEXTURE_MT_POV_specials(bpy.types.Menu): layout.operator("texture.slot_paste", icon='PASTEDOWN') class TEXTURE_UL_POV_texture_slots(bpy.types.UIList): + """Use this class to show pov texture slots list.""" # used? + COMPAT_ENGINES = {'POVRAY_RENDER'} def draw_item(self, context, layout, data, item, icon, active_data, active_propname): ob = data @@ -1848,7 +1934,8 @@ class MATERIAL_TEXTURE_SLOTS_UL_List(UIList): layout.label("", icon = custom_icon) ''' class WORLD_TEXTURE_SLOTS_UL_List(UIList): - """Texture Slots UIList.""" + """Use this class to show pov texture slots list.""" # XXX Not used yet + def draw_item(self, context, layout, world, item, icon, active_data, @@ -1870,6 +1957,8 @@ class WORLD_TEXTURE_SLOTS_UL_List(UIList): layout.label("", icon = custom_icon) class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList): + """Use this class to show pov texture slots list.""" + # texture_slots: index: bpy.props.IntProperty(name='index') #foo = random prop @@ -1893,6 +1982,8 @@ class MATERIAL_TEXTURE_SLOTS_UL_POV_layerlist(bpy.types.UIList): layout.label(text="", icon_value=icon) class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): + """Use this class to show pov texture context buttons.""" + bl_label = "" bl_options = {'HIDE_HEADER'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -1938,6 +2029,9 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): # else: # for i in range(18): # length of material texture slots # mat.pov_texture_slots.add() + +# 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) @@ -2045,6 +2139,8 @@ class TEXTURE_PT_POV_context_texture(TextureButtonsPanel, Panel): split.label(text="Type:") ''' class TEXTURE_PT_colors(TextureButtonsPanel, Panel): + """Use this class to show pov color ramps.""" + bl_label = "Colors" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -2080,6 +2176,8 @@ class TEXTURE_PT_colors(TextureButtonsPanel, Panel): class MATERIAL_OT_POV_texture_slot_add(Operator): + """Use this class for the add texture slot button.""" + bl_idname = "pov.textureslotadd" bl_label = "Add" bl_description = "Add texture_slot" @@ -2099,6 +2197,8 @@ class MATERIAL_OT_POV_texture_slot_add(Operator): class MATERIAL_OT_POV_texture_slot_remove(Operator): + """Use this class for the remove texture slot button.""" + bl_idname = "pov.textureslotremove" bl_label = "Remove" bl_description = "Remove texture_slot" @@ -2114,6 +2214,8 @@ class MATERIAL_OT_POV_texture_slot_remove(Operator): return {'FINISHED'} class TextureSlotPanel(TextureButtonsPanel): + """Use this class to show pov texture slots panel.""" + COMPAT_ENGINES = {'POVRAY_RENDER'} @classmethod @@ -2125,6 +2227,8 @@ class TextureSlotPanel(TextureButtonsPanel): return TextureButtonsPanel.poll(cls, context) and (engine in cls.COMPAT_ENGINES) class TEXTURE_PT_POV_type(TextureButtonsPanel, Panel): + """Use this class to define pov texture type buttons.""" + bl_label = "POV Textures" COMPAT_ENGINES = {'POVRAY_RENDER'} bl_options = {'HIDE_HEADER'} @@ -2144,6 +2248,8 @@ class TEXTURE_PT_POV_type(TextureButtonsPanel, Panel): class TEXTURE_PT_POV_preview(TextureButtonsPanel, Panel): + """Use this class to define pov texture preview panel.""" + bl_label = "Preview" COMPAT_ENGINES = {'POVRAY_RENDER'} bl_options = {'HIDE_HEADER'} @@ -2171,6 +2277,8 @@ class TEXTURE_PT_POV_preview(TextureButtonsPanel, Panel): class TEXTURE_PT_POV_parameters(TextureButtonsPanel, Panel): + """Use this class to define pov texture pattern buttons.""" + bl_label = "POV Pattern Options" COMPAT_ENGINES = {'POVRAY_RENDER'} def draw(self, context): @@ -2379,6 +2487,8 @@ class TEXTURE_PT_POV_parameters(TextureButtonsPanel, Panel): row.prop(tex.pov, "modifier_omega", text="Omega") class TEXTURE_PT_POV_influence(TextureSlotPanel, Panel): + """Use this class to define pov texture influence buttons.""" + bl_label = "Influence" COMPAT_ENGINES = {'POVRAY_RENDER'} bl_space_type = 'PROPERTIES' @@ -2571,6 +2681,8 @@ class TEXTURE_PT_POV_influence(TextureSlotPanel, Panel): class TEXTURE_PT_POV_tex_gamma(TextureButtonsPanel, Panel): + """Use this class to define pov texture gamma buttons.""" + bl_label = "Image Gamma" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -2603,6 +2715,8 @@ class TEXTURE_PT_POV_tex_gamma(TextureButtonsPanel, Panel): class OBJECT_PT_POV_obj_parameters(ObjectButtonsPanel, Panel): + """Use this class to define pov specific object level options buttons.""" + bl_label = "POV" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -2653,6 +2767,8 @@ class OBJECT_PT_POV_obj_parameters(ObjectButtonsPanel, Panel): # col.prop(obj.pov,"addboundorclip",text=text) class OBJECT_PT_POV_obj_sphere(PovDataButtonsPanel, Panel): + """Use this class to define pov sphere primitive parameters buttons.""" + bl_label = "POV Sphere" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2686,6 +2802,8 @@ class OBJECT_PT_POV_obj_sphere(PovDataButtonsPanel, Panel): class OBJECT_PT_POV_obj_cylinder(PovDataButtonsPanel, Panel): + """Use this class to define pov cylinder primitive parameters buttons.""" + bl_label = "POV Cylinder" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2720,6 +2838,8 @@ class OBJECT_PT_POV_obj_cylinder(PovDataButtonsPanel, Panel): col.prop(obj.pov, "cylinder_location_cap") class OBJECT_PT_POV_obj_cone(PovDataButtonsPanel, Panel): + """Use this class to define pov cone primitive parameters buttons.""" + bl_label = "POV Cone" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2757,6 +2877,8 @@ class OBJECT_PT_POV_obj_cone(PovDataButtonsPanel, Panel): col.prop(obj.pov, "cone_height", text="Height of the cone") class OBJECT_PT_POV_obj_superellipsoid(PovDataButtonsPanel, Panel): + """Use this class to define pov superellipsoid primitive parameters buttons.""" + bl_label = "POV Superquadric ellipsoid" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2797,6 +2919,8 @@ class OBJECT_PT_POV_obj_superellipsoid(PovDataButtonsPanel, Panel): class OBJECT_PT_POV_obj_torus(PovDataButtonsPanel, Panel): + """Use this class to define pov torus primitive parameters buttons.""" + bl_label = "POV Torus" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2834,6 +2958,8 @@ class OBJECT_PT_POV_obj_torus(PovDataButtonsPanel, Panel): col.prop(obj.pov, "torus_minor_segments") class OBJECT_PT_POV_obj_supertorus(PovDataButtonsPanel, Panel): + """Use this class to define pov supertorus primitive parameters buttons.""" + bl_label = "POV SuperTorus" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2886,6 +3012,8 @@ class OBJECT_PT_POV_obj_supertorus(PovDataButtonsPanel, Panel): col.prop(obj.pov, "st_max_gradient") class OBJECT_PT_POV_obj_parametric(PovDataButtonsPanel, Panel): + """Use this class to define pov parametric surface primitive parameters buttons.""" + bl_label = "POV Parametric surface" COMPAT_ENGINES = {'POVRAY_RENDER'} #bl_options = {'HIDE_HEADER'} @@ -2930,6 +3058,8 @@ class OBJECT_PT_POV_obj_parametric(PovDataButtonsPanel, Panel): class OBJECT_PT_povray_replacement_text(ObjectButtonsPanel, Panel): + """Use this class to define pov object replacement field.""" + bl_label = "Custom POV Code" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -2948,7 +3078,7 @@ class OBJECT_PT_povray_replacement_text(ObjectButtonsPanel, Panel): class VIEW_MT_POV_primitives_add(bpy.types.Menu): - """Define the menu with presets""" + """Define the primitives menu with presets""" bl_idname = "VIEW_MT_POV_primitives_add" bl_label = "Povray" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -2965,6 +3095,8 @@ class VIEW_MT_POV_primitives_add(bpy.types.Menu): layout.menu(VIEW_MT_POV_import.bl_idname, text = "Import",icon="IMPORT") class VIEW_MT_POV_Basic_Shapes(bpy.types.Menu): + """Use this class to sort simple primitives menu entries.""" + bl_idname = "POVRAY_MT_basic_shape_tools" bl_label = "Basic_shapes" @@ -3012,6 +3144,8 @@ class VIEW_MT_POV_Basic_Shapes(bpy.types.Menu): layout.operator("pov.addparametric", text="Parametric",icon = 'SCRIPTPLUGINS') class VIEW_MT_POV_import(bpy.types.Menu): + """Use this class for the import menu.""" + bl_idname = "POVRAY_MT_import_tools" bl_label = "Import" @@ -3084,6 +3218,8 @@ def menu_func_nodes(self, context): # Camera Povray Settings ############################################################################### class CAMERA_PT_POV_cam_dof(CameraDataButtonsPanel, Panel): + """Use this class for camera depth of field focal blur buttons.""" + bl_label = "POV Aperture" COMPAT_ENGINES = {'POVRAY_RENDER'} bl_parent_id = "DATA_PT_camera_dof_aperture" @@ -3116,6 +3252,8 @@ class CAMERA_PT_POV_cam_dof(CameraDataButtonsPanel, Panel): class CAMERA_PT_POV_cam_nor(CameraDataButtonsPanel, Panel): + """Use this class for camera normal perturbation buttons.""" + bl_label = "POV Perturbation" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -3138,6 +3276,8 @@ class CAMERA_PT_POV_cam_nor(CameraDataButtonsPanel, Panel): class CAMERA_PT_POV_replacement_text(CameraDataButtonsPanel, Panel): + """Use this class for camera text replacement field.""" + bl_label = "Custom POV Code" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -3155,7 +3295,8 @@ class CAMERA_PT_POV_replacement_text(CameraDataButtonsPanel, Panel): ############################################################################### class TEXT_OT_POV_insert(Operator): - """Tooltip""" + """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" @@ -3180,6 +3321,8 @@ def validinsert(ext): return ext in {".txt",".inc",".pov"} class TEXT_MT_POV_insert(bpy.types.Menu): + """Use this class to create a menu launcher in text editor for the TEXT_OT_POV_insert operator .""" + bl_label = "Insert" bl_idname = "TEXT_MT_POV_insert" @@ -3200,6 +3343,8 @@ class TEXT_MT_POV_insert(bpy.types.Menu): ) class TEXT_PT_POV_custom_code(TextButtonsPanel, Panel): + """Use this class to create a panel in text editor for the user to decide if he renders text only or adds to 3d scene.""" + bl_label = "POV" COMPAT_ENGINES = {'POVRAY_RENDER'} @@ -3246,6 +3391,8 @@ class TEXT_PT_POV_custom_code(TextButtonsPanel, Panel): # Text editor templates from header menu class TEXT_MT_POV_templates(bpy.types.Menu): + """Use this class to create a menu for the same pov templates scenes as other pov IDEs.""" + bl_label = "POV" # We list templates on file evaluation, we can assume they are static data,