Blender  V3.3
BKE_camera.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
4 #pragma once
5 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 struct Camera;
15 struct Depsgraph;
16 struct Main;
17 struct Object;
18 struct RegionView3D;
19 struct RenderData;
20 struct Scene;
21 struct View3D;
22 struct rctf;
23 
24 /* Camera Data-block */
25 
26 void *BKE_camera_add(struct Main *bmain, const char *name);
27 
28 /* Camera Usage */
29 
33 float BKE_camera_object_dof_distance(const struct Object *ob);
34 
35 int BKE_camera_sensor_fit(int sensor_fit, float sizex, float sizey);
36 float BKE_camera_sensor_size(int sensor_fit, float sensor_x, float sensor_y);
37 
44 typedef struct CameraParams {
45  /* lens */
46  bool is_ortho;
47  float lens;
48  float ortho_scale;
49  float zoom;
50 
51  float shiftx;
52  float shifty;
53  float offsetx;
54  float offsety;
55 
56  /* sensor */
57  float sensor_x;
58  float sensor_y;
60 
61  /* clipping */
62  float clip_start;
63  float clip_end;
64 
65  /* computed viewplane */
66  float ycor;
67  float viewdx;
68  float viewdy;
70 
71  /* computed matrix */
72  float winmat[4][4];
74 
75 /* Values for CameraParams.zoom, need to be taken into account for some operations. */
76 #define CAMERA_PARAM_ZOOM_INIT_CAMOB 1.0f
77 #define CAMERA_PARAM_ZOOM_INIT_PERSP 2.0f
78 
82  const struct Depsgraph *depsgraph,
83  const struct View3D *v3d,
84  const struct RegionView3D *rv3d);
85 
87  CameraParams *params, int winx, int winy, float aspx, float aspy);
92 
93 /* Camera View Frame */
94 
96  const struct Camera *camera,
97  float drawsize,
98  bool do_clip,
99  const float scale[3],
100  float r_asp[2],
101  float r_shift[2],
102  float *r_drawsize,
103  float r_vec[4][3]);
104 void BKE_camera_view_frame(const struct Scene *scene,
105  const struct Camera *camera,
106  float r_vec[4][3]);
107 
114  const struct Scene *scene,
115  struct Object *camera_ob,
116  float r_co[3],
117  float *r_scale,
118  float *r_clip_start,
119  float *r_clip_end);
121  const float (*cos)[3],
122  int num_cos,
123  struct Object *camera_ob,
124  float r_co[3],
125  float *r_scale);
126 
127 /* Camera multi-view API */
128 
133  struct Object *camera,
134  const char *viewname);
139  const struct Object *camera,
140  bool is_left,
141  float r_viewmat[4][4]);
143  const struct Object *camera,
144  const char *viewname,
145  float r_modelmat[4][4]);
147  const struct Object *camera,
148  const char *viewname,
149  float r_modelmat[4][4]);
151  const struct Object *camera,
152  const char *viewname,
153  float r_winmat[4][4]);
155  const struct Object *camera,
156  const char *viewname);
158  struct CameraParams *params,
159  const struct Object *camera,
160  const char *viewname);
162  const struct Object *camera);
163 
164 /* Camera background image API */
165 
167 
175  const int copy_flag);
176 void BKE_camera_background_image_remove(struct Camera *cam, struct CameraBGImage *bgpic);
177 void BKE_camera_background_image_clear(struct Camera *cam);
178 
179 #ifdef __cplusplus
180 }
181 #endif
float BKE_camera_sensor_size(int sensor_fit, float sensor_x, float sensor_y)
Definition: camera.c:236
void BKE_camera_multiview_params(const struct RenderData *rd, struct CameraParams *params, const struct Object *camera, const char *viewname)
bool BKE_camera_view_frame_fit_to_scene(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *camera_ob, float r_co[3], float *r_scale, float *r_clip_start, float *r_clip_end)
float BKE_camera_multiview_shift_x(const struct RenderData *rd, const struct Object *camera, const char *viewname)
void BKE_camera_background_image_clear(struct Camera *cam)
Definition: camera.c:1182
float BKE_camera_object_dof_distance(const struct Object *ob)
struct Object * BKE_camera_multiview_render(const struct Scene *scene, struct Object *camera, const char *viewname)
int BKE_camera_sensor_fit(int sensor_fit, float sizex, float sizey)
Definition: camera.c:246
void BKE_camera_params_init(CameraParams *params)
Definition: camera.c:265
struct CameraBGImage * BKE_camera_background_image_copy(struct CameraBGImage *bgpic_src, const int copy_flag)
Definition: camera.c:1157
bool BKE_camera_view_frame_fit_to_coords(const struct Depsgraph *depsgraph, const float(*cos)[3], int num_cos, struct Object *camera_ob, float r_co[3], float *r_scale)
void BKE_camera_multiview_view_matrix(const struct RenderData *rd, const struct Object *camera, bool is_left, float r_viewmat[4][4])
void BKE_camera_multiview_model_matrix(const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_modelmat[4][4])
void BKE_camera_params_from_view3d(CameraParams *params, const struct Depsgraph *depsgraph, const struct View3D *v3d, const struct RegionView3D *rv3d)
void BKE_camera_multiview_model_matrix_scaled(const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_modelmat[4][4])
void BKE_camera_params_from_object(CameraParams *params, const struct Object *cam_ob)
struct CameraBGImage * BKE_camera_background_image_new(struct Camera *cam)
Definition: camera.c:1143
void BKE_camera_params_compute_viewplane(CameraParams *params, int winx, int winy, float aspx, float aspy)
Definition: camera.c:364
bool BKE_camera_multiview_spherical_stereo(const struct RenderData *rd, const struct Object *camera)
void BKE_camera_multiview_window_matrix(const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_winmat[4][4])
void BKE_camera_view_frame(const struct Scene *scene, const struct Camera *camera, float r_vec[4][3])
void * BKE_camera_add(struct Main *bmain, const char *name)
Definition: camera.c:203
void BKE_camera_params_compute_matrix(CameraParams *params)
Definition: camera.c:429
void BKE_camera_view_frame_ex(const struct Scene *scene, const struct Camera *camera, float drawsize, bool do_clip, const float scale[3], float r_asp[2], float r_shift[2], float *r_drawsize, float r_vec[4][3])
struct CameraParams CameraParams
void BKE_camera_background_image_remove(struct Camera *cam, struct CameraBGImage *bgpic)
Definition: camera.c:1175
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
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
static float is_left(const float p0[2], const float p1[2], const float p2[2])
Definition: convexhull_2d.c:37
Scene scene
const Depsgraph * depsgraph
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
Definition: rall1d.h:319
int sensor_fit
Definition: BKE_camera.h:59
float viewdy
Definition: BKE_camera.h:68
float ortho_scale
Definition: BKE_camera.h:48
float shifty
Definition: BKE_camera.h:52
float sensor_x
Definition: BKE_camera.h:57
float winmat[4][4]
Definition: BKE_camera.h:72
bool is_ortho
Definition: BKE_camera.h:46
float zoom
Definition: BKE_camera.h:49
float offsetx
Definition: BKE_camera.h:53
float ycor
Definition: BKE_camera.h:66
float offsety
Definition: BKE_camera.h:54
float lens
Definition: BKE_camera.h:47
float clip_start
Definition: BKE_camera.h:62
float clip_end
Definition: BKE_camera.h:63
float viewdx
Definition: BKE_camera.h:67
rctf viewplane
Definition: BKE_camera.h:69
float sensor_y
Definition: BKE_camera.h:58
float shiftx
Definition: BKE_camera.h:51
Definition: BKE_main.h:121