diff options
Diffstat (limited to 'intern/cycles/blender/addon/ui.py')
-rw-r--r-- | intern/cycles/blender/addon/ui.py | 245 |
1 files changed, 131 insertions, 114 deletions
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 6a3a0c63236..ccc2a0ecbda 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -976,84 +976,96 @@ class CyclesParticle_PT_textures(CyclesButtonsPanel, Panel): slot = part.texture_slots[part.active_texture_index] layout.template_ID(slot, "texture", new="texture.new") + class CyclesRender_PT_CurveRendering(CyclesButtonsPanel, Panel): bl_label = "Cycles Hair Rendering" bl_context = "particle" - + @classmethod def poll(cls, context): + scene = context.scene + cscene = scene.cycles psys = context.particle_system device_type = context.user_preferences.system.compute_device_type - experimental = context.scene.cycles.feature_set == 'EXPERIMENTAL' and (context.scene.cycles.device == 'CPU' or device_type == 'NONE') + experimental = ((cscene.feature_set == 'EXPERIMENTAL') and (cscene.device == 'CPU' or device_type == 'NONE')) return CyclesButtonsPanel.poll(context) and experimental and psys - + def draw_header(self, context): - cscene = context.scene.cycles_curves - self.layout.prop(cscene, "use_curves", text="") - + ccscene = context.scene.cycles_curves + self.layout.prop(ccscene, "use_curves", text="") + def draw(self, context): layout = self.layout - + scene = context.scene - cscene = scene.cycles_curves - - layout.active = cscene.use_curves - - layout.prop(cscene, "preset", text="Mode") - - if cscene.preset == 'CUSTOM': - layout.prop(cscene, "primitive", text="Primitive") - - if cscene.primitive == 'TRIANGLES': - layout.prop(cscene, "triangle_method", text="Method") - if cscene.triangle_method == 'TESSELLATED': - layout.prop(cscene, "resolution", text="Resolution") - layout.prop(cscene, "use_smooth", text="Smooth") - elif cscene.primitive == 'LINE_SEGMENTS': - layout.prop(cscene, "use_backfacing", text="Check back-faces") - + ccscene = scene.cycles_curves + + layout.active = ccscene.use_curves + + layout.prop(ccscene, "preset", text="Mode") + + if ccscene.preset == 'CUSTOM': + layout.prop(ccscene, "primitive", text="Primitive") + + if ccscene.primitive == 'TRIANGLES': + layout.prop(ccscene, "triangle_method", text="Method") + if ccscene.triangle_method == 'TESSELLATED_TRIANGLES': + layout.prop(ccscene, "resolution", text="Resolution") + layout.prop(ccscene, "use_smooth", text="Smooth") + elif ccscene.primitive == 'LINE_SEGMENTS': + layout.prop(ccscene, "use_backfacing", text="Check back-faces") + row = layout.row() - row.prop(cscene, "use_encasing", text="Exclude encasing") + row.prop(ccscene, "use_encasing", text="Exclude encasing") sub = row.row() - sub.active = cscene.use_encasing - sub.prop(cscene, "encasing_ratio", text="Ratio for encasing") - - layout.prop(cscene, "line_method", text="Method") - layout.prop(cscene, "use_tangent_normal", text="Use tangent normal as default") - layout.prop(cscene, "use_tangent_normal_geometry", text="Use tangent normal geometry") - layout.prop(cscene, "use_tangent_normal_correction", text="Correct tangent normal for slope") - layout.prop(cscene, "interpolation", text="Interpolation") - + sub.active = ccscene.use_encasing + sub.prop(ccscene, "encasing_ratio", text="Ratio for encasing") + + layout.prop(ccscene, "line_method", text="Method") + layout.prop(ccscene, "use_tangent_normal", text="Use tangent normal as default") + layout.prop(ccscene, "use_tangent_normal_geometry", text="Use tangent normal geometry") + layout.prop(ccscene, "use_tangent_normal_correction", text="Correct tangent normal for slope") + layout.prop(ccscene, "interpolation", text="Interpolation") + + row = layout.row() + row.prop(ccscene, "segments", text="Segments") + row.prop(ccscene, "normalmix", text="Ray Mix") + elif ccscene.primitive in {'CURVE_SEGMENTS', 'CURVE_RIBBONS'}: + layout.prop(ccscene, "subdivisions", text="Curve subdivisions") + layout.prop(ccscene, "use_backfacing", text="Check back-faces") + + layout.prop(ccscene, "interpolation", text="Interpolation") row = layout.row() - row.prop(cscene, "segments", text="Segments") - row.prop(cscene, "normalmix", text="Ray Mix") - + row.prop(ccscene, "segments", text="Segments") + row = layout.row() - row.prop(cscene, "use_cache", text="Export cache with children") - if cscene.use_cache: - row.prop(cscene, "use_parents", text="Include parents") - + row.prop(ccscene, "use_parents", text="Include parents") + + class CyclesParticle_PT_CurveSettings(CyclesButtonsPanel, Panel): bl_label = "Cycles Hair Settings" bl_context = "particle" - + @classmethod def poll(cls, context): - use_curves = context.scene.cycles_curves.use_curves and context.particle_system + scene = context.scene + cscene = scene.cycles + ccscene = scene.cycles_curves + use_curves = ccscene.use_curves and context.particle_system device_type = context.user_preferences.system.compute_device_type - experimental = context.scene.cycles.feature_set == 'EXPERIMENTAL' and (context.scene.cycles.device == 'CPU' or device_type == 'NONE') + experimental = cscene.feature_set == 'EXPERIMENTAL' and (cscene.device == 'CPU' or device_type == 'NONE') return CyclesButtonsPanel.poll(context) and experimental and use_curves def draw(self, context): layout = self.layout - + psys = context.particle_settings cpsys = psys.cycles - + row = layout.row() row.prop(cpsys, "shape", text="Shape") row.prop(cpsys, "use_closetip", text="Close tip") - + layout.label(text="Width multiplier:") row = layout.row() row.prop(cpsys, "root_width", text="Root") @@ -1120,74 +1132,79 @@ def draw_pause(self, context): def get_panels(): + types = bpy.types return ( - bpy.types.RENDER_PT_render, - bpy.types.RENDER_PT_output, - bpy.types.RENDER_PT_encoding, - bpy.types.RENDER_PT_dimensions, - bpy.types.RENDER_PT_stamp, - bpy.types.SCENE_PT_scene, - bpy.types.SCENE_PT_audio, - bpy.types.SCENE_PT_unit, - bpy.types.SCENE_PT_keying_sets, - bpy.types.SCENE_PT_keying_set_paths, - bpy.types.SCENE_PT_physics, - bpy.types.WORLD_PT_context_world, - bpy.types.DATA_PT_context_mesh, - bpy.types.DATA_PT_context_camera, - bpy.types.DATA_PT_context_lamp, - bpy.types.DATA_PT_context_speaker, - bpy.types.DATA_PT_texture_space, - bpy.types.DATA_PT_curve_texture_space, - bpy.types.DATA_PT_mball_texture_space, - bpy.types.DATA_PT_vertex_groups, - bpy.types.DATA_PT_shape_keys, - bpy.types.DATA_PT_uv_texture, - bpy.types.DATA_PT_vertex_colors, - bpy.types.DATA_PT_camera, - bpy.types.DATA_PT_camera_display, - bpy.types.DATA_PT_lens, - bpy.types.DATA_PT_speaker, - bpy.types.DATA_PT_distance, - bpy.types.DATA_PT_cone, - bpy.types.DATA_PT_customdata, - bpy.types.DATA_PT_custom_props_mesh, - bpy.types.DATA_PT_custom_props_camera, - bpy.types.DATA_PT_custom_props_lamp, - bpy.types.DATA_PT_custom_props_speaker, - bpy.types.TEXTURE_PT_clouds, - bpy.types.TEXTURE_PT_wood, - bpy.types.TEXTURE_PT_marble, - bpy.types.TEXTURE_PT_magic, - bpy.types.TEXTURE_PT_blend, - bpy.types.TEXTURE_PT_stucci, - bpy.types.TEXTURE_PT_image, - bpy.types.TEXTURE_PT_image_sampling, - bpy.types.TEXTURE_PT_image_mapping, - bpy.types.TEXTURE_PT_musgrave, - bpy.types.TEXTURE_PT_voronoi, - bpy.types.TEXTURE_PT_distortednoise, - bpy.types.TEXTURE_PT_voxeldata, - bpy.types.TEXTURE_PT_pointdensity, - bpy.types.TEXTURE_PT_pointdensity_turbulence, - bpy.types.TEXTURE_PT_mapping, - bpy.types.TEXTURE_PT_influence, - bpy.types.TEXTURE_PT_colors, - bpy.types.PARTICLE_PT_context_particles, - bpy.types.PARTICLE_PT_emission, - bpy.types.PARTICLE_PT_hair_dynamics, - bpy.types.PARTICLE_PT_cache, - bpy.types.PARTICLE_PT_velocity, - bpy.types.PARTICLE_PT_rotation, - bpy.types.PARTICLE_PT_physics, - bpy.types.PARTICLE_PT_boidbrain, - bpy.types.PARTICLE_PT_render, - bpy.types.PARTICLE_PT_draw, - bpy.types.PARTICLE_PT_children, - bpy.types.PARTICLE_PT_field_weights, - bpy.types.PARTICLE_PT_force_fields, - bpy.types.PARTICLE_PT_vertexgroups, - bpy.types.PARTICLE_PT_custom_props, + types.RENDER_PT_render, + types.RENDER_PT_output, + types.RENDER_PT_encoding, + types.RENDER_PT_dimensions, + types.RENDER_PT_stamp, + types.SCENE_PT_scene, + types.SCENE_PT_color_management, + types.SCENE_PT_audio, + types.SCENE_PT_unit, + types.SCENE_PT_keying_sets, + types.SCENE_PT_keying_set_paths, + types.SCENE_PT_physics, + types.WORLD_PT_context_world, + types.DATA_PT_context_mesh, + types.DATA_PT_context_camera, + types.DATA_PT_context_lamp, + types.DATA_PT_context_speaker, + types.DATA_PT_texture_space, + types.DATA_PT_curve_texture_space, + types.DATA_PT_mball_texture_space, + types.DATA_PT_vertex_groups, + types.DATA_PT_shape_keys, + types.DATA_PT_uv_texture, + types.DATA_PT_vertex_colors, + types.DATA_PT_camera, + types.DATA_PT_camera_display, + types.DATA_PT_lens, + types.DATA_PT_speaker, + types.DATA_PT_distance, + types.DATA_PT_cone, + types.DATA_PT_customdata, + types.DATA_PT_custom_props_mesh, + types.DATA_PT_custom_props_camera, + types.DATA_PT_custom_props_lamp, + types.DATA_PT_custom_props_speaker, + types.TEXTURE_PT_clouds, + types.TEXTURE_PT_wood, + types.TEXTURE_PT_marble, + types.TEXTURE_PT_magic, + types.TEXTURE_PT_blend, + types.TEXTURE_PT_stucci, + types.TEXTURE_PT_image, + types.TEXTURE_PT_image_sampling, + types.TEXTURE_PT_image_mapping, + types.TEXTURE_PT_musgrave, + types.TEXTURE_PT_voronoi, + types.TEXTURE_PT_distortednoise, + types.TEXTURE_PT_voxeldata, + types.TEXTURE_PT_pointdensity, + types.TEXTURE_PT_pointdensity_turbulence, + types.TEXTURE_PT_mapping, + types.TEXTURE_PT_influence, + types.TEXTURE_PT_colors, + types.PARTICLE_PT_context_particles, + types.PARTICLE_PT_emission, + types.PARTICLE_PT_hair_dynamics, + types.PARTICLE_PT_cache, + types.PARTICLE_PT_velocity, + types.PARTICLE_PT_rotation, + types.PARTICLE_PT_physics, + types.SCENE_PT_rigid_body_world, + types.SCENE_PT_rigid_body_cache, + types.SCENE_PT_rigid_body_field_weights, + types.PARTICLE_PT_boidbrain, + types.PARTICLE_PT_render, + types.PARTICLE_PT_draw, + types.PARTICLE_PT_children, + types.PARTICLE_PT_field_weights, + types.PARTICLE_PT_force_fields, + types.PARTICLE_PT_vertexgroups, + types.PARTICLE_PT_custom_props, ) |