Newer
Older
class PovraySocketSlope(bpy.types.NodeSocket):
bl_idname = 'PovraySocketSlope'
bl_label = 'Povray Socket'
default_value: bpy.props.FloatProperty(min = 0.0, max = 1.0)
height: bpy.props.FloatProperty(min = 0.0, max = 10.0)
slope: bpy.props.FloatProperty(min = -10.0, max = 10.0)
def draw(self, context, layout, node, text):
if self.is_output or self.is_linked:
layout.label(text)
else:
layout.prop(self,'default_value',text='')
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()
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
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"),
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
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):
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-Ray 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):
# 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)