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)
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_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
@ 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
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
#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)