Blender  V3.3
DNA_pointcache_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_listBase.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
22 #define BPHYS_DATA_INDEX 0
23 #define BPHYS_DATA_LOCATION 1
24 #define BPHYS_DATA_SMOKE_LOW 1
25 #define BPHYS_DATA_VELOCITY 2
26 #define BPHYS_DATA_SMOKE_HIGH 2
27 #define BPHYS_DATA_ROTATION 3
28 #define BPHYS_DATA_DYNAMICPAINT 3
29 #define BPHYS_DATA_AVELOCITY 4 /* used for particles */
30 #define BPHYS_DATA_XCONST 4 /* used for cloth */
31 #define BPHYS_DATA_SIZE 5
32 #define BPHYS_DATA_TIMES 6
33 #define BPHYS_DATA_BOIDS 7
34 
35 #define BPHYS_TOT_DATA 8
36 
37 #define BPHYS_EXTRA_FLUID_SPRINGS 1
38 #define BPHYS_EXTRA_CLOTH_ACCELERATION 2
39 
40 typedef struct PTCacheExtra {
41  struct PTCacheExtra *next, *prev;
42  unsigned int type, totdata;
43  void *data;
45 
46 typedef struct PTCacheMem {
47  struct PTCacheMem *next, *prev;
48  unsigned int frame, totpoint;
49  unsigned int data_types, flag;
50 
52  void *data[8];
53 
54  struct ListBase extradata;
56 
57 typedef struct PointCache {
58  struct PointCache *next, *prev;
60  int flag;
61 
75  int step;
76 
78  int simframe;
82  int endframe;
84  int editframe;
89  char _pad[4];
90 
91  /* for external cache files */
93  int totpoint;
95  int index;
96  short compression;
97  char _pad0[2];
98 
99  char name[64];
100  char prev_name[64];
101  char info[128];
103  char path[1024];
104 
111  char _pad1[4];
112 
113  struct ListBase mem_cache;
114 
115  struct PTCacheEdit *edit;
119 
121 enum {
122  PTCACHE_BAKED = 1 << 0,
125  PTCACHE_BAKING = 1 << 3,
126  // PTCACHE_BAKE_EDIT = 1 << 4,
127  // PTCACHE_BAKE_EDIT_ACTIVE = 1 << 5,
129  /* removed since 2.64 - T30974, could be added back in a more useful way */
130  // PTCACHE_QUICK_CACHE = 1 << 7,
133  PTCACHE_READ_INFO = 1 << 10,
142 
144 
147 };
148 
149 #define PTCACHE_COMPRESS_NO 0
150 #define PTCACHE_COMPRESS_LZO 1
151 #define PTCACHE_COMPRESS_LZMA 2
152 
153 #ifdef __cplusplus
154 }
155 #endif
These structs are the foundation for all linked lists in the library system.
struct PTCacheMem PTCacheMem
struct PTCacheExtra PTCacheExtra
struct PointCache PointCache
@ PTCACHE_READ_INFO
@ PTCACHE_IGNORE_CLEAR
@ PTCACHE_FLAGS_COPY
@ PTCACHE_EXTERNAL
@ PTCACHE_IGNORE_LIBPATH
@ PTCACHE_BAKED
@ PTCACHE_FRAMES_SKIPPED
@ PTCACHE_FLAG_INFO_DIRTY
@ PTCACHE_BAKING
@ PTCACHE_OUTDATED
@ PTCACHE_FAKE_SMOKE
@ PTCACHE_DISK_CACHE
@ PTCACHE_SIMULATION_VALID
@ PTCACHE_REDO_NEEDED
SyclQueue void void size_t num_bytes void
unsigned int type
unsigned int totdata
struct PTCacheExtra * next
struct PTCacheExtra * prev
unsigned int flag
unsigned int data_types
unsigned int frame
struct ListBase extradata
struct PTCacheMem * next
struct PTCacheMem * prev
unsigned int totpoint
struct PointCache * next
struct ListBase mem_cache
struct PTCacheEdit * edit
void(* free_edit)(struct PTCacheEdit *edit)
struct PointCache * prev