Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/BKE_camera.h')
-rw-r--r--source/blender/blenkernel/BKE_camera.h58
1 files changed, 49 insertions, 9 deletions
diff --git a/source/blender/blenkernel/BKE_camera.h b/source/blender/blenkernel/BKE_camera.h
index fc0ef0248f3..4a0f38d926c 100644
--- a/source/blender/blenkernel/BKE_camera.h
+++ b/source/blender/blenkernel/BKE_camera.h
@@ -36,6 +36,8 @@
extern "C" {
#endif
+#include "DNA_vec_types.h"
+
struct Camera;
struct Object;
struct RenderData;
@@ -48,16 +50,54 @@ struct Camera *copy_camera(struct Camera *cam);
void make_local_camera(struct Camera *cam);
void free_camera(struct Camera *ca);
-float dof_camera(struct Object *ob);
+/* Camera Object */
+
+float object_camera_dof_distance(struct Object *ob);
+void object_camera_mode(struct RenderData *rd, struct Object *ob);
+
+/* Camera Parameters:
+ *
+ * Intermediate struct for storing camera parameters from various sources,
+ * to unify computation of viewplane, window matrix, ... */
+
+typedef struct CameraParams {
+ /* lens */
+ int is_ortho;
+ float lens;
+ float ortho_scale;
+
+ float shiftx;
+ float shifty;
+
+ /* sensor */
+ float sensor_x;
+ float sensor_y;
+ int sensor_fit;
+
+ /* clipping */
+ float clipsta;
+ float clipend;
+
+ /* fields */
+ int use_fields;
+ int field_second;
+ int field_odd;
+
+ /* compute result */
+ float ycor;
+
+ float viewdx;
+ float viewdy;
+ rctf viewplane;
+
+ float winmat[4][4];
+} CameraParams;
+
+void camera_params_init(CameraParams *params);
+void camera_params_from_object(CameraParams *params, struct Object *camera);
+void camera_params_compute(CameraParams *params, int winx, int winy, float aspx, float aspy);
-void object_camera_mode(struct RenderData *rd, struct Object *camera);
-void object_camera_intrinsics(struct Object *camera, struct Camera **cam_r, short *is_ortho, float *shiftx, float *shifty,
- float *clipsta, float *clipend, float *lens, float *sensor_x, float *sensor_y, short *sensor_fit);
-void object_camera_matrix(
- struct RenderData *rd, struct Object *camera, int winx, int winy, short field_second,
- float winmat[][4], struct rctf *viewplane, float *clipsta, float *clipend, float *lens,
- float *sensor_x, float *sensor_y, short *sensor_fit, float *ycor,
- float *viewdx, float *viewdy);
+/* Camera View Frame */
void camera_view_frame_ex(struct Scene *scene, struct Camera *camera, float drawsize, const short do_clip, const float scale[3],
float r_asp[2], float r_shift[2], float *r_drawsize, float r_vec[4][3]);