Blender  V3.3
DNA_volume_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #pragma once
8 
9 #include "DNA_ID.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 struct PackedFile;
16 struct VolumeGridVector;
17 
18 typedef struct Volume_Runtime {
20  struct VolumeGridVector *grids;
21 
23  int frame;
24 
27 
28  /* Names for scalar grids which would need to be merged to recompose the velocity grid. */
29  char velocity_x_grid[64];
30  char velocity_y_grid[64];
31  char velocity_z_grid[64];
33 
34 typedef struct VolumeDisplay {
35  float density;
41  float slice_depth;
42  int _pad[1];
44 
45 typedef struct VolumeRender {
46  int precision;
47  int space;
48  float step_size;
49  float clipping;
51 
52 typedef struct Volume {
53  ID id;
54  struct AnimData *adt; /* animation data (must be immediately after id) */
55 
56  /* File */
57  char filepath[1024]; /* FILE_MAX */
59 
60  /* Sequence */
63  char _pad1[2];
67 
68  /* Flag */
69  int flag;
70 
71  /* Grids */
73 
74  /* Material */
75  struct Material **mat;
76  short totcol;
77  short _pad2[3];
78 
79  /* Render & Display Settings */
82 
83  /* Velocity field name. */
84  char velocity_grid[64];
85 
86  char _pad3[3];
87 
88  /* Unit of time the velocity vectors are expressed in.
89  * This uses the same enumeration values as #CacheFile.velocity_unit. */
91 
92  /* Factor for velocity vector for artistic control. */
94 
95  /* Draw Cache */
96  void *batch_cache;
97 
98  /* Runtime Data */
101 
103 enum {
104  VO_DS_EXPAND = (1 << 0),
105 };
106 
108 typedef enum VolumeSequenceMode {
114 
116 typedef enum VolumeWireframeType {
122 
124 typedef enum VolumeWireframeDetail {
128 
130 typedef enum VolumeRenderPrecision {
135 
137 typedef enum VolumeRenderSpace {
141 
148 
154 
156 typedef enum SliceAxis {
162 
163 /* Only one material supported currently. */
164 #define VOLUME_MATERIAL_NR 1
165 
166 #ifdef __cplusplus
167 }
168 #endif
ID and Library types, which are fundamental for sdna.
struct VolumeRender VolumeRender
VolumeRenderSpace
@ VOLUME_SPACE_WORLD
@ VOLUME_SPACE_OBJECT
struct Volume_Runtime Volume_Runtime
VolumeWireframeType
@ VOLUME_WIREFRAME_NONE
@ VOLUME_WIREFRAME_BOXES
@ VOLUME_WIREFRAME_POINTS
@ VOLUME_WIREFRAME_BOUNDS
VolumeDisplayInterpMethod
@ VOLUME_DISPLAY_INTERP_CLOSEST
@ VOLUME_DISPLAY_INTERP_LINEAR
@ VOLUME_DISPLAY_INTERP_CUBIC
AxisAlignedSlicingMethod
@ VOLUME_AXIS_SLICE_SINGLE
@ VOLUME_AXIS_SLICE_FULL
struct VolumeDisplay VolumeDisplay
@ VO_DS_EXPAND
VolumeSequenceMode
@ VOLUME_SEQUENCE_REPEAT
@ VOLUME_SEQUENCE_CLIP
@ VOLUME_SEQUENCE_EXTEND
@ VOLUME_SEQUENCE_PING_PONG
SliceAxis
@ VOLUME_SLICE_AXIS_Y
@ VOLUME_SLICE_AXIS_X
@ VOLUME_SLICE_AXIS_AUTO
@ VOLUME_SLICE_AXIS_Z
VolumeRenderPrecision
@ VOLUME_PRECISION_FULL
@ VOLUME_PRECISION_VARIABLE
@ VOLUME_PRECISION_HALF
struct Volume Volume
VolumeWireframeDetail
@ VOLUME_WIREFRAME_COARSE
@ VOLUME_WIREFRAME_FINE
Definition: DNA_ID.h:368
struct VolumeGridVector * grids
char velocity_x_grid[64]
char velocity_z_grid[64]
char velocity_y_grid[64]
int frame_duration
char filepath[1024]
int frame_start
char is_sequence
int frame_offset
char _pad1[2]
char _pad3[3]
void * batch_cache
struct PackedFile * packedfile
char velocity_grid[64]
short _pad2[3]
short totcol
struct Material ** mat
VolumeRender render
VolumeDisplay display
char sequence_mode
Volume_Runtime runtime
int active_grid
struct AnimData * adt
float velocity_scale
char velocity_unit