Blender V4.3
BKE_camera.h File Reference

Camera data-block and utility functions. More...

#include "BLI_rect.h"

Go to the source code of this file.

Classes

struct  CameraParams
 

Macros

#define CAMERA_PARAM_ZOOM_INIT_CAMOB   1.0f
 
#define CAMERA_PARAM_ZOOM_INIT_PERSP   2.0f
 

Typedefs

typedef struct CameraParams CameraParams
 

Functions

void * BKE_camera_add (struct Main *bmain, const char *name)
 
float BKE_camera_object_dof_distance (const struct Object *ob)
 
int BKE_camera_sensor_fit (int sensor_fit, float sizex, float sizey)
 
float BKE_camera_sensor_size (int sensor_fit, float sensor_x, float sensor_y)
 
void BKE_camera_params_init (CameraParams *params)
 
void BKE_camera_params_from_object (CameraParams *params, const struct Object *cam_ob)
 
void BKE_camera_params_from_view3d (CameraParams *params, const struct Depsgraph *depsgraph, const struct View3D *v3d, const struct RegionView3D *rv3d)
 
void BKE_camera_params_compute_viewplane (CameraParams *params, int winx, int winy, float aspx, float aspy)
 
void BKE_camera_params_crop_viewplane (rctf *viewplane, int winx, int winy, const rcti *region)
 
void BKE_camera_params_compute_matrix (CameraParams *params)
 
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])
 
void BKE_camera_view_frame (const struct Scene *scene, const struct Camera *camera, float r_vec[4][3])
 
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)
 
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)
 
struct ObjectBKE_camera_multiview_render (const struct Scene *scene, struct Object *camera, const char *viewname)
 
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_multiview_model_matrix_scaled (const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_modelmat[4][4])
 
void BKE_camera_multiview_window_matrix (const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_winmat[4][4])
 
float BKE_camera_multiview_shift_x (const struct RenderData *rd, const struct Object *camera, const char *viewname)
 
void BKE_camera_multiview_params (const struct RenderData *rd, struct CameraParams *params, const struct Object *camera, const char *viewname)
 
bool BKE_camera_multiview_spherical_stereo (const struct RenderData *rd, const struct Object *camera)
 
struct CameraBGImageBKE_camera_background_image_new (struct Camera *cam)
 
struct CameraBGImageBKE_camera_background_image_copy (const struct CameraBGImage *bgpic_src, int flag)
 
void BKE_camera_background_image_remove (struct Camera *cam, struct CameraBGImage *bgpic)
 
void BKE_camera_background_image_clear (struct Camera *cam)
 

Detailed Description

Camera data-block and utility functions.

Definition in file BKE_camera.h.

Macro Definition Documentation

◆ CAMERA_PARAM_ZOOM_INIT_CAMOB

#define CAMERA_PARAM_ZOOM_INIT_CAMOB   1.0f

Definition at line 78 of file BKE_camera.h.

Referenced by BKE_camera_params_from_view3d(), and ED_view3d_radius_to_dist().

◆ CAMERA_PARAM_ZOOM_INIT_PERSP

#define CAMERA_PARAM_ZOOM_INIT_PERSP   2.0f

Definition at line 79 of file BKE_camera.h.

Referenced by BKE_camera_params_from_view3d(), and ED_view3d_radius_to_dist().

Typedef Documentation

◆ CameraParams

typedef struct CameraParams CameraParams

Camera Parameters:

Intermediate struct for storing camera parameters from various sources, to unify computation of view-plane, window matrix, ... etc.

Function Documentation

◆ BKE_camera_add()

◆ BKE_camera_background_image_clear()

void BKE_camera_background_image_clear ( struct Camera * cam)

◆ BKE_camera_background_image_copy()

struct CameraBGImage * BKE_camera_background_image_copy ( const struct CameraBGImage * bgpic_src,
int flag )

Duplicate a background image, in a ID management compatible way.

Parameters
copy_flagThe usual ID copying flags, see LIB_ID_CREATE_/LIB_ID_COPY_ enums in BKE_lib_id.hh.

◆ BKE_camera_background_image_new()

◆ BKE_camera_background_image_remove()

void BKE_camera_background_image_remove ( struct Camera * cam,
struct CameraBGImage * bgpic )

◆ BKE_camera_multiview_model_matrix()

void BKE_camera_multiview_model_matrix ( const struct RenderData * rd,
const struct Object * camera,
const char * viewname,
float r_modelmat[4][4] )

◆ BKE_camera_multiview_model_matrix_scaled()

void BKE_camera_multiview_model_matrix_scaled ( const struct RenderData * rd,
const struct Object * camera,
const char * viewname,
float r_modelmat[4][4] )

◆ BKE_camera_multiview_params()

void BKE_camera_multiview_params ( const struct RenderData * rd,
struct CameraParams * params,
const struct Object * camera,
const char * viewname )

◆ BKE_camera_multiview_render()

struct Object * BKE_camera_multiview_render ( const struct Scene * scene,
struct Object * camera,
const char * viewname )

◆ BKE_camera_multiview_shift_x()

float BKE_camera_multiview_shift_x ( const struct RenderData * rd,
const struct Object * camera,
const char * viewname )

◆ BKE_camera_multiview_spherical_stereo()

bool BKE_camera_multiview_spherical_stereo ( const struct RenderData * rd,
const struct Object * camera )

◆ BKE_camera_multiview_view_matrix()

void BKE_camera_multiview_view_matrix ( const struct RenderData * rd,
const struct Object * camera,
bool is_left,
float r_viewmat[4][4] )

The view matrix is used by the viewport drawing, it is basically the inverted model matrix.

Referenced by view3d_stereo3d_setup(), and view3d_stereo3d_setup_offscreen().

◆ BKE_camera_multiview_window_matrix()

void BKE_camera_multiview_window_matrix ( const struct RenderData * rd,
const struct Object * camera,
const char * viewname,
float r_winmat[4][4] )

◆ BKE_camera_object_dof_distance()

◆ BKE_camera_params_compute_matrix()

◆ BKE_camera_params_compute_viewplane()

◆ BKE_camera_params_crop_viewplane()

void BKE_camera_params_crop_viewplane ( rctf * viewplane,
int winx,
int winy,
const rcti * region )

Crop viewplane given the current resolution and a pixel region inside the view plane.

Definition at line 488 of file blenkernel/intern/camera.cc.

References BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_size_x(), BLI_rcti_size_y(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by blender::eevee::Camera::sync().

◆ BKE_camera_params_from_object()

◆ BKE_camera_params_from_view3d()

void BKE_camera_params_from_view3d ( CameraParams * params,
const struct Depsgraph * depsgraph,
const struct View3D * v3d,
const struct RegionView3D * rv3d )

◆ BKE_camera_params_init()

◆ BKE_camera_sensor_fit()

◆ BKE_camera_sensor_size()

◆ BKE_camera_view_frame()

void BKE_camera_view_frame ( const struct Scene * scene,
const struct Camera * camera,
float r_vec[4][3] )

◆ BKE_camera_view_frame_ex()

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] )

◆ BKE_camera_view_frame_fit_to_coords()

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 )

◆ BKE_camera_view_frame_fit_to_scene()

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 )
Parameters
r_scaleonly valid/useful for orthographic cameras.
Note
Don't move the camera, just yield the fit location.

Referenced by view3d_camera_to_view_selected_impl().