27# include <fmt/format.h>
57static void rna_Camera_angle_x_set(
PointerRNA *
ptr,
float value)
69static void rna_Camera_angle_y_set(
PointerRNA *
ptr,
float value)
98static void rna_Camera_background_images_remove(
Camera *cam,
113static void rna_Camera_background_images_clear(
Camera *cam)
120static std::optional<std::string> rna_Camera_background_image_path(
const PointerRNA *
ptr)
125 const int bgpic_index =
BLI_findindex(&camera->bg_images, bgpic);
127 if (bgpic_index >= 0) {
128 return fmt::format(
"background_images[{}]", bgpic_index);
137 const char *user =
static_cast<const char *
>(
ptr->
data);
141 if (bgpic_index >= 0) {
142 return fmt::format(
"background_images[{}].image_user", bgpic_index);
146 if (bgpic_index >= 0) {
147 return fmt::format(
"background_images[{}].clip_user", bgpic_index);
153static bool rna_Camera_background_images_override_apply(
162 "Unsupported RNA override operation on background images collection");
165 const Camera *cam_src = (
const Camera *)ptr_src->owner_id;
171 BLI_findlink(&cam_dst->bg_images, opop->subitem_reference_index));
175 BLI_findlink(&cam_src->bg_images, opop->subitem_local_index));
177 if (bgpic_src ==
nullptr) {
197std::optional<std::string> rna_CameraDOFSettings_path(
const PointerRNA *
ptr)
212static void rna_CameraDOFSettings_aperture_blades_set(
PointerRNA *
ptr,
const int value)
216 if (
ELEM(value, 1, 2)) {
217 if (dofsettings->aperture_blades == 0) {
218 dofsettings->aperture_blades = 3;
221 dofsettings->aperture_blades = 0;
225 dofsettings->aperture_blades = value;
239 {0,
nullptr, 0,
nullptr,
nullptr},
243 {0,
"STRETCH", 0,
"Stretch",
""},
246 {0,
nullptr, 0,
nullptr,
nullptr},
250 {0,
"BACK", 0,
"Back",
""},
252 {0,
nullptr, 0,
nullptr,
nullptr},
258 srna,
"Background Image",
"Image and settings for display in the 3D View background");
264 "Override Background Image",
265 "In a local override camera, whether this background image comes from "
266 "the linked reference camera, or is local to the override");
300 "Parameters defining which layer, pass and frame of the image is displayed");
308 prop,
"Clip User",
"Parameters defining which frame of the movie clip is displayed");
327 prop,
"Rotation",
"Rotation for the background image (ortho view only)");
343 prop,
"Opacity",
"Image opacity to blend the image against the background color");
366 prop,
"Show On Foreground",
"Show this image in front of objects in viewport");
401 func,
"image",
"CameraBackgroundImage",
"",
"Image displayed as viewport background");
404 func =
RNA_def_function(srna,
"remove",
"rna_Camera_background_images_remove");
408 func,
"image",
"CameraBackgroundImage",
"",
"Image displayed as viewport background");
412 func =
RNA_def_function(srna,
"clear",
"rna_Camera_background_images_clear");
422 {
CAM_S3D_OFFAXIS,
"OFFAXIS", 0,
"Off-Axis",
"Off-axis frustums converging in a plane"},
423 {
CAM_S3D_PARALLEL,
"PARALLEL", 0,
"Parallel",
"Parallel cameras with no convergence"},
428 "Rotated cameras, looking at the same point at the convergence distance"},
429 {0,
nullptr, 0,
nullptr,
nullptr},
436 {0,
nullptr, 0,
nullptr,
nullptr},
461 "Interocular Distance",
462 "Set the distance between the eyes - the stereo plane distance / 30 should be fine");
469 "Convergence Plane Distance",
470 "The converge point for the stereo cameras "
471 "(often the distance between a projector and the projection screen)");
478 "Render every pixel rotating the camera around the "
479 "middle of the interocular distance");
485 prop,
"Use Pole Merge",
"Fade interocular distance to 0 after the given cutoff angle");
491 prop,
"Pole Merge Start Angle",
"Angle at which interocular distance starts to fade to 0");
497 prop,
"Pole Merge End Angle",
"Angle at which interocular distance is 0");
526 prop,
"Focus Object",
"Use this object to define the depth of field focal point");
532 prop,
"Focus Bone",
"Use this armature bone to define the depth of field focal point");
540 prop,
"Focus Distance",
"Distance to the focus point for depth of field");
547 "F-Stop ratio (lower numbers give more defocus, higher numbers give a sharper image)");
554 prop,
"Blades",
"Number of blades in aperture for polygonal bokeh (at least 3)");
578 {
CAM_PERSP,
"PERSP", 0,
"Perspective",
""},
579 {
CAM_ORTHO,
"ORTHO", 0,
"Orthographic",
""},
580 {
CAM_PANO,
"PANO", 0,
"Panoramic",
""},
581 {0,
nullptr, 0,
nullptr,
nullptr},
584 {0,
"MILLIMETERS", 0,
"Millimeters",
"Specify focal length of the lens in millimeters"},
589 "Specify the lens as the field of view's angle"},
590 {0,
nullptr, 0,
nullptr,
nullptr},
597 "Fit to the sensor width or height depending on image resolution"},
600 {0,
nullptr, 0,
nullptr,
nullptr},
608 "Spherical camera for environment maps, also known as Lat Long panorama"},
610 "EQUIANGULAR_CUBEMAP_FACE",
612 "Equiangular Cubemap Face",
613 "Single face of an equiangular cubemap"},
618 "Mirror ball mapping for environment maps"},
620 "FISHEYE_EQUIDISTANT",
622 "Fisheye Equidistant",
623 "Ideal for fulldomes, ignore the sensor dimensions"},
628 "Similar to most fisheye modern lens, takes sensor dimensions into consideration"},
630 "FISHEYE_LENS_POLYNOMIAL",
632 "Fisheye Lens Polynomial",
633 "Defines the lens projection as polynomial to allow real world camera lenses to be "
636 "CENTRAL_CYLINDRICAL",
638 "Central Cylindrical",
639 "Projection onto a virtual cylinder from its center, similar as a rotating panoramic "
641 {0,
nullptr, 0,
nullptr,
nullptr},
660 prop,
"Sensor Fit",
"Method to fit image and field of view angle inside the sensor");
668 prop,
"Passepartout Alpha",
"Opacity (alpha) of the darkened overlay in Camera view");
709 prop,
"Focal Length",
"Perspective Camera focal length value in millimeters");
717 prop,
"Sensor Width",
"Horizontal size of the image sensor area in millimeters");
725 prop,
"Sensor Height",
"Vertical size of the image sensor area in millimeters");
733 prop,
"Orthographic Scale",
"Orthographic Camera scale (similar to zoom)");
741 prop,
"Display Size",
"Apparent size of the Camera object in the 3D View");
767 prop,
"Show Limits",
"Display the clipping range and focus point on the camera");
773 prop,
"Show Mist",
"Display a line from the Camera to indicate the mist area");
779 prop,
"Show Passepartout",
"Show a darkened overlay outside the image area in Camera view");
785 prop,
"Show Safe Areas",
"Show TV title safe and action safe areas in Camera view");
791 "Show Center-Cut Safe Areas",
792 "Show safe areas to fit content in a different aspect ratio");
803 prop,
"Show Sensor Size",
"Show sensor size (film gate) in Camera view");
809 prop,
"Display Background Images",
"Display reference images behind objects in the 3D View");
821 prop,
"Center",
"Display center composition guide inside the camera view");
827 prop,
"Center Diagonal",
"Display diagonal center composition guide inside the camera view");
833 prop,
"Thirds",
"Display rule of thirds composition guide inside the camera view");
839 prop,
"Golden Ratio",
"Display golden ratio composition guide inside the camera view");
846 "Display golden triangle A composition guide inside the camera view");
853 "Display golden triangle B composition guide inside the camera view");
859 prop,
"Harmonious Triangle A",
"Display harmony A composition guide inside the camera view");
865 prop,
"Harmonious Triangle B",
"Display harmony B composition guide inside the camera view");
890 prop,
"Min Latitude",
"Minimum latitude (vertical angle) for the equirectangular lens");
897 prop,
"Max Latitude",
"Maximum latitude (vertical angle) for the equirectangular lens");
903 prop,
"Min Longitude",
"Minimum longitude (horizontal angle) for the equirectangular lens");
909 prop,
"Max Longitude",
"Maximum longitude (horizontal angle) for the equirectangular lens");
940 prop,
"Min Longitude",
"Minimum Longitude value for the central cylindrical lens");
946 prop,
"Max Longitude",
"Maximum Longitude value for the central cylindrical lens");
952 prop,
"Min Height",
"Minimum Height value for the central cylindrical lens");
958 prop,
"Max Height",
"Maximum Height value for the central cylindrical lens");
979 prop,
nullptr,
nullptr,
"rna_Camera_background_images_override_apply");
Camera data-block and utility functions.
float BKE_camera_sensor_size(int sensor_fit, float sensor_x, float sensor_y)
struct CameraBGImage * BKE_camera_background_image_new(struct Camera *cam)
void BKE_camera_background_image_clear(struct Camera *cam)
struct CameraBGImage * BKE_camera_background_image_copy(const struct CameraBGImage *bgpic_src, int flag)
void BKE_camera_background_image_remove(struct Camera *cam, struct CameraBGImage *bgpic)
General operations, lookup, etc. for blender objects.
void BKE_report(ReportList *reports, eReportType type, const char *message)
#define BLI_assert_msg(a, msg)
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
float fov_to_focallength(float hfov, float sensor)
float focallength_to_fov(float focal_length, float sensor)
#define BLT_I18NCONTEXT_ID_CAMERA
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
@ LIBOVERRIDE_OP_INSERT_AFTER
@ CAM_BGIMG_FLAG_CAMERA_CROP
@ CAM_BGIMG_FLAG_CAMERACLIP
@ CAM_BGIMG_FLAG_CAMERA_ASPECT
@ CAM_BGIMG_FLAG_DISABLED
@ CAM_BGIMG_FLAG_FOREGROUND
@ CAM_BGIMG_FLAG_OVERRIDE_LIBRARY_LOCAL
@ CAM_BGIMG_FLAG_EXPANDED
@ CAM_PANORAMA_CENTRAL_CYLINDRICAL
@ CAM_PANORAMA_FISHEYE_EQUIDISTANT
@ CAM_PANORAMA_MIRRORBALL
@ CAM_PANORAMA_EQUIANGULAR_CUBEMAP_FACE
@ CAM_PANORAMA_FISHEYE_EQUISOLID
@ CAM_PANORAMA_EQUIRECTANGULAR
@ CAM_PANORAMA_FISHEYE_LENS_POLYNOMIAL
#define RNA_POINTER_INVALIDATE(ptr)
#define RNA_TRANSLATION_PREC_DEFAULT
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ PROPOVERRIDE_LIBRARY_INSERTION
@ PROPOVERRIDE_NO_PROP_NAME
#define ND_DRAW_RENDER_VIEWPORT
void RNA_property_update_main(Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop)
void rna_def_animdata_common(StructRNA *srna)
static void rna_def_camera_stereo_data(BlenderRNA *brna)
void RNA_def_camera(BlenderRNA *brna)
static void rna_def_camera_dof_settings_data(BlenderRNA *brna)
static void rna_def_camera_background_image(BlenderRNA *brna)
static void rna_def_camera_background_images(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_api_camera(StructRNA *srna)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_define_lib_overridable(const bool make_overridable)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_define_animate_sdna(bool animate)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_override_funcs(PropertyRNA *prop, const char *diff, const char *store, const char *apply)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_nested(BlenderRNA *brna, StructRNA *srna, const char *structname)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
std::optional< std::string > rna_CameraBackgroundImage_image_or_movieclip_user_path(const PointerRNA *ptr)
void SEQ_relations_invalidate_scene_strips(Main *bmain, Scene *scene_target)
struct ListBase bg_images
IDOverrideLibraryPropertyOperation * liboverride_operation
void WM_main_add_notifier(uint type, void *reference)