Blender V4.3
DNA_view3d_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11struct BoundBox;
12struct Object;
13struct ViewRender;
15struct SpaceLink;
16struct bGPdata;
17struct wmTimer;
18
19#ifdef __cplusplus
22#endif
23
24#include "DNA_defs.h"
25#include "DNA_image_types.h"
26#include "DNA_listBase.h"
27#include "DNA_movieclip_types.h"
28#include "DNA_object_types.h"
29#include "DNA_view3d_enums.h"
31
32typedef struct RegionView3D {
33
35 float winmat[4][4];
37 float viewmat[4][4];
39 float viewinv[4][4];
41 float persmat[4][4];
43 float persinv[4][4];
46
48 float viewmatob[4][4];
49 float persmatob[4][4];
50
52 float clip[6][4];
57 float clip_local[6][4];
59
63
67
69 float twmat[4][4];
72 float tw_axis_matrix[3][3];
73
74 float gridview DNA_DEPRECATED;
75
77 float viewquat[4];
79 float dist;
81 float camdx, camdy;
83 float pixsize;
88 float ofs[3];
90 float camzoom;
96 char persp;
97 char view;
99 char viewlock; /* Should usually be accessed with RV3D_LOCK_FLAGS()! */
101 char runtime_viewlock; /* Should usually be accessed with RV3D_LOCK_FLAGS()! */
104 char _pad[1];
106 float ofs_lock[2];
107
110 short rflag;
111
113 float lviewquat[4];
115 char lpersp;
116 char lview;
118 char _pad8[1];
119
122 float rot_axis[3];
124
125typedef struct View3DCursor {
126 float location[3];
127
132
133 char _pad[6];
134
135#ifdef __cplusplus
136 template<typename T> T matrix() const;
137 blender::math::Quaternion rotation() const;
138
139 void set_rotation(const blender::math::Quaternion &quat, bool use_compat);
140 void set_matrix(const blender::float3x3 &mat, bool use_compat);
141 void set_matrix(const blender::float4x4 &mat, bool use_compat);
142#endif
144
146typedef struct View3DShading {
148 char type;
152
154 short flag;
155
156 char light;
160
163
164 char _pad;
165
167 char studio_light[256];
169 char lookdev_light[256];
171 char matcap[256];
172
174 float single_color[3];
175
180
184
187
189
192
193 /* Render pass displayed in the viewport. Is an `eScenePassType` where one bit is set */
195 char aov_name[64];
196
198 void *_pad2;
200
255
257typedef enum eHandleDisplay {
258 /* Display only selected points. */
260 /* Display all handles. */
262 /* No display handles. */
265
266typedef struct View3D_Runtime {
271 int flag;
272
273 char _pad1[4];
274 /* Only used for overlay stats while in local-view. */
277
279typedef struct View3D {
281
282 struct SpaceLink *next, *prev;
287 char _pad0[6];
288 /* End 'SpaceLink' header. */
289
290 float viewquat[4] DNA_DEPRECATED;
291 float dist DNA_DEPRECATED;
292
297
298 char drawtype DNA_DEPRECATED;
299
300 char _pad3[1];
301
304
307
308 short persp DNA_DEPRECATED;
309 short view DNA_DEPRECATED;
310
311 struct Object *camera, *ob_center;
313
316
319
320 unsigned short local_view_uid;
321 char _pad6[2];
322 int layact DNA_DEPRECATED;
323 unsigned short local_collections_uid;
324 short _pad7[2];
325
327
331 short gp_flag;
332 short flag;
333 int flag2;
334
335 float lens, grid;
337 float ofs[3] DNA_DEPRECATED;
338
339 char _pad[1];
340
344
350
352
356
359
360 /* XXX deprecated? */
363
367 char _pad4;
371
375
378
382
384enum {
388};
389
391enum {
393 V3D_FLAG_UNUSED_1 = 1 << 1, /* cleared */
395 V3D_FLAG_UNUSED_2 = 1 << 3, /* cleared */
398
399 V3D_FLAG_UNUSED_10 = 1 << 10, /* cleared */
401 V3D_FLAG_UNUSED_12 = 1 << 12, /* cleared */
404};
405
407enum {
414};
415
417enum {
421};
422
424enum {
429 // RV3D_IS_GAME_ENGINE = 1 << 5, /* UNUSED */
435};
436
438enum {
440 RV3D_BOXVIEW = (1 << 1),
441 RV3D_BOXCLIP = (1 << 2),
444
446};
447
449#define RV3D_LOCK_FLAGS(rv3d) ((rv3d)->viewlock | ((rv3d)->runtime_viewlock))
450
452enum {
454};
455
457enum {
466};
467
468#define RV3D_VIEW_IS_AXIS(view) (((view) >= RV3D_VIEW_FRONT) && ((view) <= RV3D_VIEW_BOTTOM))
469
475enum {
480};
481
482#define RV3D_CLIPPING_ENABLED(v3d, rv3d) \
483 ((rv3d) && (v3d) && ((rv3d)->rflag & RV3D_CLIPPING) && \
484 ELEM((v3d)->shading.type, OB_WIRE, OB_SOLID) && (rv3d)->clipbb)
485
487enum {
492 V3D_FLAG2_UNUSED_6 = 1 << 6, /* cleared */
496 V3D_FLAG2_UNUSED_10 = 1 << 10, /* cleared */
498 V3D_FLAG2_UNUSED_12 = 1 << 12, /* cleared */
499 V3D_FLAG2_UNUSED_13 = 1 << 13, /* cleared */
500 V3D_FLAG2_UNUSED_14 = 1 << 14, /* cleared */
501 V3D_FLAG2_UNUSED_15 = 1 << 15, /* cleared */
507};
508
510enum {
529};
530
532enum {
548};
549
551enum {
553};
554
555#define V3D_USES_SCENE_LIGHTS(v3d) \
556 ((((v3d)->shading.type == OB_MATERIAL) && ((v3d)->shading.flag & V3D_SHADING_SCENE_LIGHTS)) || \
557 (((v3d)->shading.type == OB_RENDER) && \
558 ((v3d)->shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER)))
559
560#define V3D_USES_SCENE_WORLD(v3d) \
561 ((((v3d)->shading.type == OB_MATERIAL) && ((v3d)->shading.flag & V3D_SHADING_SCENE_WORLD)) || \
562 (((v3d)->shading.type == OB_RENDER) && \
563 ((v3d)->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER)))
564
566enum {
570};
571
580
582enum {
594 V3D_OVERLAY_STATS = (1 << 11),
602};
603
605enum {
609
611
613
617
622
625
632
633 /* Deprecated. */
634 // V3D_OVERLAY_EDIT_CU_HANDLES = (1 << 20),
635
638};
639
641enum {
643};
644
646enum {
648};
649
651enum {
652 /* center of the bounding box */
654 /* center from the sum of all points divided by the total */
656 /* pivot around the 2D/3D cursor */
658 /* pivot around each items own origin */
660 /* pivot around the active items origin */
662};
663
665enum {
667 V3D_SHOW_X = 1 << 1,
668 V3D_SHOW_Y = 1 << 2,
669 V3D_SHOW_Z = 1 << 3,
671};
672
674enum {
685};
686
688enum {
690 V3D_GIZMO_HIDE = (1 << 0),
695};
696
698enum {
702};
704enum {
709};
711enum {
714};
716enum {
720};
722enum {
726};
727
739
740#define RV3D_CAMZOOM_MIN -30
741#define RV3D_CAMZOOM_MAX 600
742
744#define RV3D_CAMZOOM_MIN_FACTOR 0.1657359312880714853f
745#define RV3D_CAMZOOM_MAX_FACTOR 44.9852813742385702928f
enum eAnimEdit_AutoSnap DNA_DEPRECATED
#define DNA_DEFINE_CXX_METHODS(class_name)
Definition DNA_defs.h:66
These structs are the foundation for all linked lists in the library system.
Object is a sort of wrapper for general info.
eV3DPlaceOrient
@ V3D_PLACE_ORIENT_DEFAULT
@ V3D_PLACE_ORIENT_SURFACE
View3DShadingUseCompositor
@ V3D_SHADING_USE_COMPOSITOR_CAMERA
@ V3D_SHADING_USE_COMPOSITOR_DISABLED
@ V3D_SHADING_USE_COMPOSITOR_ALWAYS
@ V3D_DEBUG_FREEZE_CULLING
struct View3DOverlay View3DOverlay
@ V3D_GIZMO_SHOW_ARMATURE_BBONE
@ V3D_GIZMO_SHOW_ARMATURE_ROLL
@ V3D_OVERLAY_EDIT_VERT_NORMALS
@ V3D_OVERLAY_EDIT_INDICES
@ V3D_OVERLAY_EDIT_FREESTYLE_FACE
@ V3D_OVERLAY_EDIT_RETOPOLOGY
@ V3D_OVERLAY_EDIT_LOOP_NORMALS
@ V3D_OVERLAY_EDIT_CU_NORMALS
@ V3D_OVERLAY_EDIT_FACE_NORMALS
@ V3D_OVERLAY_EDIT_CREASES
@ V3D_OVERLAY_EDIT_FREESTYLE_EDGE
@ V3D_OVERLAY_EDIT_EDGES_DEPRECATED
@ V3D_OVERLAY_EDIT_CONSTANT_SCREEN_SIZE_NORMALS
@ V3D_OVERLAY_EDIT_FACES
@ V3D_OVERLAY_EDIT_FACE_AREA
@ V3D_OVERLAY_EDIT_EDGE_ANG
@ V3D_OVERLAY_EDIT_FACE_DOT
@ V3D_OVERLAY_EDIT_FACE_ANG
@ V3D_OVERLAY_EDIT_SEAMS
@ V3D_OVERLAY_EDIT_STATVIS
@ V3D_OVERLAY_EDIT_BWEIGHTS
@ V3D_OVERLAY_EDIT_WEIGHT
@ V3D_OVERLAY_EDIT_SHARP
@ V3D_OVERLAY_EDIT_EDGE_LEN
struct RegionView3D RegionView3D
@ RV3D_ZOFFSET_DISABLED
@ RV3D_PAINTING
@ RV3D_CLIPPING
@ RV3D_NAVIGATING
@ RV3D_GPULIGHT_UPDATE
struct View3D_Runtime View3D_Runtime
@ V3D_AROUND_ACTIVE
@ V3D_AROUND_CENTER_BOUNDS
@ V3D_AROUND_CURSOR
@ V3D_AROUND_CENTER_MEDIAN
@ V3D_AROUND_LOCAL_ORIGINS
@ V3D_GIZMO_SHOW_CAMERA_DOF_DIST
@ V3D_GIZMO_SHOW_CAMERA_LENS
@ V3D_RUNTIME_LOCAL_MAYBE_EMPTY
@ V3D_RUNTIME_XR_SESSION_ROOT
@ V3D_RUNTIME_DEPTHBUF_OVERRIDDEN
struct View3DShading View3DShading
@ V3D_OVERLAY_SCULPT_SHOW_FACE_SETS
@ V3D_OVERLAY_LOOK_DEV
@ V3D_OVERLAY_FACE_ORIENTATION
@ V3D_OVERLAY_VIEWER_ATTRIBUTE
@ V3D_OVERLAY_HIDE_OBJECT_ORIGINS
@ V3D_OVERLAY_HIDE_BONES
@ V3D_OVERLAY_HIDE_MOTION_PATHS
@ V3D_OVERLAY_WIREFRAMES
@ V3D_OVERLAY_SHOW_LIGHT_COLORS
@ V3D_OVERLAY_SCULPT_SHOW_MASK
@ V3D_OVERLAY_HIDE_OBJECT_XTRAS
@ V3D_OVERLAY_ONION_SKINS
@ V3D_OVERLAY_FADE_INACTIVE
@ V3D_OVERLAY_SCULPT_CURVES_CAGE
@ V3D_OVERLAY_VIEWER_ATTRIBUTE_TEXT
@ V3D_OVERLAY_HIDE_CURSOR
@ V3D_OVERLAY_HIDE_TEXT
@ V3D_OVERLAY_STATS
@ V3D_OVERLAY_BONE_SELECT
@ V3D_OVERLAY_PAINT_WIRE
@ V3D_SHADING_SHADOW
@ V3D_SHADING_SCENE_WORLD_RENDER
@ V3D_SHADING_SPECULAR_HIGHLIGHT
@ V3D_SHADING_DEPTH_OF_FIELD
@ V3D_SHADING_WORLD_ORIENTATION
@ V3D_SHADING_SCENE_WORLD
@ V3D_SHADING_OBJECT_OUTLINE
@ V3D_SHADING_SCENE_LIGHTS
@ V3D_SHADING_CAVITY
@ V3D_SHADING_SCENE_LIGHTS_RENDER
@ V3D_SHADING_STUDIOLIGHT_VIEW_ROTATION
@ V3D_SHADING_MATCAP_FLIP_X
@ V3D_SHADING_XRAY_WIREFRAME
@ V3D_SHADING_XRAY
@ V3D_SHADING_BACKFACE_CULLING
@ V3D_OVERLAY_WPAINT_CONTOURS
@ RV3D_VIEWLOCK_INIT
@ V3D_GP_SHOW_MATERIAL_NAME
@ V3D_GP_FADE_OBJECTS
@ V3D_GP_SHOW_MULTIEDIT_LINES
@ V3D_GP_SHOW_GRID_XRAY
@ V3D_GP_SHOW_STROKE_DIRECTION
@ V3D_GP_FADE_NOACTIVE_GPENCIL
@ V3D_GP_SHOW_EDIT_LINES
@ V3D_GP_SHOW_GRID
@ V3D_GP_FADE_NOACTIVE_LAYERS
@ V3D_GP_SHOW_ONION_SKIN
@ V3D_GIZMO_HIDE_TOOL
@ V3D_GIZMO_HIDE_MODIFIER
@ V3D_GIZMO_HIDE
@ V3D_GIZMO_HIDE_NAVIGATE
@ V3D_GIZMO_HIDE_CONTEXT
@ V3D_SHOW_FLOOR
@ V3D_SHOW_Z
@ V3D_SHOW_X
@ V3D_SHOW_Y
@ V3D_SHOW_ORTHO_GRID
@ V3D_GIZMO_SHOW_LIGHT_LOOK_AT
@ V3D_GIZMO_SHOW_LIGHT_SIZE
@ V3D_GIZMO_SHOW_OBJECT_ROTATE
@ V3D_GIZMO_SHOW_OBJECT_SCALE
@ V3D_GIZMO_SHOW_OBJECT_TRANSLATE
struct View3DCursor View3DCursor
@ V3D_SHADING_CAVITY_BOTH
@ V3D_SHADING_CAVITY_SSAO
@ V3D_SHADING_CAVITY_CURVATURE
eHandleDisplay
@ CURVE_HANDLE_NONE
@ CURVE_HANDLE_ALL
@ CURVE_HANDLE_SELECTED
@ RV3D_VIEW_AXIS_ROLL_270
@ RV3D_VIEW_AXIS_ROLL_180
@ RV3D_VIEW_AXIS_ROLL_90
@ RV3D_VIEW_AXIS_ROLL_0
eV3DPlaceDepth
@ V3D_PLACE_DEPTH_CURSOR_VIEW
@ V3D_PLACE_DEPTH_CURSOR_PLANE
@ V3D_PLACE_DEPTH_SURFACE
@ RV3D_CAMOB
@ RV3D_PERSP
@ RV3D_ORTHO
@ RV3D_LOCK_ANY_TRANSFORM
@ RV3D_LOCK_ROTATION
@ RV3D_LOCK_LOCATION
@ RV3D_LOCK_ZOOM_AND_DOLLY
@ RV3D_BOXVIEW
@ RV3D_BOXCLIP
@ V3D_SHOW_VIEWER
@ V3D_SHOW_CAMERA_PASSEPARTOUT
@ V3D_FLAG2_UNUSED_15
@ V3D_XR_SHOW_CUSTOM_OVERLAYS
@ V3D_SHOW_BUNDLENAME
@ V3D_HIDE_OVERLAYS
@ V3D_FLAG2_UNUSED_14
@ V3D_SHOW_ANNOTATION
@ V3D_SHOW_CAMERAPATH
@ V3D_SHOW_RECONSTRUCTION
@ V3D_RENDER_BORDER
@ V3D_FLAG2_UNUSED_6
@ V3D_FLAG2_UNUSED_10
@ V3D_LOCK_CAMERA
@ V3D_FLAG2_UNUSED_12
@ V3D_SHOW_CAMERA_GUIDES
@ V3D_XR_SHOW_PASSTHROUGH
@ V3D_XR_SHOW_CONTROLLERS
@ V3D_FLAG2_UNUSED_13
@ V3D_GIZMO_SHOW_EMPTY_FORCE_FIELD
@ V3D_GIZMO_SHOW_EMPTY_IMAGE
@ V3D_ORIENT_NORMAL
@ V3D_ORIENT_CUSTOM
@ V3D_ORIENT_GLOBAL
@ V3D_ORIENT_PARENT
@ V3D_ORIENT_CUSTOM_MATRIX
@ V3D_ORIENT_LOCAL
@ V3D_ORIENT_VIEW
@ V3D_ORIENT_CURSOR
@ V3D_ORIENT_GIMBAL
@ V3D_GLOBAL_STATS
@ V3D_LOCAL_COLLECTIONS
@ V3D_XR_SESSION_SURFACE
@ V3D_DRAW_CENTERS
@ V3D_FLAG_UNUSED_10
@ V3D_SELECT_OUTLINE
@ V3D_FLAG_UNUSED_1
@ V3D_XR_SESSION_MIRROR
@ V3D_FLAG_UNUSED_12
@ V3D_FLAG_UNUSED_2
@ V3D_HIDE_HELPLINES
@ RV3D_VIEW_FRONT
@ RV3D_VIEW_BOTTOM
@ RV3D_VIEW_LEFT
@ RV3D_VIEW_CAMERA
@ RV3D_VIEW_RIGHT
@ RV3D_VIEW_TOP
@ RV3D_VIEW_BACK
@ RV3D_VIEW_USER
@ V3D_S3D_DISPCAMERAS
@ V3D_S3D_DISPPLANE
@ V3D_S3D_DISPVOLUME
float viewcamtexcofac[4]
float viewmatob[4][4]
float tw_axis_matrix[3][3]
float tw_axis_min[3]
struct SmoothView3DStore * sms
float gridview DNA_DEPRECATED
float tw_axis_max[3]
float persmat[4][4]
struct ViewRender * view_render
struct RegionView3D * localvd
float twmat[4][4]
float persinv[4][4]
float viewmat[4][4]
float persmatob[4][4]
float clip_local[6][4]
struct wmTimer * smooth_timer
float viewinv[4][4]
struct BoundBox * clipbb
float winmat[4][4]
float rotation_axis[3]
float rotation_quaternion[4]
float rotation_euler[3]
float gpencil_grid_color[3]
float viewer_attribute_opacity
float normals_constant_screen_size
float sculpt_mode_mask_opacity
float gpencil_grid_scale[2]
float sculpt_mode_face_sets_opacity
float texture_paint_mode_opacity
float gpencil_grid_offset[2]
float sculpt_curves_cage_opacity
float vertex_paint_mode_opacity
float gpencil_vertex_paint_opacity
float weight_paint_mode_opacity
float background_color[3]
float object_outline_color[3]
float curvature_valley_factor
char studio_light[256]
char lookdev_light[256]
struct IDProperty * prop
void(* properties_storage_free)(void *properties_storage)
struct SceneStats * local_stats
char multiview_eye
float vertex_opacity
float bundle_size
View3DOverlay overlay
char gizmo_show_armature
rctf render_border
unsigned short local_collections_uid
char gizmo_show_light
char gizmo_show_camera
View3D_Runtime runtime
float stereo3d_convergence_factor
char _pad3[1]
char gizmo_show_empty
short gridsubdiv
char stereo3d_camera
char _pad0[6]
struct View3D * localvd
char ob_center_bone[64]
ViewerPath viewer_path
short debug_flag
struct SpaceLink * next
short scenelock
short gridlines
struct SpaceLink * prev
float stereo3d_volume_alpha
int object_type_exclude_select
short ob_center_cursor
char _pad6[2]
struct Object * ob_center
int object_type_exclude_viewport
ListBase regionbase
char _pad[1]
char bundle_drawtype
short _pad7[2]
short stereo3d_flag
float stereo3d_convergence_alpha
char gizmo_show_object
unsigned short local_view_uid
float clip_start