Newer
Older
layout.prop(self,'height',text='')
layout.prop(self,'slope',text='')
def draw_color(self, context, node):
return (0, 0, 0, 1)
class PovraySocketMap(bpy.types.NodeSocket):
bl_idname = 'PovraySocketMap'
bl_label = 'Povray Socket'
default_value: bpy.props.StringProperty()
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
def draw(self, context, layout, node, text):
layout.label(text)
def draw_color(self, context, node):
return (0.2, 0, 0.2, 1)
class PovrayShaderNodeCategory(NodeCategory):
@classmethod
def poll(cls, context):
return context.space_data.tree_type == 'ObjectNodeTree'
class PovrayTextureNodeCategory(NodeCategory):
@classmethod
def poll(cls, context):
return context.space_data.tree_type == 'TextureNodeTree'
class PovraySceneNodeCategory(NodeCategory):
@classmethod
def poll(cls, context):
return context.space_data.tree_type == 'CompositorNodeTree'
node_categories = [
PovrayShaderNodeCategory("SHADEROUTPUT", "Output", items=[
NodeItem("PovrayOutputNode"),
]),
PovrayShaderNodeCategory("SIMPLE", "Simple texture", items=[
NodeItem("PovrayTextureNode"),
]),
PovrayShaderNodeCategory("MAPS", "Maps", items=[
NodeItem("PovrayBumpMapNode"),
NodeItem("PovrayColorImageNode"),
NodeItem("ShaderNormalMapNode"),
NodeItem("PovraySlopeNode"),
NodeItem("ShaderTextureMapNode"),
NodeItem("ShaderNodeValToRGB"),
]),
PovrayShaderNodeCategory("OTHER", "Other patterns", items=[
NodeItem("PovrayImagePatternNode"),
NodeItem("ShaderPatternNode"),
]),
PovrayShaderNodeCategory("COLOR", "Color", items=[
NodeItem("PovrayPigmentNode"),
]),
PovrayShaderNodeCategory("TRANSFORM", "Transform", items=[
NodeItem("PovrayMappingNode"),
NodeItem("PovrayMultiplyNode"),
NodeItem("PovrayModifierNode"),
NodeItem("PovrayTransformNode"),
NodeItem("PovrayValueNode"),
]),
PovrayShaderNodeCategory("FINISH", "Finish", items=[
NodeItem("PovrayFinishNode"),
NodeItem("PovrayDiffuseNode"),
NodeItem("PovraySpecularNode"),
NodeItem("PovrayPhongNode"),
NodeItem("PovrayAmbientNode"),
NodeItem("PovrayMirrorNode"),
NodeItem("PovrayIridescenceNode"),
NodeItem("PovraySubsurfaceNode"),
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
PovrayShaderNodeCategory("CYCLES", "Cycles", items=[
NodeItem("ShaderNodeAddShader"),
NodeItem("ShaderNodeAmbientOcclusion"),
NodeItem("ShaderNodeAttribute"),
NodeItem("ShaderNodeBackground"),
NodeItem("ShaderNodeBlackbody"),
NodeItem("ShaderNodeBrightContrast"),
NodeItem("ShaderNodeBsdfAnisotropic"),
NodeItem("ShaderNodeBsdfDiffuse"),
NodeItem("ShaderNodeBsdfGlass"),
NodeItem("ShaderNodeBsdfGlossy"),
NodeItem("ShaderNodeBsdfHair"),
NodeItem("ShaderNodeBsdfRefraction"),
NodeItem("ShaderNodeBsdfToon"),
NodeItem("ShaderNodeBsdfTranslucent"),
NodeItem("ShaderNodeBsdfTransparent"),
NodeItem("ShaderNodeBsdfVelvet"),
NodeItem("ShaderNodeBump"),
NodeItem("ShaderNodeCameraData"),
NodeItem("ShaderNodeCombineHSV"),
NodeItem("ShaderNodeCombineRGB"),
NodeItem("ShaderNodeCombineXYZ"),
NodeItem("ShaderNodeEmission"),
NodeItem("ShaderNodeExtendedMaterial"),
NodeItem("ShaderNodeFresnel"),
NodeItem("ShaderNodeGamma"),
NodeItem("ShaderNodeGeometry"),
NodeItem("ShaderNodeGroup"),
NodeItem("ShaderNodeHairInfo"),
NodeItem("ShaderNodeHoldout"),
NodeItem("ShaderNodeHueSaturation"),
NodeItem("ShaderNodeInvert"),
NodeItem("ShaderNodeLampData"),
NodeItem("ShaderNodeLayerWeight"),
NodeItem("ShaderNodeLightFalloff"),
NodeItem("ShaderNodeLightPath"),
NodeItem("ShaderNodeMapping"),
NodeItem("ShaderNodeMaterial"),
NodeItem("ShaderNodeMath"),
NodeItem("ShaderNodeMixRGB"),
NodeItem("ShaderNodeMixShader"),
NodeItem("ShaderNodeNewGeometry"),
NodeItem("ShaderNodeNormal"),
NodeItem("ShaderNodeNormalMap"),
NodeItem("ShaderNodeObjectInfo"),
NodeItem("ShaderNodeOutput"),
NodeItem("ShaderNodeOutputLamp"),
NodeItem("ShaderNodeOutputLineStyle"),
NodeItem("ShaderNodeOutputMaterial"),
NodeItem("ShaderNodeOutputWorld"),
NodeItem("ShaderNodeParticleInfo"),
NodeItem("ShaderNodeRGB"),
NodeItem("ShaderNodeRGBCurve"),
NodeItem("ShaderNodeRGBToBW"),
NodeItem("ShaderNodeScript"),
NodeItem("ShaderNodeSeparateHSV"),
NodeItem("ShaderNodeSeparateRGB"),
NodeItem("ShaderNodeSeparateXYZ"),
NodeItem("ShaderNodeSqueeze"),
NodeItem("ShaderNodeSubsurfaceScattering"),
NodeItem("ShaderNodeTangent"),
NodeItem("ShaderNodeTexBrick"),
NodeItem("ShaderNodeTexChecker"),
NodeItem("ShaderNodeTexCoord"),
NodeItem("ShaderNodeTexEnvironment"),
NodeItem("ShaderNodeTexGradient"),
NodeItem("ShaderNodeTexImage"),
NodeItem("ShaderNodeTexMagic"),
NodeItem("ShaderNodeTexMusgrave"),
NodeItem("ShaderNodeTexNoise"),
NodeItem("ShaderNodeTexPointDensity"),
NodeItem("ShaderNodeTexSky"),
NodeItem("ShaderNodeTexVoronoi"),
NodeItem("ShaderNodeTexWave"),
NodeItem("ShaderNodeTexture"),
NodeItem("ShaderNodeUVAlongStroke"),
NodeItem("ShaderNodeUVMap"),
NodeItem("ShaderNodeValToRGB"),
NodeItem("ShaderNodeValue"),
NodeItem("ShaderNodeVectorCurve"),
NodeItem("ShaderNodeVectorMath"),
NodeItem("ShaderNodeVectorTransform"),
NodeItem("ShaderNodeVolumeAbsorption"),
NodeItem("ShaderNodeVolumeScatter"),
NodeItem("ShaderNodeWavelength"),
NodeItem("ShaderNodeWireframe"),
]),
PovrayTextureNodeCategory("TEXTUREOUTPUT", "Output", items=[
NodeItem("TextureNodeValToRGB"),
NodeItem("TextureOutputNode"),
]),
PovraySceneNodeCategory("ISOSURFACE", "Isosurface", items=[
NodeItem("IsoPropsNode"),
]),
PovraySceneNodeCategory("FOG", "Fog", items=[
NodeItem("PovrayFogNode"),
]),
]
############### end nodes
Bastien Montagne
committed
###############################################################################
# Texture POV properties.
###############################################################################
class RenderPovSettingsTexture(PropertyGroup):
"""Declare texture level properties controllable in UI and translated to POV."""
#former Space properties from removed Blender Internal
active_texture_index: IntProperty(
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)
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="Enable custom texture gamma",
Campbell Barton
committed
description="Notify some custom gamma for which texture has been precorrected "
"without the file format carrying it and only if it differs from your "
Bastien Montagne
committed
"OS expected standard (see pov doc)",
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)
Bastien Montagne
committed
##################################CustomPOV Code############################
#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="")
Bastien Montagne
committed
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="Magnet style",
description="magnet or julia",
items=(('mandel', "Mandelbrot", ""),('julia', "Julia", "")),
default='julia')
name="Magnet_type",
description="1 or 2",
min=1, max=2, default=2)
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 Orientation",
description="Select the orientation of warp",
items=(('x', "X", ""), ('y', "Y", ""), ('z', "Z", "")),
default='y')
name="Waves type",
description="Select the type of waves",
items=(('ramp', "Ramp", ""), ('sine', "Sine", ""), ('scallop', "Scallop", ""),
('cubic', "Cubic", ""), ('poly', "Poly", ""), ('triangle', 'Triangle', "")),
name="Noise Generators",
description="Noise Generators",
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",
warp_turbulence_x: FloatProperty(
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",
warp_turbulence_z: FloatProperty(
name="Turbulence Z",
description="Turbulence Z",
min=0.0, max=5.0, default=0.0)
name="Turbulence octaves",
description="Turbulence octaves",
name="Turbulence lambda",
description="Turbulence lambda",
min=0.0, max=5.0, default=1.00)
name="Turbulence omega",
description="Turbulence omega",
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",
modifier_turbulence: FloatProperty(
name="Turbulence",
description="Turbulence",
name="Numbers",
description="Numbers",
name="Control0",
description="Control0",
min=0, max=100, default=1)
name="Control1",
description="Control1",
min=0, max=100, default=1)
name="Brick size x",
description="",
name="Brick size y",
description="",
min=0.0000, max=1.0000, default=0.0525)
name="Brick size z",
description="",
name="Mortar",
description="Mortar",
min=0.000, max=1.500, default=0.01)
name="Julia Complex 1",
description="",
min=0.000, max=1.500, default=0.360)
name="Julia Complex 2",
description="",
min=0.000, max=1.500, default=0.250)
name="Fractal Iteration",
description="",
min=0, max=100, default=20)
name="Fractal Exponent",
description="",
min=2, max=33, default=2)
name="Fractal Interior",
description="",
min=1, max=6, default=1)
name="Fractal Interior Factor",
description="",
min=0.0, max=10.0, default=1.0)
name="Fractal Exterior",
description="",
min=1, max=8, default=1)
name="Fractal Exterior Factor",
description="",
min=0.0, max=10.0, default=1.0)
name="Gradient orientation X",
description="",
min=0, max=1, default=0)
name="Gradient orientation Y",
description="",
min=0, max=1, default=1)
name="Gradient orientation Z",
description="",
min=0, max=1, default=0)
name="Pavement sides",
description="",
items=(('3', "3", ""), ('4', "4", ""), ('6', "6", "")),
default='3')
name="Pavement pattern 2",
description="maximum: 2",
min=1, max=2, default=2)
name="Pavement pattern 3",
description="maximum: 3",
min=1, max=3, default=3)
name="Pavement pattern 4",
description="maximum: 4",
min=1, max=4, default=4)
name="Pavement pattern 5",
description="maximum: 5",
min=1, max=5, default=5)
name="Pavement pattern 7",
description="maximum: 7",
min=1, max=7, default=7)
name="Pavement pattern 12",
description="maximum: 12",
min=1, max=12, default=12)
name="Pavement pattern 22",
description="maximum: 22",
min=1, max=22, default=22)
name="Pavement pattern 35",
description="maximum: 35",
min=1, max=35, default=35)
name="Pavement tiles",
description="If sides = 6, maximum tiles 5!!!",
min=1, max=6, default=1)
name="Pavement form",
description="",
#########FUNCTIONS#############################################################################
#########FUNCTIONS#############################################################################
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_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="FX",
description="",
min=0.0, max=25.0, default=1.0)
name="Func plus x",
description="",
items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
default='NONE')
name="FY",
description="",
min=0.0, max=25.0, default=1.0)
name="Func plus y",
description="",
items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
default='NONE')
name="FZ",
description="",
min=0.0, max=25.0, default=1.0)
name="Func plus z",
description="",
items=(('NONE', "None", ""), ('increase', "*", ""), ('plus', "+", "")),
default='NONE')
name="P0",
description="",
min=0.0, max=25.0, default=1.0)
name="P1",
description="",
min=0.0, max=25.0, default=1.0)
name="P2",
description="",
min=0.0, max=25.0, default=1.0)
name="P3",
description="",
min=0.0, max=25.0, default=1.0)
name="P4",
description="",
min=0.0, max=25.0, default=1.0)
name="P5",
description="",
min=0.0, max=25.0, default=1.0)
name="P6",
description="",
min=0.0, max=25.0, default=1.0)
name="P7",
description="",
min=0.0, max=25.0, default=1.0)
name="P8",
description="",
min=0.0, max=25.0, default=1.0)
name="P9",
description="",
#########################################
name="Rotate X",
description="",
name="Rotate Y",
description="",
name="Rotate Z",
description="",
name="Move X",
description="",
name="Move Y",
description="",
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):
"""Declare object and primitives level properties controllable in UI and translated to POV."""
# 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 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):
"""Update POV cylinder primitive parameters not only at creation but anytime they are changed in UI."""
Maurice Raybaud
committed
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)
Maurice Raybaud
committed
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):
"""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."""
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)
###########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)
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):
"""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)
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):
"""Update POV superellipsoid primitive parameters not only at creation but anytime they are changed in UI."""