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

DNA_camera_types.h « makesdna « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6a9942aea6668da6c04d8693200cf747c20947c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/*
 * ***** BEGIN GPL LICENSE BLOCK *****
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
 * All rights reserved.
 *
 * The Original Code is: all of this file.
 *
 * Contributor(s): none yet.
 *
 * ***** END GPL LICENSE BLOCK *****
 */

/** \file DNA_camera_types.h
 *  \ingroup DNA
 */

#ifndef __DNA_CAMERA_TYPES_H__
#define __DNA_CAMERA_TYPES_H__

#include "DNA_defs.h"
#include "DNA_gpu_types.h"
#include "DNA_ID.h"

#ifdef __cplusplus
extern "C" {
#endif

struct Object;
struct AnimData;
struct Ipo;

/* ------------------------------------------- */
/* Stereo Settings */
typedef struct CameraStereoSettings {
	float interocular_distance;
	float convergence_distance;
	short convergence_mode;
	short pivot;
	short pad, pad2;
} CameraStereoSettings;

typedef struct Camera {
	ID id;
	struct AnimData *adt;	/* animation data (must be immediately after id for utilities to use it) */ 
	
	char type; /* CAM_PERSP, CAM_ORTHO or CAM_PANO */
	char dtx; /* draw type extra */
	short flag;
	float passepartalpha;
	float clipsta, clipend;
	float lens, ortho_scale, drawsize;
	float sensor_x, sensor_y;
	float shiftx, shifty;

	/* yafray: dof params */
	/* qdn: yafray var 'YF_dofdist' now enabled for defocus composite node as well.
	 * The name was not changed so that no other files need to be modified */
	float YF_dofdist;

	struct Ipo *ipo  DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */
	
	struct Object *dof_ob;
	struct GPUDOFSettings gpu_dof;

	char sensor_fit;
	char pad[7];

	 /* Stereo settings */
	 struct CameraStereoSettings stereo;
} Camera;

/* **************** CAMERA ********************* */

/* type */
enum {
	CAM_PERSP       = 0,
	CAM_ORTHO       = 1,
	CAM_PANO        = 2,
};

/* dtx */
enum {
	CAM_DTX_CENTER          = (1 << 0),
	CAM_DTX_CENTER_DIAG     = (1 << 1),
	CAM_DTX_THIRDS          = (1 << 2),
	CAM_DTX_GOLDEN          = (1 << 3),
	CAM_DTX_GOLDEN_TRI_A    = (1 << 4),
	CAM_DTX_GOLDEN_TRI_B    = (1 << 5),
	CAM_DTX_HARMONY_TRI_A   = (1 << 6),
	CAM_DTX_HARMONY_TRI_B   = (1 << 7),
};

/* flag */
enum {
	CAM_SHOWLIMITS          = (1 << 0),
	CAM_SHOWMIST            = (1 << 1),
	CAM_SHOWPASSEPARTOUT    = (1 << 2),
	CAM_SHOW_SAFE_MARGINS       = (1 << 3),
	CAM_SHOWNAME            = (1 << 4),
	CAM_ANGLETOGGLE         = (1 << 5),
	CAM_DS_EXPAND           = (1 << 6),
	CAM_PANORAMA            = (1 << 7), /* deprecated */
	CAM_SHOWSENSOR          = (1 << 8),
	CAM_SHOW_SAFE_CENTER    = (1 << 9),
};

#if (DNA_DEPRECATED_GCC_POISON == 1)
#pragma GCC poison CAM_PANORAMA
#endif

/* yafray: dof sampling switch */
/* #define CAM_YF_NO_QMC	512 */ /* deprecated */

/* Sensor fit */
enum {
	CAMERA_SENSOR_FIT_AUTO  = 0,
	CAMERA_SENSOR_FIT_HOR   = 1,
	CAMERA_SENSOR_FIT_VERT  = 2,
};

#define DEFAULT_SENSOR_WIDTH	32.0f
#define DEFAULT_SENSOR_HEIGHT	18.0f

/* stereo->convergence_mode */
enum {
	CAM_S3D_OFFAXIS    = 0,
	CAM_S3D_PARALLEL   = 1,
	CAM_S3D_TOE        = 2,
};

/* stereo->pivot */
enum {
	CAM_S3D_PIVOT_LEFT      = 0,
	CAM_S3D_PIVOT_RIGHT     = 1,
	CAM_S3D_PIVOT_CENTER    = 2,
};

#ifdef __cplusplus
}
#endif

#endif