Newer
Older
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="")
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
###############################################################################
# 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="Blend Sky", description="Flatten blend or texture coordinates",
default=False)
use_sky_real: BoolProperty(
name="Blend 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',
)
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',
)
'''
class WORLD_PT_POV_world(WorldButtonsPanel, Panel):
bl_label = "World"
#COMPAT_ENGINES = {'BLENDER_RENDER'}
def draw(self, context):
layout = self.layout
world = context.world
Maurice Raybaud
committed
row = layout.row()
row.prop(world, "use_sky_paper")
row.prop(world, "use_sky_blend")
row.prop(world, "use_sky_real")
row = layout.row()
row.column().prop(world, "horizon_color")
col = row.column()
col.prop(world, "zenith_color")
col.active = world.use_sky_blend
row.column().prop(world, "ambient_color")
row = layout.row()
row.prop(world, "exposure")
row.prop(world, "color_range")
'''
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")
Bastien Montagne
committed
def register():
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
#bpy.utils.register_module(__name__) #DEPRECATED Now imported from bpy.utils import register_class
render.register()
ui.register()
primitives.register()
nodes.register()
register_class(PovrayPreferences)
register_class(RenderPovSettingsCamera)
register_class(RenderPovSettingsWorld)
register_class(RenderPovSettingsMaterial)
register_class(RenderPovSettingsObject)
register_class(RenderPovSettingsScene)
register_class(RenderPovSettingsText)
register_class(RenderPovSettingsTexture)
'''
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.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
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
Campbell Barton
committed