Newer
Older
name="Move Z",
description="",
name="Scale X",
description="",
name="Scale Y",
description="",
name="Scale Z",
description="",
min=0.0, max=10000.0, default=1.0)
Bastien Montagne
committed
###############################################################################
# Object POV properties.
###############################################################################
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')
Campbell Barton
committed
# Importance sampling
importance_value: FloatProperty(
Campbell Barton
committed
description="Priority value relative to other objects for sampling radiosity rays. "
"Increase to get more radiosity rays at comparatively small yet "
Bastien Montagne
committed
"bright objects",
Maurice Raybaud
committed
min=0.01, max=1.00, default=0.50)
Campbell Barton
committed
# Collect photons
name="Receive Photon Caustics",
Campbell Barton
committed
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)",
Campbell Barton
committed
# Photons spacing_multiplier
spacing_multiplier: FloatProperty(
Maurice Raybaud
committed
name="Photons Spacing Multiplier",
Campbell Barton
committed
description="Multiplier value relative to global spacing of photons. "
"Decrease by half to get 4x more photons at surface of "
Maurice Raybaud
committed
"this object (or 8x media photons than specified in the globals",
min=0.01, max=1.00, default=1.00)
Bastien Montagne
committed
##################################CustomPOV Code############################
Campbell Barton
committed
# Only DUMMIES below for now:
replacement_text: StringProperty(
Bastien Montagne
committed
name="Declared name:",
Campbell Barton
committed
description="Type the declared name in custom POV code or an external .inc "
Bastien Montagne
committed
"it points at. Any POV shape expected e.g: isosurface {}",
default="")
#############POV-Ray specific object properties.############################
object_as: StringProperty(maxlen=1024)
imported_loc: FloatVectorProperty(
name="Imported Pov location",
default=(0.0, 0.0, 0.0))
imported_loc_cap: FloatVectorProperty(
Maurice Raybaud
committed
name="Imported Pov location",
Maurice Raybaud
committed
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
name="Povray Shape Type",
items=(("birail", "Birail", ""),
("cairo", "Cairo", ""),
("lathe", "Lathe", ""),
("loft", "Loft", ""),
("prism", "Prism", ""),
("sphere_sweep", "Sphere Sweep", "")),
default="sphere_sweep")
name="Mesh Write As",
items=(("blobgrid", "Blob Grid", ""),
("grid", "Grid", ""),
("mesh", "Mesh", "")),
default="mesh")
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(
# name="Power", description="Fake caustics power",
# min=0.0, max=10.0,default=0.0)
# target = BoolProperty(name="Target",description="",default=False)
# target_value = FloatProperty(
# name="Value", description="",
# min=0.0, max=1.0,default=1.0)
# refraction = BoolProperty(name="Refraction",description="",default=False)
# dispersion = BoolProperty(name="Dispersion",description="",default=False)
# dispersion_value = FloatProperty(
# name="Dispersion", description="Good values are 1.01 to 1.1. ",
# min=1.0, max=1.2,default=1.01)
# dispersion_samples = IntProperty(name="Samples",min=2, max=100,default=7)
# reflection = BoolProperty(name="Reflection",description="",default=False)
# pass_through = BoolProperty(name="Pass through",description="",default=False)
no_shadow: BoolProperty(name="No Shadow",default=False)
no_image: BoolProperty(name="No Image",default=False)
no_reflection: BoolProperty(name="No Reflection",default=False)
no_radiosity: BoolProperty(name="No Radiosity",default=False)
inverse: BoolProperty(name="Inverse",default=False)
sturm: BoolProperty(name="Sturm",default=False)
double_illuminate: BoolProperty(name="Double Illuminate",default=False)
hierarchy: BoolProperty(name="Hierarchy",default=False)
hollow: BoolProperty(name="Hollow",default=False)
name="Boundorclip",
items=(("none", "None", ""),
("bounded_by", "Bounded_by", ""),
("clipped_by", "Clipped_by", "")),
default="none")
boundorclipob: StringProperty(maxlen=1024)
addboundorclip: BoolProperty(description="",default=False)
blob_threshold: FloatProperty(name="Threshold",min=0.00, max=10.0, default=0.6)
blob_strength: FloatProperty(name="Strength",min=-10.00, max=10.0, default=1.00)
res_u: IntProperty(name="U",min=100, max=1000, default=500)
res_v: IntProperty(name="V",min=100, max=1000, default=500)
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)
threshold: FloatProperty(name="Threshold",min=0.0, max=10.0, default=0.00)
accuracy: FloatProperty(name="Accuracy",min=0.0001, max=0.1, default=0.001)
max_gradient: FloatProperty(name="Max Gradient",min=0.0, max=100.0, default=5.0)
all_intersections: BoolProperty(name="All Intersections",default=False)
max_trace: IntProperty(name="Max Trace",min=1, max=100,default=1)
Maurice Raybaud
committed
def prop_update_cylinder(self, context):
if bpy.ops.pov.cylinder_update.poll():
bpy.ops.pov.cylinder_update()
cylinder_radius: FloatProperty(name="Cylinder R",min=0.00, max=10.0, default=0.04, update=prop_update_cylinder)
cylinder_location_cap: FloatVectorProperty(
Maurice Raybaud
committed
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(
Maurice Raybaud
committed
name="Imported Pov location",
Maurice Raybaud
committed
default=(0.0, 0.0, 0.0))
imported_cyl_loc_cap: FloatVectorProperty(
Maurice Raybaud
committed
name="Imported Pov location",
Maurice Raybaud
committed
default=(0.0, 0.0, 2.0))
def prop_update_sphere(self, context):
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):
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 = "Cap radius", description = "The second radius of the cone",
default = 0.3, min = 0.0, max = 100.0, update=prop_update_cone)
name = "Segments", description = "Radial segmentation of proxy mesh",
default = 16, min = 3, max = 265, 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):
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)
maxlen=1024, default = "cos(v)*(1+cos(u))*sin(v/8)", update=prop_update_parametric)
maxlen=1024, default = "sin(u)*sin(v/8)+cos(v/8)*1.5", update=prop_update_parametric)
maxlen=1024, default = "sin(v)*(1+cos(u))*sin(v/8)", update=prop_update_parametric)
###########Torus
def prop_update_torus(self, context):
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)
torus_minor_segments: IntProperty(
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)
torus_minor_radius: FloatProperty(
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)
quality: IntProperty(name = "Quality",
description = "",
default = 100, min = 1, max = 100)
hf_filename: StringProperty(maxlen = 1024)
name="Gamma",
description="Gamma",
min=0.0001, max=20.0, default=1.0)
name="Premultiplied",
description="Premultiplied",
default=True)
name="Smooth",
description="Smooth",
default=False)
name="Water Level",
description="Wather Level",
min=0.00, max=1.00, default=0.0)
name="Hierarchy",
description="Height field hierarchy",
default=True)
##############Superellipsoid
def prop_update_superellipsoid(self, context):
bpy.ops.pov.superellipsoid_update()
name="Parameter 1",
description="",
min=0.00, max=10.0, default=0.04)
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)
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="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):
bpy.ops.pov.supertorus_update()
name="Major radius",
description="Major radius",
min=0.00, max=100.00, default=1.0,
update=prop_update_supertorus)
name="Minor radius",
description="Minor radius",
min=0.00, max=100.00, default=0.25,
update=prop_update_supertorus)
name="Ring",
description="Ring 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)
name="Accuracy",
description="Supertorus accuracy",
min=0.00001, max=1.00, default=0.001)
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)
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",
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):
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-Ray Constructive Solid Geometry", "")),
default="BMESH")
#################Avogadro
# filename_ext = ".png"
# filter_glob = StringProperty(
# default="*.exr;*.gif;*.hdr;*.iff;*.jpeg;*.jpg;*.pgm;*.png;*.pot;*.ppm;*.sys;*.tga;*.tiff;*.EXR;*.GIF;*.HDR;*.IFF;*.JPEG;*.JPG;*.PGM;*.PNG;*.POT;*.PPM;*.SYS;*.TGA;*.TIFF",
# options={'HIDDEN'},
# )
Bastien Montagne
committed
###############################################################################
# Camera POV properties.
###############################################################################
class RenderPovSettingsCamera(PropertyGroup):
Bastien Montagne
committed
name="Depth Of Field", description="EnablePOV-Ray Depth Of Field ",
Campbell Barton
committed
# Aperture (Intensity of the Blur)
Campbell Barton
committed
description="Similar to a real camera's aperture effect over focal blur (though not "
"in physical units and independent of focal length). "
Bastien Montagne
committed
"Increase to get more blur",
min=0.01, max=1.00, default=0.50)
Campbell Barton
committed
# Aperture adaptive sampling
Bastien Montagne
committed
name="Samples Min", description="Minimum number of rays to use for each pixel",
min=1, max=128, default=3)
Bastien Montagne
committed
name="Samples Max", description="Maximum number of rays to use for each pixel",
min=1, max=128, default=9)
Campbell Barton
committed
description="Minimum threshold (fractional value) for adaptive DOF sampling (up "
"increases quality and render time). The value for the variance should "
Bastien Montagne
committed
"be in the range of the smallest displayable color difference",
min=1, max=100000, soft_max=10000, default=8192)
Campbell Barton
committed
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')
turbulence: FloatProperty(name="Turbulence", min=0.0, max=100.0, default=0.1)
scale: FloatProperty(name="Scale", min=0.0,default=1.0)
Bastien Montagne
committed
##################################CustomPOV Code############################
Campbell Barton
committed
# Only DUMMIES below for now:
replacement_text: StringProperty(
Bastien Montagne
committed
name="Texts in blend file",
Campbell Barton
committed
description="Type the declared name in custom POV code or an external .inc "
Bastien Montagne
committed
"it points at. camera {} expected",
default="")
###############################################################################
# World POV properties.
###############################################################################
class RenderPovSettingsWorld(PropertyGroup):
use_sky_blend: BoolProperty(
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)
use_sky_real: BoolProperty(
name="Real Sky", description="Render background with a real horizon, relative to the camera angle",
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
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',
)
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',
)
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',
)
Bastien Montagne
committed
###############################################################################
# Text POV properties.
###############################################################################
class RenderPovSettingsText(PropertyGroup):
Maurice Raybaud
committed
name="Custom Code",
Maurice Raybaud
committed
description="rendered source: Both adds text at the "
"top of the exported POV-Ray file",
items=(("3dview", "View", ""),
("text", "Text", ""),
("both", "Both", "")),
default="text")
###############################################################################
# Povray Preferences.
###############################################################################
class PovrayPreferences(AddonPreferences):
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'
)
filepath_povray: StringProperty(
name="Binary Location",
description="Path to renderer executable",
subtype='FILE_PATH',
)
Maurice Raybaud
committed
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")
layout.prop(self, "filepath_povray")
Maurice Raybaud
committed
layout.prop(self, "docpath_povray")
classes = (
PovrayPreferences,
RenderPovSettingsCamera,
RenderPovSettingsWorld,
RenderPovSettingsMaterial,
MaterialRaytraceMirror,
MaterialSubsurfaceScattering,
RenderPovSettingsObject,
RenderPovSettingsScene,
RenderPovSettingsText,
RenderPovSettingsTexture,
)
Bastien Montagne
committed
def register():
#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)
bpy.types.RENDER_PT_povray_radiosity.prepend(ui.rad_panel_func)
bpy.types.LIGHT_PT_POV_light.prepend(ui.light_panel_func)
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)
#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)
Bastien Montagne
committed
bpy.types.Scene.pov = PointerProperty(type=RenderPovSettingsScene)
#bpy.types.Modifier.pov = PointerProperty(type=RenderPovSettingsModifier)
Bastien Montagne
committed
bpy.types.Material.pov = PointerProperty(type=RenderPovSettingsMaterial)
bpy.types.Material.pov_subsurface_scattering = PointerProperty(type=MaterialSubsurfaceScattering)
bpy.types.Material.pov_raytrace_mirror = PointerProperty(type=MaterialRaytraceMirror)
Bastien Montagne
committed
bpy.types.Texture.pov = PointerProperty(type=RenderPovSettingsTexture)
bpy.types.Object.pov = PointerProperty(type=RenderPovSettingsObject)
bpy.types.Camera.pov = PointerProperty(type=RenderPovSettingsCamera)
bpy.types.World.pov = PointerProperty(type=RenderPovSettingsWorld)
Bastien Montagne
committed
bpy.types.Text.pov = PointerProperty(type=RenderPovSettingsText)
Bastien Montagne
committed
Bastien Montagne
committed
def unregister():
del bpy.types.Scene.pov
del bpy.types.Material.pov
del bpy.types.Material.pov_subsurface_scattering
Bastien Montagne
committed
del bpy.types.Texture.pov
del bpy.types.Object.pov
del bpy.types.Camera.pov
Bastien Montagne
committed
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)
Maurice Raybaud
committed
#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_povray_radiosity.remove(ui.rad_panel_func)
bpy.types.TEXT_MT_templates.remove(ui.menu_func_templates)
Brecht Van Lommel
committed
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__)
Bastien Montagne
committed
nodes.unregister()
primitives.unregister()
ui.unregister()
render.unregister()
for cls in reversed(classes):
unregister_class(cls)
Campbell Barton
committed