Blender  V3.3
rna_camera.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #include <stdlib.h>
8 
9 #include "DNA_camera_types.h"
10 
11 #include "BLI_math.h"
12 
13 #include "RNA_access.h"
14 #include "RNA_define.h"
15 
16 #include "rna_internal.h"
17 
18 #include "WM_api.h"
19 #include "WM_types.h"
20 
21 #ifdef RNA_RUNTIME
22 
23 # include "BKE_camera.h"
24 # include "BKE_object.h"
25 
26 # include "DEG_depsgraph.h"
27 # include "DEG_depsgraph_build.h"
28 
29 # include "SEQ_relations.h"
30 
31 static float rna_Camera_angle_get(PointerRNA *ptr)
32 {
33  Camera *cam = (Camera *)ptr->owner_id;
34  float sensor = BKE_camera_sensor_size(cam->sensor_fit, cam->sensor_x, cam->sensor_y);
35  return focallength_to_fov(cam->lens, sensor);
36 }
37 
38 static void rna_Camera_angle_set(PointerRNA *ptr, float value)
39 {
40  Camera *cam = (Camera *)ptr->owner_id;
41  float sensor = BKE_camera_sensor_size(cam->sensor_fit, cam->sensor_x, cam->sensor_y);
42  cam->lens = fov_to_focallength(value, sensor);
43 }
44 
45 static float rna_Camera_angle_x_get(PointerRNA *ptr)
46 {
47  Camera *cam = (Camera *)ptr->owner_id;
48  return focallength_to_fov(cam->lens, cam->sensor_x);
49 }
50 
51 static void rna_Camera_angle_x_set(PointerRNA *ptr, float value)
52 {
53  Camera *cam = (Camera *)ptr->owner_id;
54  cam->lens = fov_to_focallength(value, cam->sensor_x);
55 }
56 
57 static float rna_Camera_angle_y_get(PointerRNA *ptr)
58 {
59  Camera *cam = (Camera *)ptr->owner_id;
60  return focallength_to_fov(cam->lens, cam->sensor_y);
61 }
62 
63 static void rna_Camera_angle_y_set(PointerRNA *ptr, float value)
64 {
65  Camera *cam = (Camera *)ptr->owner_id;
66  cam->lens = fov_to_focallength(value, cam->sensor_y);
67 }
68 
69 static void rna_Camera_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
70 {
72 
73  DEG_id_tag_update(&camera->id, 0);
74 }
75 
76 static void rna_Camera_dependency_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
77 {
80  DEG_id_tag_update(&camera->id, 0);
81 }
82 
83 static CameraBGImage *rna_Camera_background_images_new(Camera *cam)
84 {
86 
88 
89  return bgpic;
90 }
91 
92 static void rna_Camera_background_images_remove(Camera *cam,
93  ReportList *reports,
94  PointerRNA *bgpic_ptr)
95 {
96  CameraBGImage *bgpic = bgpic_ptr->data;
97  if (BLI_findindex(&cam->bg_images, bgpic) == -1) {
98  BKE_report(reports, RPT_ERROR, "Background image cannot be removed");
99  }
100 
102  RNA_POINTER_INVALIDATE(bgpic_ptr);
103 
105 }
106 
107 static void rna_Camera_background_images_clear(Camera *cam)
108 {
110 
112 }
113 
114 static char *rna_Camera_background_image_path(const PointerRNA *ptr)
115 {
116  const CameraBGImage *bgpic = ptr->data;
118 
119  const int bgpic_index = BLI_findindex(&camera->bg_images, bgpic);
120 
121  if (bgpic_index >= 0) {
122  return BLI_sprintfN("background_images[%d]", bgpic_index);
123  }
124 
125  return NULL;
126 }
127 
129 {
130  const char *user = ptr->data;
132 
133  int bgpic_index = BLI_findindex(&camera->bg_images, user - offsetof(CameraBGImage, iuser));
134  if (bgpic_index >= 0) {
135  return BLI_sprintfN("background_images[%d].image_user", bgpic_index);
136  }
137 
138  bgpic_index = BLI_findindex(&camera->bg_images, user - offsetof(CameraBGImage, cuser));
139  if (bgpic_index >= 0) {
140  return BLI_sprintfN("background_images[%d].clip_user", bgpic_index);
141  }
142 
143  return NULL;
144 }
145 
146 static bool rna_Camera_background_images_override_apply(Main *bmain,
147  PointerRNA *ptr_dst,
148  PointerRNA *ptr_src,
149  PointerRNA *UNUSED(ptr_storage),
150  PropertyRNA *prop_dst,
151  PropertyRNA *UNUSED(prop_src),
152  PropertyRNA *UNUSED(prop_storage),
153  const int UNUSED(len_dst),
154  const int UNUSED(len_src),
155  const int UNUSED(len_storage),
156  PointerRNA *UNUSED(ptr_item_dst),
157  PointerRNA *UNUSED(ptr_item_src),
158  PointerRNA *UNUSED(ptr_item_storage),
160 {
162  "Unsupported RNA override operation on background images collection");
163 
164  Camera *cam_dst = (Camera *)ptr_dst->owner_id;
165  Camera *cam_src = (Camera *)ptr_src->owner_id;
166 
167  /* Remember that insertion operations are defined and stored in correct order, which means that
168  * even if we insert several items in a row, we always insert first one, then second one, etc.
169  * So we should always find 'anchor' constraint in both _src *and* _dst. */
170  CameraBGImage *bgpic_anchor = BLI_findlink(&cam_dst->bg_images, opop->subitem_reference_index);
171 
172  /* If `bgpic_anchor` is NULL, `bgpic_src` will be inserted in first position. */
173  CameraBGImage *bgpic_src = BLI_findlink(&cam_src->bg_images, opop->subitem_local_index);
174 
175  if (bgpic_src == NULL) {
176  BLI_assert(bgpic_src != NULL);
177  return false;
178  }
179 
180  CameraBGImage *bgpic_dst = BKE_camera_background_image_copy(bgpic_src, 0);
181 
182  /* This handles NULL anchor as expected by adding at head of list. */
183  BLI_insertlinkafter(&cam_dst->bg_images, bgpic_anchor, bgpic_dst);
184 
185  RNA_property_update_main(bmain, NULL, ptr_dst, prop_dst);
186  return true;
187 }
188 
189 static void rna_Camera_dof_update(Main *bmain, Scene *scene, PointerRNA *UNUSED(ptr))
190 {
193 }
194 
195 char *rna_CameraDOFSettings_path(const PointerRNA *ptr)
196 {
197  /* if there is ID-data, resolve the path using the index instead of by name,
198  * since the name used is the name of the texture assigned, but the texture
199  * may be used multiple times in the same stack
200  */
201  if (ptr->owner_id) {
202  if (GS(ptr->owner_id->name) == ID_CA) {
203  return BLI_strdup("dof");
204  }
205  }
206 
207  return BLI_strdup("");
208 }
209 
210 static void rna_CameraDOFSettings_aperture_blades_set(PointerRNA *ptr, const int value)
211 {
212  CameraDOFSettings *dofsettings = (CameraDOFSettings *)ptr->data;
213 
214  if (ELEM(value, 1, 2)) {
215  if (dofsettings->aperture_blades == 0) {
216  dofsettings->aperture_blades = 3;
217  }
218  else {
219  dofsettings->aperture_blades = 0;
220  }
221  }
222  else {
223  dofsettings->aperture_blades = value;
224  }
225 }
226 
227 #else
228 
230 {
231  StructRNA *srna;
232  PropertyRNA *prop;
233 
234  static const EnumPropertyItem bgpic_source_items[] = {
235  {CAM_BGIMG_SOURCE_IMAGE, "IMAGE", 0, "Image", ""},
236  {CAM_BGIMG_SOURCE_MOVIE, "MOVIE_CLIP", 0, "Movie Clip", ""},
237  {0, NULL, 0, NULL, NULL},
238  };
239 
240  static const EnumPropertyItem bgpic_camera_frame_items[] = {
241  {0, "STRETCH", 0, "Stretch", ""},
242  {CAM_BGIMG_FLAG_CAMERA_ASPECT, "FIT", 0, "Fit", ""},
243  {CAM_BGIMG_FLAG_CAMERA_ASPECT | CAM_BGIMG_FLAG_CAMERA_CROP, "CROP", 0, "Crop", ""},
244  {0, NULL, 0, NULL, NULL},
245  };
246 
247  static const EnumPropertyItem bgpic_display_depth_items[] = {
248  {0, "BACK", 0, "Back", ""},
249  {CAM_BGIMG_FLAG_FOREGROUND, "FRONT", 0, "Front", ""},
250  {0, NULL, 0, NULL, NULL},
251  };
252 
253  srna = RNA_def_struct(brna, "CameraBackgroundImage", NULL);
254  RNA_def_struct_sdna(srna, "CameraBGImage");
256  srna, "Background Image", "Image and settings for display in the 3D View background");
257  RNA_def_struct_path_func(srna, "rna_Camera_background_image_path");
258 
259  prop = RNA_def_boolean(srna,
260  "is_override_data",
261  false,
262  "Override Background Image",
263  "In a local override camera, whether this background image comes from "
264  "the linked reference camera, or is local to the override");
268 
270 
271  prop = RNA_def_property(srna, "source", PROP_ENUM, PROP_NONE);
272  RNA_def_property_enum_sdna(prop, NULL, "source");
273  RNA_def_property_enum_items(prop, bgpic_source_items);
274  RNA_def_property_ui_text(prop, "Background Source", "Data source used for background");
276 
277  prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
278  RNA_def_property_pointer_sdna(prop, NULL, "ima");
279  RNA_def_property_ui_text(prop, "Image", "Image displayed and edited in this space");
283 
284  prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
285  RNA_def_property_pointer_sdna(prop, NULL, "clip");
286  RNA_def_property_ui_text(prop, "MovieClip", "Movie clip displayed and edited in this space");
290 
291  prop = RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE);
293  RNA_def_property_struct_type(prop, "ImageUser");
294  RNA_def_property_pointer_sdna(prop, NULL, "iuser");
296  prop,
297  "Image User",
298  "Parameters defining which layer, pass and frame of the image is displayed");
300 
301  prop = RNA_def_property(srna, "clip_user", PROP_POINTER, PROP_NONE);
303  RNA_def_property_struct_type(prop, "MovieClipUser");
304  RNA_def_property_pointer_sdna(prop, NULL, "cuser");
306  prop, "Clip User", "Parameters defining which frame of the movie clip is displayed");
308 
309  prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_XYZ);
310  RNA_def_property_float_sdna(prop, NULL, "offset");
311  RNA_def_property_ui_text(prop, "Offset", "");
312  RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 0.1, RNA_TRANSLATION_PREC_DEFAULT);
314 
315  prop = RNA_def_property(srna, "scale", PROP_FLOAT, PROP_NONE);
316  RNA_def_property_float_sdna(prop, NULL, "scale");
317  RNA_def_property_ui_text(prop, "Scale", "Scale the background image");
318  RNA_def_property_range(prop, 0.0, FLT_MAX);
321 
322  prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_ANGLE);
323  RNA_def_property_float_sdna(prop, NULL, "rotation");
325  prop, "Rotation", "Rotation for the background image (ortho view only)");
327 
328  prop = RNA_def_property(srna, "use_flip_x", PROP_BOOLEAN, PROP_NONE);
330  RNA_def_property_ui_text(prop, "Flip Horizontally", "Flip the background image horizontally");
332 
333  prop = RNA_def_property(srna, "use_flip_y", PROP_BOOLEAN, PROP_NONE);
335  RNA_def_property_ui_text(prop, "Flip Vertically", "Flip the background image vertically");
337 
338  prop = RNA_def_property(srna, "alpha", PROP_FLOAT, PROP_NONE);
339  RNA_def_property_float_sdna(prop, NULL, "alpha");
341  prop, "Opacity", "Image opacity to blend the image against the background color");
342  RNA_def_property_range(prop, 0.0, 1.0);
344 
345  prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
348  RNA_def_property_ui_text(prop, "Show Expanded", "Show the expanded in the user interface");
349  RNA_def_property_ui_icon(prop, ICON_DISCLOSURE_TRI_RIGHT, 1);
350 
351  prop = RNA_def_property(srna, "use_camera_clip", PROP_BOOLEAN, PROP_NONE);
353  RNA_def_property_ui_text(prop, "Camera Clip", "Use movie clip from active scene camera");
355 
356  prop = RNA_def_property(srna, "show_background_image", PROP_BOOLEAN, PROP_NONE);
358  RNA_def_property_ui_text(prop, "Show Background Image", "Show this image as background");
360 
361  prop = RNA_def_property(srna, "show_on_foreground", PROP_BOOLEAN, PROP_NONE);
364  prop, "Show On Foreground", "Show this image in front of objects in viewport");
366 
367  /* expose 1 flag as a enum of 2 items */
368  prop = RNA_def_property(srna, "display_depth", PROP_ENUM, PROP_NONE);
370  RNA_def_property_enum_items(prop, bgpic_display_depth_items);
371  RNA_def_property_ui_text(prop, "Depth", "Display under or over everything");
373 
374  /* expose 2 flags as a enum of 3 items */
375  prop = RNA_def_property(srna, "frame_method", PROP_ENUM, PROP_NONE);
377  RNA_def_property_enum_items(prop, bgpic_camera_frame_items);
378  RNA_def_property_ui_text(prop, "Frame Method", "How the image fits in the camera frame");
380 
382 }
383 
385 {
386  StructRNA *srna;
387  FunctionRNA *func;
388  PropertyRNA *parm;
389 
390  RNA_def_property_srna(cprop, "CameraBackgroundImages");
391  srna = RNA_def_struct(brna, "CameraBackgroundImages", NULL);
392  RNA_def_struct_sdna(srna, "Camera");
393  RNA_def_struct_ui_text(srna, "Background Images", "Collection of background images");
394 
395  func = RNA_def_function(srna, "new", "rna_Camera_background_images_new");
396  RNA_def_function_ui_description(func, "Add new background image");
397  parm = RNA_def_pointer(
398  func, "image", "CameraBackgroundImage", "", "Image displayed as viewport background");
399  RNA_def_function_return(func, parm);
400 
401  func = RNA_def_function(srna, "remove", "rna_Camera_background_images_remove");
402  RNA_def_function_ui_description(func, "Remove background image");
404  parm = RNA_def_pointer(
405  func, "image", "CameraBackgroundImage", "", "Image displayed as viewport background");
408 
409  func = RNA_def_function(srna, "clear", "rna_Camera_background_images_clear");
410  RNA_def_function_ui_description(func, "Remove all background images");
411 }
412 
414 {
415  StructRNA *srna;
416  PropertyRNA *prop;
417 
418  static const EnumPropertyItem convergence_mode_items[] = {
419  {CAM_S3D_OFFAXIS, "OFFAXIS", 0, "Off-Axis", "Off-axis frustums converging in a plane"},
420  {CAM_S3D_PARALLEL, "PARALLEL", 0, "Parallel", "Parallel cameras with no convergence"},
421  {CAM_S3D_TOE, "TOE", 0, "Toe-in", "Rotated cameras, looking at the convergence distance"},
422  {0, NULL, 0, NULL, NULL},
423  };
424 
425  static const EnumPropertyItem pivot_items[] = {
426  {CAM_S3D_PIVOT_LEFT, "LEFT", 0, "Left", ""},
427  {CAM_S3D_PIVOT_RIGHT, "RIGHT", 0, "Right", ""},
428  {CAM_S3D_PIVOT_CENTER, "CENTER", 0, "Center", ""},
429  {0, NULL, 0, NULL, NULL},
430  };
431 
432  srna = RNA_def_struct(brna, "CameraStereoData", NULL);
433  RNA_def_struct_sdna(srna, "CameraStereoSettings");
434  RNA_def_struct_nested(brna, srna, "Camera");
435  RNA_def_struct_ui_text(srna, "Stereo", "Stereoscopy settings for a Camera data-block");
436 
438 
439  prop = RNA_def_property(srna, "convergence_mode", PROP_ENUM, PROP_NONE);
440  RNA_def_property_enum_items(prop, convergence_mode_items);
441  RNA_def_property_ui_text(prop, "Mode", "");
443 
444  prop = RNA_def_property(srna, "pivot", PROP_ENUM, PROP_NONE);
445  RNA_def_property_enum_items(prop, pivot_items);
446  RNA_def_property_ui_text(prop, "Pivot", "");
448 
449  prop = RNA_def_property(srna, "interocular_distance", PROP_FLOAT, PROP_DISTANCE);
450  RNA_def_property_range(prop, 0.0f, FLT_MAX);
451  RNA_def_property_ui_range(prop, 0.0f, 1e4f, 1, 3);
453  prop,
454  "Interocular Distance",
455  "Set the distance between the eyes - the stereo plane distance / 30 should be fine");
457 
458  prop = RNA_def_property(srna, "convergence_distance", PROP_FLOAT, PROP_DISTANCE);
459  RNA_def_property_range(prop, 0.00001f, FLT_MAX);
460  RNA_def_property_ui_range(prop, 0.00001f, 15.0f, 1, 3);
462  "Convergence Plane Distance",
463  "The converge point for the stereo cameras "
464  "(often the distance between a projector and the projection screen)");
466 
467  prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE);
470  "Spherical Stereo",
471  "Render every pixel rotating the camera around the "
472  "middle of the interocular distance");
474 
475  prop = RNA_def_property(srna, "use_pole_merge", PROP_BOOLEAN, PROP_NONE);
478  prop, "Use Pole Merge", "Fade interocular distance to 0 after the given cutoff angle");
480 
481  prop = RNA_def_property(srna, "pole_merge_angle_from", PROP_FLOAT, PROP_ANGLE);
482  RNA_def_property_range(prop, 0.0f, M_PI_2);
484  prop, "Pole Merge Start Angle", "Angle at which interocular distance starts to fade to 0");
486 
487  prop = RNA_def_property(srna, "pole_merge_angle_to", PROP_FLOAT, PROP_ANGLE);
488  RNA_def_property_range(prop, 0.0f, M_PI_2);
490  prop, "Pole Merge End Angle", "Angle at which interocular distance is 0");
492 
494 }
495 
497 {
498  StructRNA *srna;
499  PropertyRNA *prop;
500 
501  srna = RNA_def_struct(brna, "CameraDOFSettings", NULL);
502  RNA_def_struct_sdna(srna, "CameraDOFSettings");
503  RNA_def_struct_path_func(srna, "rna_CameraDOFSettings_path");
504  RNA_def_struct_ui_text(srna, "Depth of Field", "Depth of Field settings");
505 
507 
508  prop = RNA_def_property(srna, "use_dof", PROP_BOOLEAN, PROP_NONE);
510  RNA_def_property_ui_text(prop, "Depth of Field", "Use Depth of Field");
511  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
512 
513  prop = RNA_def_property(srna, "focus_object", PROP_POINTER, PROP_NONE);
514  RNA_def_property_struct_type(prop, "Object");
515  RNA_def_property_pointer_sdna(prop, NULL, "focus_object");
519  prop, "Focus Object", "Use this object to define the depth of field focal point");
520  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dependency_update");
521 
522  prop = RNA_def_property(srna, "focus_subtarget", PROP_STRING, PROP_NONE);
523  RNA_def_property_string_sdna(prop, NULL, "focus_subtarget");
525  prop, "Focus Bone", "Use this armature bone to define the depth of field focal point");
526  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dependency_update");
527 
528  prop = RNA_def_property(srna, "focus_distance", PROP_FLOAT, PROP_DISTANCE);
529  // RNA_def_property_pointer_sdna(prop, NULL, "focus_distance");
530  RNA_def_property_range(prop, 0.0f, FLT_MAX);
531  RNA_def_property_ui_range(prop, 0.0f, 5000.0f, 1, 2);
533  prop, "Focus Distance", "Distance to the focus point for depth of field");
534  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
535 
536  prop = RNA_def_property(srna, "aperture_fstop", PROP_FLOAT, PROP_NONE);
538  prop,
539  "F-Stop",
540  "F-Stop ratio (lower numbers give more defocus, higher numbers give a sharper image)");
541  RNA_def_property_range(prop, 0.0f, FLT_MAX);
542  RNA_def_property_ui_range(prop, 0.1f, 128.0f, 10, 1);
543  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
544 
545  prop = RNA_def_property(srna, "aperture_blades", PROP_INT, PROP_NONE);
547  prop, "Blades", "Number of blades in aperture for polygonal bokeh (at least 3)");
548  RNA_def_property_range(prop, 0, 16);
549  RNA_def_property_int_funcs(prop, NULL, "rna_CameraDOFSettings_aperture_blades_set", NULL);
550  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
551 
552  prop = RNA_def_property(srna, "aperture_rotation", PROP_FLOAT, PROP_ANGLE);
553  RNA_def_property_ui_text(prop, "Rotation", "Rotation of blades in aperture");
555  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
556 
557  prop = RNA_def_property(srna, "aperture_ratio", PROP_FLOAT, PROP_NONE);
558  RNA_def_property_ui_text(prop, "Ratio", "Distortion to simulate anamorphic lens bokeh");
559  RNA_def_property_range(prop, 0.01f, FLT_MAX);
560  RNA_def_property_ui_range(prop, 1.0f, 2.0f, 0.1, 3);
561  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
562 
564 }
565 
567 {
568  StructRNA *srna;
569  PropertyRNA *prop;
570  static const EnumPropertyItem prop_type_items[] = {
571  {CAM_PERSP, "PERSP", 0, "Perspective", ""},
572  {CAM_ORTHO, "ORTHO", 0, "Orthographic", ""},
573  {CAM_PANO, "PANO", 0, "Panoramic", ""},
574  {0, NULL, 0, NULL, NULL},
575  };
576  static const EnumPropertyItem prop_lens_unit_items[] = {
577  {0, "MILLIMETERS", 0, "Millimeters", "Specify focal length of the lens in millimeters"},
579  "FOV",
580  0,
581  "Field of View",
582  "Specify the lens as the field of view's angle"},
583  {0, NULL, 0, NULL, NULL},
584  };
585  static const EnumPropertyItem sensor_fit_items[] = {
587  "AUTO",
588  0,
589  "Auto",
590  "Fit to the sensor width or height depending on image resolution"},
591  {CAMERA_SENSOR_FIT_HOR, "HORIZONTAL", 0, "Horizontal", "Fit to the sensor width"},
592  {CAMERA_SENSOR_FIT_VERT, "VERTICAL", 0, "Vertical", "Fit to the sensor height"},
593  {0, NULL, 0, NULL, NULL},
594  };
595 
596  srna = RNA_def_struct(brna, "Camera", "ID");
597  RNA_def_struct_ui_text(srna, "Camera", "Camera data-block for storing camera settings");
598  RNA_def_struct_ui_icon(srna, ICON_CAMERA_DATA);
599 
601 
602  /* Enums */
603  prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
604  RNA_def_property_enum_items(prop, prop_type_items);
605  RNA_def_property_ui_text(prop, "Type", "Camera types");
606  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
607 
608  prop = RNA_def_property(srna, "sensor_fit", PROP_ENUM, PROP_NONE);
609  RNA_def_property_enum_sdna(prop, NULL, "sensor_fit");
610  RNA_def_property_enum_items(prop, sensor_fit_items);
612  prop, "Sensor Fit", "Method to fit image and field of view angle inside the sensor");
613  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
614 
615  /* Number values */
616 
617  prop = RNA_def_property(srna, "passepartout_alpha", PROP_FLOAT, PROP_FACTOR);
618  RNA_def_property_float_sdna(prop, NULL, "passepartalpha");
620  prop, "Passepartout Alpha", "Opacity (alpha) of the darkened overlay in Camera view");
622 
623  prop = RNA_def_property(srna, "angle_x", PROP_FLOAT, PROP_ANGLE);
624  RNA_def_property_range(prop, DEG2RAD(0.367), DEG2RAD(172.847));
626  RNA_def_property_ui_text(prop, "Horizontal FOV", "Camera lens horizontal field of view");
627  RNA_def_property_float_funcs(prop, "rna_Camera_angle_x_get", "rna_Camera_angle_x_set", NULL);
628  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
629 
630  prop = RNA_def_property(srna, "angle_y", PROP_FLOAT, PROP_ANGLE);
631  RNA_def_property_range(prop, DEG2RAD(0.367), DEG2RAD(172.847));
633  RNA_def_property_ui_text(prop, "Vertical FOV", "Camera lens vertical field of view");
634  RNA_def_property_float_funcs(prop, "rna_Camera_angle_y_get", "rna_Camera_angle_y_set", NULL);
635  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
636 
637  prop = RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE);
638  RNA_def_property_range(prop, DEG2RAD(0.367), DEG2RAD(172.847));
640  RNA_def_property_ui_text(prop, "Field of View", "Camera lens field of view");
641  RNA_def_property_float_funcs(prop, "rna_Camera_angle_get", "rna_Camera_angle_set", NULL);
642  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
643 
644  prop = RNA_def_property(srna, "clip_start", PROP_FLOAT, PROP_DISTANCE);
645  RNA_def_property_range(prop, 1e-6f, FLT_MAX);
646  RNA_def_property_ui_range(prop, 0.001f, FLT_MAX, 10, 3);
647  RNA_def_property_ui_text(prop, "Clip Start", "Camera near clipping distance");
649 
650  prop = RNA_def_property(srna, "clip_end", PROP_FLOAT, PROP_DISTANCE);
651  RNA_def_property_range(prop, 1e-6f, FLT_MAX);
652  RNA_def_property_ui_range(prop, 0.001f, FLT_MAX, 10, 3);
653  RNA_def_property_ui_text(prop, "Clip End", "Camera far clipping distance");
655 
656  prop = RNA_def_property(srna, "lens", PROP_FLOAT, PROP_DISTANCE_CAMERA);
657  RNA_def_property_float_sdna(prop, NULL, "lens");
658  RNA_def_property_range(prop, 1.0f, FLT_MAX);
659  RNA_def_property_ui_range(prop, 1.0f, 5000.0f, 100, 4);
661  prop, "Focal Length", "Perspective Camera focal length value in millimeters");
662  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
663 
664  prop = RNA_def_property(srna, "sensor_width", PROP_FLOAT, PROP_DISTANCE_CAMERA);
665  RNA_def_property_float_sdna(prop, NULL, "sensor_x");
666  RNA_def_property_range(prop, 1.0f, FLT_MAX);
667  RNA_def_property_ui_range(prop, 1.0f, 100.0f, 100, 4);
669  prop, "Sensor Width", "Horizontal size of the image sensor area in millimeters");
670  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
671 
672  prop = RNA_def_property(srna, "sensor_height", PROP_FLOAT, PROP_DISTANCE_CAMERA);
673  RNA_def_property_float_sdna(prop, NULL, "sensor_y");
674  RNA_def_property_range(prop, 1.0f, FLT_MAX);
675  RNA_def_property_ui_range(prop, 1.0f, 100.0f, 100, 4);
677  prop, "Sensor Height", "Vertical size of the image sensor area in millimeters");
678  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
679 
680  prop = RNA_def_property(srna, "ortho_scale", PROP_FLOAT, PROP_NONE);
681  RNA_def_property_float_sdna(prop, NULL, "ortho_scale");
682  RNA_def_property_range(prop, FLT_MIN, FLT_MAX);
683  RNA_def_property_ui_range(prop, 0.001f, 10000.0f, 10, 3);
685  prop, "Orthographic Scale", "Orthographic Camera scale (similar to zoom)");
686  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
687 
688  prop = RNA_def_property(srna, "display_size", PROP_FLOAT, PROP_DISTANCE);
689  RNA_def_property_float_sdna(prop, NULL, "drawsize");
690  RNA_def_property_range(prop, 0.01f, 1000.0f);
691  RNA_def_property_ui_range(prop, 0.01, 100, 1, 2);
693  prop, "Display Size", "Apparent size of the Camera object in the 3D View");
695 
696  prop = RNA_def_property(srna, "shift_x", PROP_FLOAT, PROP_NONE);
697  RNA_def_property_float_sdna(prop, NULL, "shiftx");
698  RNA_def_property_ui_range(prop, -2.0, 2.0, 1, 3);
699  RNA_def_property_ui_text(prop, "Shift X", "Camera horizontal shift");
700  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
701 
702  prop = RNA_def_property(srna, "shift_y", PROP_FLOAT, PROP_NONE);
703  RNA_def_property_float_sdna(prop, NULL, "shifty");
704  RNA_def_property_ui_range(prop, -2.0, 2.0, 1, 3);
705  RNA_def_property_ui_text(prop, "Shift Y", "Camera vertical shift");
706  RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_update");
707 
708  /* Stereo Settings */
709  prop = RNA_def_property(srna, "stereo", PROP_POINTER, PROP_NONE);
711  RNA_def_property_pointer_sdna(prop, NULL, "stereo");
712  RNA_def_property_struct_type(prop, "CameraStereoData");
713  RNA_def_property_ui_text(prop, "Stereo", "");
714 
715  /* flag */
716  prop = RNA_def_property(srna, "show_limits", PROP_BOOLEAN, PROP_NONE);
719  prop, "Show Limits", "Display the clipping range and focus point on the camera");
721 
722  prop = RNA_def_property(srna, "show_mist", PROP_BOOLEAN, PROP_NONE);
725  prop, "Show Mist", "Display a line from the Camera to indicate the mist area");
727 
728  prop = RNA_def_property(srna, "show_passepartout", PROP_BOOLEAN, PROP_NONE);
731  prop, "Show Passepartout", "Show a darkened overlay outside the image area in Camera view");
733 
734  prop = RNA_def_property(srna, "show_safe_areas", PROP_BOOLEAN, PROP_NONE);
737  prop, "Show Safe Areas", "Show TV title safe and action safe areas in Camera view");
739 
740  prop = RNA_def_property(srna, "show_safe_center", PROP_BOOLEAN, PROP_NONE);
743  "Show Center-Cut Safe Areas",
744  "Show safe areas to fit content in a different aspect ratio");
746 
747  prop = RNA_def_property(srna, "show_name", PROP_BOOLEAN, PROP_NONE);
749  RNA_def_property_ui_text(prop, "Show Name", "Show the active Camera's name in Camera view");
751 
752  prop = RNA_def_property(srna, "show_sensor", PROP_BOOLEAN, PROP_NONE);
755  prop, "Show Sensor Size", "Show sensor size (film gate) in Camera view");
757 
758  prop = RNA_def_property(srna, "show_background_images", PROP_BOOLEAN, PROP_NONE);
761  prop, "Display Background Images", "Display reference images behind objects in the 3D View");
763 
764  prop = RNA_def_property(srna, "lens_unit", PROP_ENUM, PROP_NONE);
766  RNA_def_property_enum_items(prop, prop_lens_unit_items);
767  RNA_def_property_ui_text(prop, "Lens Unit", "Unit to edit lens in for the user interface");
768 
769  /* dtx */
770  prop = RNA_def_property(srna, "show_composition_center", PROP_BOOLEAN, PROP_NONE);
773  prop, "Center", "Display center composition guide inside the camera view");
775 
776  prop = RNA_def_property(srna, "show_composition_center_diagonal", PROP_BOOLEAN, PROP_NONE);
779  prop, "Center Diagonal", "Display diagonal center composition guide inside the camera view");
781 
782  prop = RNA_def_property(srna, "show_composition_thirds", PROP_BOOLEAN, PROP_NONE);
785  prop, "Thirds", "Display rule of thirds composition guide inside the camera view");
787 
788  prop = RNA_def_property(srna, "show_composition_golden", PROP_BOOLEAN, PROP_NONE);
791  prop, "Golden Ratio", "Display golden ratio composition guide inside the camera view");
793 
794  prop = RNA_def_property(srna, "show_composition_golden_tria_a", PROP_BOOLEAN, PROP_NONE);
797  "Golden Triangle A",
798  "Display golden triangle A composition guide inside the camera view");
800 
801  prop = RNA_def_property(srna, "show_composition_golden_tria_b", PROP_BOOLEAN, PROP_NONE);
804  "Golden Triangle B",
805  "Display golden triangle B composition guide inside the camera view");
807 
808  prop = RNA_def_property(srna, "show_composition_harmony_tri_a", PROP_BOOLEAN, PROP_NONE);
811  prop, "Harmonious Triangle A", "Display harmony A composition guide inside the camera view");
813 
814  prop = RNA_def_property(srna, "show_composition_harmony_tri_b", PROP_BOOLEAN, PROP_NONE);
817  prop, "Harmonious Triangle B", "Display harmony B composition guide inside the camera view");
819 
820  /* pointers */
821  prop = RNA_def_property(srna, "dof", PROP_POINTER, PROP_NONE);
822  RNA_def_property_struct_type(prop, "CameraDOFSettings");
823  RNA_def_property_ui_text(prop, "Depth Of Field", "");
825 
826  prop = RNA_def_property(srna, "background_images", PROP_COLLECTION, PROP_NONE);
827  RNA_def_property_collection_sdna(prop, NULL, "bg_images", NULL);
828  RNA_def_property_struct_type(prop, "CameraBackgroundImage");
829  RNA_def_property_ui_text(prop, "Background Images", "List of background images");
831  RNA_def_property_override_funcs(prop, NULL, NULL, "rna_Camera_background_images_override_apply");
833 
835 
837 
840 
841  /* Nested Data. */
843 
844  /* *** Animated *** */
847 
848  /* Camera API */
849  RNA_api_camera(srna);
850 }
851 
852 #endif
Camera data-block and utility functions.
float BKE_camera_sensor_size(int sensor_fit, float sensor_x, float sensor_y)
Definition: camera.c:236
void BKE_camera_background_image_clear(struct Camera *cam)
Definition: camera.c:1182
struct CameraBGImage * BKE_camera_background_image_copy(struct CameraBGImage *bgpic_src, const int copy_flag)
Definition: camera.c:1157
struct CameraBGImage * BKE_camera_background_image_new(struct Camera *cam)
Definition: camera.c:1143
void BKE_camera_background_image_remove(struct Camera *cam, struct CameraBGImage *bgpic)
Definition: camera.c:1175
General operations, lookup, etc. for blender objects.
void BKE_report(ReportList *reports, eReportType type, const char *message)
Definition: report.c:83
#define BLI_assert(a)
Definition: BLI_assert.h:46
#define BLI_assert_msg(a, msg)
Definition: BLI_assert.h:53
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
Definition: listbase.c:301
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define M_PI_2
Definition: BLI_math_base.h:23
#define M_PI
Definition: BLI_math_base.h:20
#define DEG2RAD(_deg)
float focallength_to_fov(float focal_length, float sensor)
float fov_to_focallength(float fov, float sensor)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
Definition: string.c:42
#define UNUSED(x)
#define ELEM(...)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ IDOVERRIDE_LIBRARY_OP_INSERT_AFTER
Definition: DNA_ID.h:230
@ ID_CA
Definition: DNA_ID_enums.h:56
@ CAM_BGIMG_FLAG_FLIP_X
@ CAM_BGIMG_FLAG_FLIP_Y
@ 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_DOF_ENABLED
@ CAM_BGIMG_SOURCE_IMAGE
@ CAM_BGIMG_SOURCE_MOVIE
@ CAM_S3D_PARALLEL
@ CAM_S3D_OFFAXIS
@ CAM_S3D_TOE
@ CAM_SHOWLIMITS
@ CAM_SHOW_BG_IMAGE
@ CAM_SHOWPASSEPARTOUT
@ CAM_SHOW_SAFE_MARGINS
@ CAM_SHOW_SAFE_CENTER
@ CAM_SHOWMIST
@ CAM_ANGLETOGGLE
@ CAM_SHOWNAME
@ CAM_SHOWSENSOR
@ CAMERA_SENSOR_FIT_HOR
@ CAMERA_SENSOR_FIT_AUTO
@ CAMERA_SENSOR_FIT_VERT
@ CAM_S3D_SPHERICAL
@ CAM_S3D_POLE_MERGE
@ CAM_DTX_GOLDEN_TRI_A
@ CAM_DTX_CENTER
@ CAM_DTX_HARMONY_TRI_A
@ CAM_DTX_GOLDEN
@ CAM_DTX_GOLDEN_TRI_B
@ CAM_DTX_HARMONY_TRI_B
@ CAM_DTX_CENTER_DIAG
@ CAM_DTX_THIRDS
@ CAM_PERSP
@ CAM_PANO
@ CAM_ORTHO
@ CAM_S3D_PIVOT_CENTER
@ CAM_S3D_PIVOT_RIGHT
@ CAM_S3D_PIVOT_LEFT
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 Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise 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)
Definition: RNA_access.h:744
@ PARM_RNAPTR
Definition: RNA_types.h:354
@ PARM_REQUIRED
Definition: RNA_types.h:352
@ FUNC_USE_REPORTS
Definition: RNA_types.h:663
@ PROP_FLOAT
Definition: RNA_types.h:61
@ PROP_BOOLEAN
Definition: RNA_types.h:59
@ PROP_ENUM
Definition: RNA_types.h:63
@ PROP_INT
Definition: RNA_types.h:60
@ PROP_STRING
Definition: RNA_types.h:62
@ PROP_POINTER
Definition: RNA_types.h:64
@ PROP_COLLECTION
Definition: RNA_types.h:65
#define RNA_TRANSLATION_PREC_DEFAULT
Definition: RNA_types.h:117
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
Definition: RNA_types.h:312
@ PROPOVERRIDE_LIBRARY_INSERTION
Definition: RNA_types.h:337
@ PROPOVERRIDE_NO_PROP_NAME
Definition: RNA_types.h:344
@ PROP_THICK_WRAP
Definition: RNA_types.h:285
@ PROP_ANIMATABLE
Definition: RNA_types.h:202
@ PROP_EDITABLE
Definition: RNA_types.h:189
@ PROP_NEVER_NULL
Definition: RNA_types.h:239
@ PROP_NO_DEG_UPDATE
Definition: RNA_types.h:301
@ PROP_XYZ
Definition: RNA_types.h:162
@ PROP_DISTANCE
Definition: RNA_types.h:149
@ PROP_ANGLE
Definition: RNA_types.h:145
@ PROP_DISTANCE_CAMERA
Definition: RNA_types.h:150
@ PROP_NONE
Definition: RNA_types.h:126
@ PROP_FACTOR
Definition: RNA_types.h:144
#define ND_SEQUENCER
Definition: WM_types.h:385
#define ND_DRAW
Definition: WM_types.h:410
#define NC_SCENE
Definition: WM_types.h:328
#define NC_CAMERA
Definition: WM_types.h:351
#define NC_OBJECT
Definition: WM_types.h:329
#define ND_DRAW_RENDER_VIEWPORT
Definition: WM_types.h:418
Scene scene
#define GS(x)
Definition: iris.c:225
void RNA_property_update_main(Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2143
void rna_def_animdata_common(StructRNA *srna)
static void rna_def_camera_stereo_data(BlenderRNA *brna)
Definition: rna_camera.c:413
void RNA_def_camera(BlenderRNA *brna)
Definition: rna_camera.c:566
static void rna_def_camera_dof_settings_data(BlenderRNA *brna)
Definition: rna_camera.c:496
static void rna_def_camera_background_image(BlenderRNA *brna)
Definition: rna_camera.c:229
static void rna_def_camera_background_images(BlenderRNA *brna, PropertyRNA *cprop)
Definition: rna_camera.c:384
void RNA_api_camera(StructRNA *srna)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2740
void RNA_define_lib_overridable(const bool make_overridable)
Definition: rna_define.c:742
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
Definition: rna_define.c:1193
void RNA_define_animate_sdna(bool animate)
Definition: rna_define.c:748
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
Definition: rna_define.c:3493
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
Definition: rna_define.c:4170
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
Definition: rna_define.c:2236
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
Definition: rna_define.c:1526
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
Definition: rna_define.c:4312
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
Definition: rna_define.c:3126
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
Definition: rna_define.c:1645
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2695
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
Definition: rna_define.c:1653
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
Definition: rna_define.c:4273
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
Definition: rna_define.c:3474
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
Definition: rna_define.c:1237
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
Definition: rna_define.c:1872
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
Definition: rna_define.c:1048
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
Definition: rna_define.c:1737
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
Definition: rna_define.c:1772
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
Definition: rna_define.c:2769
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
Definition: rna_define.c:4347
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
Definition: rna_define.c:2900
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
Definition: rna_define.c:1257
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2669
void RNA_def_function_flag(FunctionRNA *func, int flag)
Definition: rna_define.c:4342
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
Definition: rna_define.c:1495
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
Definition: rna_define.c:1028
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2601
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
Definition: rna_define.c:3028
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
Definition: rna_define.c:1245
void RNA_def_property_override_funcs(PropertyRNA *prop, const char *diff, const char *store, const char *apply)
Definition: rna_define.c:2879
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
Definition: rna_define.c:1490
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2493
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
Definition: rna_define.c:1664
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
Definition: rna_define.c:2327
void RNA_def_struct_nested(BlenderRNA *brna, StructRNA *srna, const char *structname)
Definition: rna_define.c:1119
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
Definition: rna_define.c:1503
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
Definition: rna_define.c:1518
char * rna_CameraBackgroundImage_image_or_movieclip_user_path(const struct PointerRNA *ptr)
void SEQ_relations_invalidate_scene_strips(Main *bmain, Scene *scene_target)
char sensor_fit
float sensor_y
struct ListBase bg_images
float lens
float sensor_x
char name[66]
Definition: DNA_ID.h:378
Definition: BKE_main.h:121
void * data
Definition: RNA_types.h:38
struct ID * owner_id
Definition: RNA_types.h:36
void WM_main_add_notifier(unsigned int type, void *reference)
PointerRNA * ptr
Definition: wm_files.c:3480