Blender  V3.3
DNA_view3d_types.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 
8 #pragma once
9 
10 struct BoundBox;
11 struct Object;
12 struct RenderEngine;
13 struct SmoothView3DStore;
14 struct SpaceLink;
15 struct ViewDepths;
16 struct bGPdata;
17 struct wmTimer;
18 
19 #include "DNA_defs.h"
20 #include "DNA_image_types.h"
21 #include "DNA_listBase.h"
22 #include "DNA_movieclip_types.h"
23 #include "DNA_object_types.h"
24 #include "DNA_view3d_enums.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 typedef struct RegionView3D {
31 
33  float winmat[4][4];
35  float viewmat[4][4];
37  float viewinv[4][4];
39  float persmat[4][4];
41  float persinv[4][4];
43  float viewcamtexcofac[4];
44 
46  float viewmatob[4][4];
47  float persmatob[4][4];
48 
50  float clip[6][4];
55  float clip_local[6][4];
56  struct BoundBox *clipbb;
57 
61 
65 
67  float twmat[4][4];
69  float tw_axis_min[3], tw_axis_max[3];
70  float tw_axis_matrix[3][3];
71 
72  float gridview DNA_DEPRECATED;
73 
75  float viewquat[4];
77  float dist;
79  float camdx, camdy;
81  float pixsize;
86  float ofs[3];
88  float camzoom;
93  char is_persp;
94  char persp;
95  char view;
97  char viewlock; /* Should usually be accessed with RV3D_LOCK_FLAGS()! */
99  char runtime_viewlock; /* Should usually be accessed with RV3D_LOCK_FLAGS()! */
102  char _pad[1];
104  float ofs_lock[2];
105 
107  short twdrawflag;
108  short rflag;
109 
111  float lviewquat[4];
113  char lpersp;
114  char lview;
116  char _pad8[1];
117 
119  float rot_angle;
120  float rot_axis[3];
122 
123 typedef struct View3DCursor {
124  float location[3];
125 
127  float rotation_euler[3];
130 
131  char _pad[6];
133 
135 typedef struct View3DShading {
137  char type;
139  char prev_type;
141 
143  short flag;
144 
145  char light;
149  char _pad[2];
150 
152  char studio_light[256];
154  char lookdev_light[256];
156  char matcap[256];
157 
159  float single_color[3];
160 
165 
167  float xray_alpha;
169 
172 
174 
177 
178  /* Render pass displayed in the viewport. Is an `eScenePassType` where one bit is set */
180  char aov_name[64];
181 
182  struct IDProperty *prop;
183  void *_pad2;
185 
187 typedef struct View3DOverlay {
188  int flag;
189 
195 
198 
201 
208 
212  char _pad1[4];
213 
215  float fade_alpha;
216 
220 
225 
230 
231  char _pad[4];
233 
235 typedef enum eHandleDisplay {
236  /* Display only selected points. */
238  /* Display all handles. */
240  /* No display handles. */
243 
244 typedef struct View3D_Runtime {
248  int flag;
249 
250  char _pad1[4];
251  /* Only used for overlay stats while in local-view. */
254 
256 typedef struct View3D {
257  struct SpaceLink *next, *prev;
260  char spacetype;
261  char link_flag;
262  char _pad0[6];
263  /* End 'SpaceLink' header. */
264 
265  float viewquat[4] DNA_DEPRECATED;
266  float dist DNA_DEPRECATED;
267 
269  float bundle_size;
272 
273  char drawtype DNA_DEPRECATED;
274 
275  char _pad3[1];
276 
279 
282 
283  short persp DNA_DEPRECATED;
285 
288 
290  struct View3D *localvd;
291 
293  char ob_center_bone[64];
294 
295  unsigned short local_view_uuid;
296  char _pad6[2];
297  int layact DNA_DEPRECATED;
298  unsigned short local_collections_uuid;
299  short _pad7[3];
300 
303  short scenelock;
304  short gp_flag;
305  short flag;
306  int flag2;
307 
308  float lens, grid;
310  float ofs[3] DNA_DEPRECATED;
311 
312  char _pad[1];
313 
317 
323 
324  char gridflag;
325 
326  short gridlines;
328  short gridsubdiv;
329 
332 
333  /* XXX deprecated? */
335  struct bGPdata *gpd DNA_DEPRECATED;
336 
340  char _pad4;
344 
348 
352 
354 #define V3D_S3D_DISPCAMERAS (1 << 0)
355 #define V3D_S3D_DISPPLANE (1 << 1)
356 #define V3D_S3D_DISPVOLUME (1 << 2)
357 
359 #define V3D_LOCAL_COLLECTIONS (1 << 0)
360 #define V3D_FLAG_UNUSED_1 (1 << 1) /* cleared */
361 #define V3D_HIDE_HELPLINES (1 << 2)
362 #define V3D_FLAG_UNUSED_2 (1 << 3) /* cleared */
363 #define V3D_XR_SESSION_MIRROR (1 << 4)
364 #define V3D_XR_SESSION_SURFACE (1 << 5)
365 
366 #define V3D_FLAG_UNUSED_10 (1 << 10) /* cleared */
367 #define V3D_SELECT_OUTLINE (1 << 11)
368 #define V3D_FLAG_UNUSED_12 (1 << 12) /* cleared */
369 #define V3D_GLOBAL_STATS (1 << 13)
370 #define V3D_DRAW_CENTERS (1 << 15)
371 
373 enum {
378 };
379 
381 #define RV3D_ORTHO 0
382 #define RV3D_PERSP 1
383 #define RV3D_CAMOB 2
384 
386 #define RV3D_CLIPPING (1 << 2)
387 #define RV3D_NAVIGATING (1 << 3)
388 #define RV3D_GPULIGHT_UPDATE (1 << 4)
389 #define RV3D_PAINTING (1 << 5)
390 /*#define RV3D_IS_GAME_ENGINE (1 << 5) */ /* UNUSED */
395 #define RV3D_ZOFFSET_DISABLED 64
396 
398 enum {
399  RV3D_LOCK_ROTATION = (1 << 0),
400  RV3D_BOXVIEW = (1 << 1),
401  RV3D_BOXCLIP = (1 << 2),
402  RV3D_LOCK_LOCATION = (1 << 3),
404 
406 };
407 
409 #define RV3D_LOCK_FLAGS(rv3d) ((rv3d)->viewlock | ((rv3d)->runtime_viewlock))
410 
412 #define RV3D_VIEWLOCK_INIT (1 << 7)
413 
415 #define RV3D_VIEW_USER 0
416 #define RV3D_VIEW_FRONT 1
417 #define RV3D_VIEW_BACK 2
418 #define RV3D_VIEW_LEFT 3
419 #define RV3D_VIEW_RIGHT 4
420 #define RV3D_VIEW_TOP 5
421 #define RV3D_VIEW_BOTTOM 6
422 #define RV3D_VIEW_CAMERA 8
423 
424 #define RV3D_VIEW_IS_AXIS(view) (((view) >= RV3D_VIEW_FRONT) && ((view) <= RV3D_VIEW_BOTTOM))
425 
431 enum {
436 };
437 
438 #define RV3D_CLIPPING_ENABLED(v3d, rv3d) \
439  ((rv3d) && (v3d) && ((rv3d)->rflag & RV3D_CLIPPING) && \
440  ELEM((v3d)->shading.type, OB_WIRE, OB_SOLID) && (rv3d)->clipbb)
441 
443 #define V3D_HIDE_OVERLAYS (1 << 2)
444 #define V3D_FLAG2_UNUSED_3 (1 << 3) /* cleared */
445 #define V3D_SHOW_ANNOTATION (1 << 4)
446 #define V3D_LOCK_CAMERA (1 << 5)
447 #define V3D_FLAG2_UNUSED_6 (1 << 6) /* cleared */
448 #define V3D_SHOW_RECONSTRUCTION (1 << 7)
449 #define V3D_SHOW_CAMERAPATH (1 << 8)
450 #define V3D_SHOW_BUNDLENAME (1 << 9)
451 #define V3D_FLAG2_UNUSED_10 (1 << 10) /* cleared */
452 #define V3D_RENDER_BORDER (1 << 11)
453 #define V3D_FLAG2_UNUSED_12 (1 << 12) /* cleared */
454 #define V3D_FLAG2_UNUSED_13 (1 << 13) /* cleared */
455 #define V3D_FLAG2_UNUSED_14 (1 << 14) /* cleared */
456 #define V3D_FLAG2_UNUSED_15 (1 << 15) /* cleared */
457 #define V3D_XR_SHOW_CONTROLLERS (1 << 16)
458 #define V3D_XR_SHOW_CUSTOM_OVERLAYS (1 << 17)
459 
461 #define V3D_GP_FADE_OBJECTS (1 << 0) /* Fade all non GP objects */
462 #define V3D_GP_SHOW_GRID (1 << 1) /* Activate paper grid */
463 #define V3D_GP_SHOW_EDIT_LINES (1 << 2)
464 #define V3D_GP_SHOW_MULTIEDIT_LINES (1 << 3)
465 #define V3D_GP_SHOW_ONION_SKIN (1 << 4) /* main switch at view level */
466 #define V3D_GP_FADE_NOACTIVE_LAYERS (1 << 5) /* fade layers not active */
467 #define V3D_GP_FADE_NOACTIVE_GPENCIL (1 << 6) /* Fade other GPencil objects */
468 #define V3D_GP_SHOW_STROKE_DIRECTION (1 << 7) /* Show Strokes Directions */
469 #define V3D_GP_SHOW_MATERIAL_NAME (1 << 8) /* Show Material names */
470 #define V3D_GP_SHOW_GRID_XRAY (1 << 9) /* Show Canvas Grid on Top */
471 
473 enum {
475  V3D_SHADING_XRAY = (1 << 1),
476  V3D_SHADING_SHADOW = (1 << 2),
479  V3D_SHADING_CAVITY = (1 << 5),
489 };
490 
491 #define V3D_USES_SCENE_LIGHTS(v3d) \
492  ((((v3d)->shading.type == OB_MATERIAL) && ((v3d)->shading.flag & V3D_SHADING_SCENE_LIGHTS)) || \
493  (((v3d)->shading.type == OB_RENDER) && \
494  ((v3d)->shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER)))
495 
496 #define V3D_USES_SCENE_WORLD(v3d) \
497  ((((v3d)->shading.type == OB_MATERIAL) && ((v3d)->shading.flag & V3D_SHADING_SCENE_WORLD)) || \
498  (((v3d)->shading.type == OB_RENDER) && \
499  ((v3d)->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER)))
500 
502 enum {
506 };
507 
509 enum {
521  V3D_OVERLAY_STATS = (1 << 11),
523 };
524 
526 enum {
530 
532 
534 
538 
543 
546 
553 
554  /* Deprecated. */
555  // V3D_OVERLAY_EDIT_CU_HANDLES = (1 << 20),
556 
559 };
560 
562 enum {
564 };
565 
567 enum {
569 };
570 
572 enum {
573  /* center of the bounding box */
575  /* center from the sum of all points divided by the total */
577  /* pivot around the 2D/3D cursor */
579  /* pivot around each items own origin */
581  /* pivot around the active items origin */
583 };
584 
586 #define V3D_SHOW_FLOOR (1 << 0)
587 #define V3D_SHOW_X (1 << 1)
588 #define V3D_SHOW_Y (1 << 2)
589 #define V3D_SHOW_Z (1 << 3)
590 #define V3D_SHOW_ORTHO_GRID (1 << 4)
591 
593 enum {
603 };
604 
606 enum {
608  V3D_GIZMO_HIDE = (1 << 0),
612 };
613 
615 enum {
619 };
621 enum {
626 };
628 enum {
631 };
633 enum {
637 };
639 enum {
643 };
644 
645 #define RV3D_CAMZOOM_MIN -30
646 #define RV3D_CAMZOOM_MAX 600
647 
649 #define RV3D_CAMZOOM_MIN_FACTOR 0.1657359312880714853f
650 #define RV3D_CAMZOOM_MAX_FACTOR 44.9852813742385702928f
651 
652 #ifdef __cplusplus
653 }
654 #endif
These structs are the foundation for all linked lists in the library system.
Object is a sort of wrapper for general info.
@ V3D_OVERLAY_PAINT_WIRE
@ V3D_AROUND_ACTIVE
@ V3D_AROUND_CENTER_BOUNDS
@ V3D_AROUND_CURSOR
@ V3D_AROUND_CENTER_MEDIAN
@ V3D_AROUND_LOCAL_ORIGINS
@ V3D_GIZMO_SHOW_EMPTY_FORCE_FIELD
@ V3D_GIZMO_SHOW_EMPTY_IMAGE
@ V3D_OVERLAY_LOOK_DEV
@ V3D_OVERLAY_FACE_ORIENTATION
@ V3D_OVERLAY_HIDE_OBJECT_ORIGINS
@ V3D_OVERLAY_HIDE_BONES
@ V3D_OVERLAY_HIDE_MOTION_PATHS
@ V3D_OVERLAY_WIREFRAMES
@ V3D_OVERLAY_HIDE_OBJECT_XTRAS
@ V3D_OVERLAY_ONION_SKINS
@ V3D_OVERLAY_FADE_INACTIVE
@ V3D_OVERLAY_HIDE_CURSOR
@ V3D_OVERLAY_HIDE_TEXT
@ V3D_OVERLAY_STATS
@ V3D_OVERLAY_BONE_SELECT
struct View3DOverlay View3DOverlay
@ V3D_GIZMO_SHOW_LIGHT_LOOK_AT
@ V3D_GIZMO_SHOW_LIGHT_SIZE
@ V3D_ORIENT_NORMAL
@ V3D_ORIENT_CUSTOM
@ V3D_ORIENT_GLOBAL
@ V3D_ORIENT_CUSTOM_MATRIX
@ V3D_ORIENT_LOCAL
@ V3D_ORIENT_VIEW
@ V3D_ORIENT_CURSOR
@ V3D_ORIENT_GIMBAL
struct RegionView3D RegionView3D
@ RV3D_VIEW_AXIS_ROLL_270
@ RV3D_VIEW_AXIS_ROLL_180
@ RV3D_VIEW_AXIS_ROLL_90
@ RV3D_VIEW_AXIS_ROLL_0
@ V3D_RUNTIME_XR_SESSION_ROOT
@ V3D_RUNTIME_DEPTHBUF_OVERRIDDEN
struct View3D_Runtime View3D_Runtime
@ V3D_GIZMO_SHOW_ARMATURE_BBONE
@ V3D_GIZMO_SHOW_ARMATURE_ROLL
@ RV3D_LOCK_ANY_TRANSFORM
@ RV3D_LOCK_ROTATION
@ RV3D_LOCK_LOCATION
@ RV3D_LOCK_ZOOM_AND_DOLLY
@ RV3D_BOXVIEW
@ RV3D_BOXCLIP
@ V3D_GIZMO_SHOW_CAMERA_DOF_DIST
@ V3D_GIZMO_SHOW_CAMERA_LENS
@ 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
struct View3DShading View3DShading
@ V3D_GIZMO_HIDE_TOOL
@ V3D_GIZMO_HIDE
@ V3D_GIZMO_HIDE_NAVIGATE
@ V3D_GIZMO_HIDE_CONTEXT
@ V3D_OVERLAY_EDIT_VERT_NORMALS
@ V3D_OVERLAY_EDIT_INDICES
@ V3D_OVERLAY_EDIT_FREESTYLE_FACE
@ 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_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_OCCLUDE_WIRE
@ V3D_OVERLAY_EDIT_SEAMS
@ V3D_OVERLAY_EDIT_STATVIS
@ V3D_OVERLAY_EDIT_BWEIGHTS
@ V3D_OVERLAY_EDIT_WEIGHT
@ V3D_OVERLAY_EDIT_SHARP
@ V3D_OVERLAY_EDIT_EDGES
@ V3D_OVERLAY_EDIT_EDGE_LEN
@ V3D_SHADING_CAVITY_BOTH
@ V3D_SHADING_CAVITY_SSAO
@ V3D_SHADING_CAVITY_CURVATURE
@ V3D_OVERLAY_WPAINT_CONTOURS
@ V3D_GIZMO_SHOW_OBJECT_ROTATE
@ V3D_GIZMO_SHOW_OBJECT_SCALE
@ V3D_GIZMO_SHOW_OBJECT_TRANSLATE
struct View3DCursor View3DCursor
eHandleDisplay
@ CURVE_HANDLE_NONE
@ CURVE_HANDLE_ALL
@ CURVE_HANDLE_SELECTED
struct View3D View3D
static AppView * view
float viewcamtexcofac[4]
float viewmatob[4][4]
float tw_axis_matrix[3][3]
struct RenderEngine * render_engine
float tw_axis_min[3]
struct SmoothView3DStore * sms
float gridview DNA_DEPRECATED
float viewquat[4]
float tw_axis_max[3]
float persmat[4][4]
float lviewquat[4]
struct RegionView3D * localvd
float clip[6][4]
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 normals_constant_screen_size
float sculpt_mode_mask_opacity
float gpencil_grid_opacity
float sculpt_mode_face_sets_opacity
float gpencil_paper_opacity
float texture_paint_mode_opacity
float vertex_paint_mode_opacity
float gpencil_vertex_paint_opacity
float weight_paint_mode_opacity
float studiolight_background
float curvature_ridge_factor
float background_color[3]
float object_outline_color[3]
float cavity_valley_factor
float curvature_valley_factor
float studiolight_intensity
char studio_light[256]
float single_color[3]
char lookdev_light[256]
struct IDProperty * prop
struct SceneStats * local_stats
char multiview_eye
float vertex_opacity
char drawtype DNA_DEPRECATED
float bundle_size
View3DOverlay overlay
char gizmo_show_armature
unsigned short local_view_uuid
rctf render_border
char gizmo_show_light
char gizmo_show_camera
float clip_end
View3D_Runtime runtime
float stereo3d_convergence_factor
char _pad3[1]
struct Object * camera
float viewquat[4] DNA_DEPRECATED
char gizmo_show_empty
short gridsubdiv
char stereo3d_camera
char _pad0[6]
struct View3D * localvd
char ob_center_bone[64]
short _pad7[3]
float ofs[3] DNA_DEPRECATED
float dist DNA_DEPRECATED
short persp DNA_DEPRECATED
struct bGPdata *gpd DNA_DEPRECATED
struct SpaceLink * next
short view DNA_DEPRECATED
short scenelock
char spacetype
char link_flag
unsigned short local_collections_uuid
short gridlines
struct SpaceLink * prev
float stereo3d_volume_alpha
int object_type_exclude_select
short ob_center_cursor
int layact DNA_DEPRECATED
char _pad6[2]
struct Object * ob_center
int object_type_exclude_viewport
ListBase regionbase
char gizmo_flag
char _pad[1]
View3DShading shading
char bundle_drawtype
short stereo3d_flag
float stereo3d_convergence_alpha
char gizmo_show_object
float clip_start
short gp_flag