Changeset View
Changeset View
Standalone View
Standalone View
release/scripts/startup/bl_ui/properties_data_camera.py
| Show All 15 Lines | def poll(cls, context): | ||||
| return context.camera and (engine in cls.COMPAT_ENGINES) | return context.camera and (engine in cls.COMPAT_ENGINES) | ||||
| class CAMERA_PT_presets(PresetPanel, Panel): | class CAMERA_PT_presets(PresetPanel, Panel): | ||||
| bl_label = "Camera Presets" | bl_label = "Camera Presets" | ||||
| preset_subdir = "camera" | preset_subdir = "camera" | ||||
| preset_operator = "script.execute_preset" | preset_operator = "script.execute_preset" | ||||
| preset_add_operator = "camera.preset_add" | preset_add_operator = "camera.preset_add" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| class CAMERA_PT_safe_areas_presets(PresetPanel, Panel): | class CAMERA_PT_safe_areas_presets(PresetPanel, Panel): | ||||
| bl_label = "Camera Presets" | bl_label = "Camera Presets" | ||||
| preset_subdir = "safe_areas" | preset_subdir = "safe_areas" | ||||
| preset_operator = "script.execute_preset" | preset_operator = "script.execute_preset" | ||||
| preset_add_operator = "camera.safe_areas_preset_add" | preset_add_operator = "camera.safe_areas_preset_add" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH', 'BLENDER_WORKBENCH_NEXT'} | ||||
| class DATA_PT_context_camera(CameraButtonsPanel, Panel): | class DATA_PT_context_camera(CameraButtonsPanel, Panel): | ||||
| bl_label = "" | bl_label = "" | ||||
| bl_options = {'HIDE_HEADER'} | bl_options = {'HIDE_HEADER'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| ob = context.object | ob = context.object | ||||
| cam = context.camera | cam = context.camera | ||||
| space = context.space_data | space = context.space_data | ||||
| if ob: | if ob: | ||||
| layout.template_ID(ob, "data") | layout.template_ID(ob, "data") | ||||
| elif cam: | elif cam: | ||||
| layout.template_ID(space, "pin_id") | layout.template_ID(space, "pin_id") | ||||
| class DATA_PT_lens(CameraButtonsPanel, Panel): | class DATA_PT_lens(CameraButtonsPanel, Panel): | ||||
| bl_label = "Lens" | bl_label = "Lens" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| cam = context.camera | cam = context.camera | ||||
| layout.prop(cam, "type") | layout.prop(cam, "type") | ||||
| Show All 31 Lines | def draw(self, context): | ||||
| elif ccam.panorama_type == 'FISHEYE_LENS_POLYNOMIAL': | elif ccam.panorama_type == 'FISHEYE_LENS_POLYNOMIAL': | ||||
| col.prop(ccam, "fisheye_fov") | col.prop(ccam, "fisheye_fov") | ||||
| col.prop(ccam, "fisheye_polynomial_k0", text="K0") | col.prop(ccam, "fisheye_polynomial_k0", text="K0") | ||||
| col.prop(ccam, "fisheye_polynomial_k1", text="K1") | col.prop(ccam, "fisheye_polynomial_k1", text="K1") | ||||
| col.prop(ccam, "fisheye_polynomial_k2", text="K2") | col.prop(ccam, "fisheye_polynomial_k2", text="K2") | ||||
| col.prop(ccam, "fisheye_polynomial_k3", text="K3") | col.prop(ccam, "fisheye_polynomial_k3", text="K3") | ||||
| col.prop(ccam, "fisheye_polynomial_k4", text="K4") | col.prop(ccam, "fisheye_polynomial_k4", text="K4") | ||||
| elif engine in {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'}: | elif engine in {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'}: | ||||
| if cam.lens_unit == 'MILLIMETERS': | if cam.lens_unit == 'MILLIMETERS': | ||||
| col.prop(cam, "lens") | col.prop(cam, "lens") | ||||
| elif cam.lens_unit == 'FOV': | elif cam.lens_unit == 'FOV': | ||||
| col.prop(cam, "angle") | col.prop(cam, "angle") | ||||
| col.prop(cam, "lens_unit") | col.prop(cam, "lens_unit") | ||||
| col = layout.column() | col = layout.column() | ||||
| col.separator() | col.separator() | ||||
| sub = col.column(align=True) | sub = col.column(align=True) | ||||
| sub.prop(cam, "shift_x", text="Shift X") | sub.prop(cam, "shift_x", text="Shift X") | ||||
| sub.prop(cam, "shift_y", text="Y") | sub.prop(cam, "shift_y", text="Y") | ||||
| col.separator() | col.separator() | ||||
| sub = col.column(align=True) | sub = col.column(align=True) | ||||
| sub.prop(cam, "clip_start", text="Clip Start") | sub.prop(cam, "clip_start", text="Clip Start") | ||||
| sub.prop(cam, "clip_end", text="End") | sub.prop(cam, "clip_end", text="End") | ||||
| class DATA_PT_camera_stereoscopy(CameraButtonsPanel, Panel): | class DATA_PT_camera_stereoscopy(CameraButtonsPanel, Panel): | ||||
| bl_label = "Stereoscopy" | bl_label = "Stereoscopy" | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| render = context.scene.render | render = context.scene.render | ||||
| return (super().poll(context) and render.use_multiview and | return (super().poll(context) and render.use_multiview and | ||||
| render.views_format == 'STEREO_3D') | render.views_format == 'STEREO_3D') | ||||
| def draw(self, context): | def draw(self, context): | ||||
| Show All 32 Lines | def draw(self, context): | ||||
| col.active = not use_spherical_stereo | col.active = not use_spherical_stereo | ||||
| col.separator() | col.separator() | ||||
| col.prop(st, "pivot") | col.prop(st, "pivot") | ||||
| class DATA_PT_camera(CameraButtonsPanel, Panel): | class DATA_PT_camera(CameraButtonsPanel, Panel): | ||||
| bl_label = "Camera" | bl_label = "Camera" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header_preset(self, _context): | def draw_header_preset(self, _context): | ||||
| CAMERA_PT_presets.draw_panel_header(self.layout) | CAMERA_PT_presets.draw_panel_header(self.layout) | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| cam = context.camera | cam = context.camera | ||||
| Show All 13 Lines | def draw(self, context): | ||||
| sub = col.column(align=True) | sub = col.column(align=True) | ||||
| sub.active = cam.sensor_fit == 'VERTICAL' | sub.active = cam.sensor_fit == 'VERTICAL' | ||||
| sub.prop(cam, "sensor_height", text="Height") | sub.prop(cam, "sensor_height", text="Height") | ||||
| class DATA_PT_camera_dof(CameraButtonsPanel, Panel): | class DATA_PT_camera_dof(CameraButtonsPanel, Panel): | ||||
| bl_label = "Depth of Field" | bl_label = "Depth of Field" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| cam = context.camera | cam = context.camera | ||||
| dof = cam.dof | dof = cam.dof | ||||
| self.layout.prop(dof, "use_dof", text="") | self.layout.prop(dof, "use_dof", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| Show All 10 Lines | def draw(self, context): | ||||
| sub = col.column() | sub = col.column() | ||||
| sub.active = (dof.focus_object is None) | sub.active = (dof.focus_object is None) | ||||
| sub.prop(dof, "focus_distance", text="Focus Distance") | sub.prop(dof, "focus_distance", text="Focus Distance") | ||||
| class DATA_PT_camera_dof_aperture(CameraButtonsPanel, Panel): | class DATA_PT_camera_dof_aperture(CameraButtonsPanel, Panel): | ||||
| bl_label = "Aperture" | bl_label = "Aperture" | ||||
| bl_parent_id = "DATA_PT_camera_dof" | bl_parent_id = "DATA_PT_camera_dof" | ||||
| COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| cam = context.camera | cam = context.camera | ||||
| dof = cam.dof | dof = cam.dof | ||||
| layout.active = dof.use_dof | layout.active = dof.use_dof | ||||
| flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False) | flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False) | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(dof, "aperture_fstop") | col.prop(dof, "aperture_fstop") | ||||
| col = flow.column() | col = flow.column() | ||||
| col.prop(dof, "aperture_blades") | col.prop(dof, "aperture_blades") | ||||
| col.prop(dof, "aperture_rotation") | col.prop(dof, "aperture_rotation") | ||||
| col.prop(dof, "aperture_ratio") | col.prop(dof, "aperture_ratio") | ||||
| class DATA_PT_camera_background_image(CameraButtonsPanel, Panel): | class DATA_PT_camera_background_image(CameraButtonsPanel, Panel): | ||||
| bl_label = "Background Images" | bl_label = "Background Images" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| cam = context.camera | cam = context.camera | ||||
| self.layout.prop(cam, "show_background_images", text="") | self.layout.prop(cam, "show_background_images", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| ▲ Show 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | def draw(self, context): | ||||
| col = box.column(heading="Flip") | col = box.column(heading="Flip") | ||||
| col.prop(bg, "use_flip_x", text="X") | col.prop(bg, "use_flip_x", text="X") | ||||
| col.prop(bg, "use_flip_y", text="Y") | col.prop(bg, "use_flip_y", text="Y") | ||||
| class DATA_PT_camera_display(CameraButtonsPanel, Panel): | class DATA_PT_camera_display(CameraButtonsPanel, Panel): | ||||
| bl_label = "Viewport Display" | bl_label = "Viewport Display" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| cam = context.camera | cam = context.camera | ||||
| col = layout.column(align=True) | col = layout.column(align=True) | ||||
| Show All 16 Lines | def draw(self, context): | ||||
| sub.prop(cam, "passepartout_alpha", text="") | sub.prop(cam, "passepartout_alpha", text="") | ||||
| row.prop_decorator(cam, "passepartout_alpha") | row.prop_decorator(cam, "passepartout_alpha") | ||||
| class DATA_PT_camera_display_composition_guides(CameraButtonsPanel, Panel): | class DATA_PT_camera_display_composition_guides(CameraButtonsPanel, Panel): | ||||
| bl_label = "Composition Guides" | bl_label = "Composition Guides" | ||||
| bl_parent_id = "DATA_PT_camera_display" | bl_parent_id = "DATA_PT_camera_display" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| cam = context.camera | cam = context.camera | ||||
| layout.prop(cam, "show_composition_thirds") | layout.prop(cam, "show_composition_thirds") | ||||
| Show All 10 Lines | def draw(self, context): | ||||
| col = layout.column(heading="Harmony", align=True) | col = layout.column(heading="Harmony", align=True) | ||||
| col.prop(cam, "show_composition_harmony_tri_a", text="Triangle A") | col.prop(cam, "show_composition_harmony_tri_a", text="Triangle A") | ||||
| col.prop(cam, "show_composition_harmony_tri_b", text="Triangle B") | col.prop(cam, "show_composition_harmony_tri_b", text="Triangle B") | ||||
| class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel): | class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel): | ||||
| bl_label = "Safe Areas" | bl_label = "Safe Areas" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| cam = context.camera | cam = context.camera | ||||
| self.layout.prop(cam, "show_safe_areas", text="") | self.layout.prop(cam, "show_safe_areas", text="") | ||||
| def draw_header_preset(self, _context): | def draw_header_preset(self, _context): | ||||
| CAMERA_PT_safe_areas_presets.draw_panel_header(self.layout) | CAMERA_PT_safe_areas_presets.draw_panel_header(self.layout) | ||||
| Show All 13 Lines | def draw(self, context): | ||||
| sub.prop(safe_data, "title", slider=True) | sub.prop(safe_data, "title", slider=True) | ||||
| sub.prop(safe_data, "action", slider=True) | sub.prop(safe_data, "action", slider=True) | ||||
| class DATA_PT_camera_safe_areas_center_cut(CameraButtonsPanel, Panel): | class DATA_PT_camera_safe_areas_center_cut(CameraButtonsPanel, Panel): | ||||
| bl_label = "Center-Cut Safe Areas" | bl_label = "Center-Cut Safe Areas" | ||||
| bl_parent_id = "DATA_PT_camera_safe_areas" | bl_parent_id = "DATA_PT_camera_safe_areas" | ||||
| bl_options = {'DEFAULT_CLOSED'} | bl_options = {'DEFAULT_CLOSED'} | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| cam = context.camera | cam = context.camera | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.active = cam.show_safe_areas | layout.active = cam.show_safe_areas | ||||
| layout.prop(cam, "show_safe_center", text="") | layout.prop(cam, "show_safe_center", text="") | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| safe_data = context.scene.safe_areas | safe_data = context.scene.safe_areas | ||||
| camera = context.camera | camera = context.camera | ||||
| layout.use_property_split = True | layout.use_property_split = True | ||||
| layout.active = camera.show_safe_areas and camera.show_safe_center | layout.active = camera.show_safe_areas and camera.show_safe_center | ||||
| col = layout.column() | col = layout.column() | ||||
| col.prop(safe_data, "title_center", slider=True) | col.prop(safe_data, "title_center", slider=True) | ||||
| col.prop(safe_data, "action_center", slider=True) | col.prop(safe_data, "action_center", slider=True) | ||||
| class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel): | class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel): | ||||
| COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'} | COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH','BLENDER_WORKBENCH_NEXT'} | ||||
| _context_path = "object.data" | _context_path = "object.data" | ||||
| _property_type = bpy.types.Camera | _property_type = bpy.types.Camera | ||||
| def draw_display_safe_settings(layout, safe_data, settings): | def draw_display_safe_settings(layout, safe_data, settings): | ||||
| show_safe_areas = settings.show_safe_areas | show_safe_areas = settings.show_safe_areas | ||||
| show_safe_center = settings.show_safe_center | show_safe_center = settings.show_safe_center | ||||
| Show All 40 Lines | |||||