struct bNodeTree;
struct AnimData;
struct Editing;
+struct SceneStats;
+struct bGPdata;
typedef struct Base {
struct Base *next, *prev;
int audio_codec;
int video_bitrate;
int audio_bitrate;
+ int audio_mixrate;
+ float audio_volume;
int gop_size;
int flags;
typedef struct AudioData {
- int mixrate;
- float main; /* Main mix in dB */
+ int mixrate; // 2.5: now in FFMpegCodecData: audio_mixrate
+ float main; // 2.5: now in FFMpegCodecData: audio_volume
+ float speed_of_sound;
+ float doppler_factor;
+ int distance_model;
short flag;
- short pad[3];
+ short pad;
} AudioData;
typedef struct SceneRenderLayer {
#define SCE_PASS_RADIO 8192 /* Radio removed, can use for new GI? */
#define SCE_PASS_MIST 16384
+#define SCE_PASS_RAYHITS 32768
+
/* note, srl->passflag is treestore element 'nr' in outliner, short still... */
struct AviCodecData *avicodecdata;
struct QuicktimeCodecData *qtcodecdata;
struct FFMpegCodecData ffcodecdata;
- struct AudioData audio; /* new in 2.5 */
int cfra, sfra, efra; /* frames as in 'images' */
int psfra, pefra; /* start+end frames of preview range */
*/
int mode;
- /* render engine (deprecated), octree resolution */
- short renderer, ocres;
+ /**
+ * Flags for raytrace settings. Use bit-masking to access the settings.
+ */
+ int raytrace_options;
+
+ /**
+ * Raytrace acceleration structure
+ */
+ short raytrace_structure;
+
+ /* renderer (deprecated) */
+ short renderer;
+ /* octree resolution */
+ short ocres;
+ short pad4;
+
/**
* What to do with the sky/background. Picks sky/premul/key
* blending for the background
short osa;
short frs_sec, edgeint;
+
/* safety, border and display rect */
rctf safety, border;
Brush **brushes;
int active_brush_index, brush_count;
- /* WM handle */
+ /* WM Paint cursor */
void *paint_cursor;
+ unsigned char paint_cursor_col[4];
+
+ int flags;
} Paint;
typedef struct ImagePaintSettings {
ParticleBrushData brush[7]; /* 7 = PE_TOT_BRUSH */
void *paintcursor; /* runtime */
- float emitterdist;
- int draw_timed;
+ float emitterdist, rt;
+
+ int selectmode;
+ int edittype;
+
+ int draw_step, fade_frames;
- int selectmode, pad;
+ struct Scene *scene;
+ struct Object *object;
} ParticleEditSettings;
typedef struct TransformOrientation {
typedef struct Sculpt {
Paint paint;
-
- /* WM handle */
- void *cursor;
/* For rotating around a pivot point */
float pivot[3];
#define VP_SOFT 4
#define VP_NORMALS 8
#define VP_SPRAY 16
-#define VP_MIRROR_X 32
+// #define VP_MIRROR_X 32 // depricated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X)
#define VP_HARD 64
#define VP_ONLYVGROUP 128
/* Transform */
short snap_mode, snap_flag, snap_target;
short proportional, prop_mode;
+
+ int auto_normalize, intpad; /*auto normalizing mode in wpaint*/
} ToolSettings;
typedef struct bStats {
short flag; /* imperial, metric etc */
} UnitSettings;
+typedef struct PhysicsSettings {
+ float gravity[3];
+ int flag;
+} PhysicsSettings;
+
typedef struct Scene {
ID id;
struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */
/* migrate or replace? depends on some internal things... */
/* no, is on the right place (ton) */
struct RenderData r;
- struct AudioData audio; /* DEPRECATED 2.5 */
+ struct AudioData audio;
ListBase markers;
ListBase transform_spaces;
/* Units */
struct UnitSettings unit;
+
+ /* Grease Pencil */
+ struct bGPdata *gpd;
+ /* Physics simulation settings */
+ struct PhysicsSettings physics_settings;
} Scene;
#define R_INTERN 0
#define R_YAFRAY 1
+/* raytrace structure */
+#define R_RAYSTRUCTURE_AUTO 0
+#define R_RAYSTRUCTURE_OCTREE 1
+#define R_RAYSTRUCTURE_BLIBVH 2
+#define R_RAYSTRUCTURE_VBVH 3
+#define R_RAYSTRUCTURE_SIMD_SVBVH 4 /* needs SIMD */
+#define R_RAYSTRUCTURE_SIMD_QBVH 5 /* needs SIMD */
+
+/* raytrace_options */
+#define R_RAYTRACE_USE_LOCAL_COORDS 0x0001
+#define R_RAYTRACE_USE_INSTANCES 0x0002
+
/* scemode (int now) */
#define R_DOSEQ 0x0001
#define R_BG_RENDER 0x0002
#define R_PASSEPARTOUT 0x0004
#define R_PREVIEWBUTS 0x0008
#define R_EXTENSION 0x0010
-#define R_NODE_PREVIEW 0x0020
+#define R_MATNODE_PREVIEW 0x0020
#define R_DOCOMP 0x0040
#define R_COMP_CROP 0x0080
#define R_FREE_IMAGE 0x0100
#define R_STAMP_INFO 0x4000 /* deprecated */
#define R_FULL_SAMPLE 0x8000
#define R_COMP_RERENDER 0x10000
-#define R_RECURS_PROTECTION 0x20000
+#define R_RECURS_PROTECTION 0x20000
+#define R_TEXNODE_PREVIEW 0x40000
/* r->stamp */
#define R_STAMP_TIME 0x0001
#define R_STAMP_MARKER 0x0080
#define R_STAMP_FILENAME 0x0100
#define R_STAMP_SEQSTRIP 0x0200
-#define R_STAMP_ALL (R_STAMP_TIME|R_STAMP_FRAME|R_STAMP_DATE|R_STAMP_CAMERA|R_STAMP_SCENE|R_STAMP_NOTE|R_STAMP_MARKER|R_STAMP_FILENAME|R_STAMP_SEQSTRIP)
+#define R_STAMP_RENDERTIME 0x0400
+#define R_STAMP_ALL (R_STAMP_TIME|R_STAMP_FRAME|R_STAMP_DATE|R_STAMP_CAMERA|R_STAMP_SCENE|R_STAMP_NOTE|R_STAMP_MARKER|R_STAMP_FILENAME|R_STAMP_SEQSTRIP|R_STAMP_RENDERTIME)
/* alphamode */
#define R_ADDSKY 0
/* depricate this! */
#define TESTBASE(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) )
#define TESTBASELIB(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
-#define TESTBASELIB_BGMODE(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+#define TESTBASELIB_BGMODE(v3d, scene, base) ( ((base)->flag & SELECT) && ((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
+#define BASE_EDITABLE_BGMODE(v3d, scene, base) (((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
#define BASE_SELECTABLE(v3d, base) ((base->lay & v3d->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0)
#define FIRSTBASE scene->base.first
#define LASTBASE scene->base.last
#define SCE_SNAP 1
#define SCE_SNAP_ROTATE 2
#define SCE_SNAP_PEEL_OBJECT 4
+#define SCE_SNAP_PROJECT 8
/* toolsettings->snap_target */
#define SCE_SNAP_TARGET_CLOSEST 0
#define SCE_SNAP_TARGET_CENTER 1
#define PROP_CONST 5
#define PROP_RANDOM 6
+/* toolsettings->proportional */
+#define PROP_EDIT_OFF 0
+#define PROP_EDIT_ON 1
+#define PROP_EDIT_CONNECTED 2
+
/* sce->flag */
#define SCE_DS_SELECTED (1<<0)
#define SCE_DS_COLLAPSED (1<<1)
#define FFMPEG_MULTIPLEX_AUDIO 1
#define FFMPEG_AUTOSPLIT_OUTPUT 2
+/* Paint.flags */
+typedef enum {
+ PAINT_SHOW_BRUSH = 1
+} PaintFlags;
+
/* Sculpt.flags */
+/* These can eventually be moved to paint flags? */
typedef enum SculptFlags {
SCULPT_SYMM_X = 1,
SCULPT_SYMM_Y = 2,
SCULPT_SYMM_Z = 4,
- SCULPT_INPUT_SMOOTH = 8,
- SCULPT_DRAW_FAST = 16,
- SCULPT_DRAW_BRUSH = 32,
SCULPT_LOCK_X = 64,
SCULPT_LOCK_Y = 128,
SCULPT_LOCK_Z = 256
#define PE_LOCK_FIRST 2
#define PE_DEFLECT_EMITTER 4
#define PE_INTERPOLATE_ADDED 8
-#define PE_SHOW_CHILD 16
-#define PE_SHOW_TIME 32
+#define PE_DRAW_PART 16
#define PE_X_MIRROR 64
+#define PE_FADE_TIME 128
+#define PE_AUTO_VELOCITY 256
/* toolsetting->particle brushtype */
#define PE_BRUSH_NONE -1
#define PE_BRUSH_LENGTH 2
#define PE_BRUSH_PUFF 3
#define PE_BRUSH_ADD 4
-#define PE_BRUSH_WEIGHT 5
-#define PE_BRUSH_SMOOTH 6
+#define PE_BRUSH_SMOOTH 5
/* this must equal ParticleEditSettings.brush array size */
-#define PE_TOT_BRUSH 7
+#define PE_TOT_BRUSH 6
+
+/* tooksettings->particle edittype */
+#define PE_TYPE_PARTICLES 0
+#define PE_TYPE_SOFTBODY 1
+#define PE_TYPE_CLOTH 2
/* toolsettings->retopo_mode */
#define RETOPO 1
#define SK_RETARGET_AUTONAME 1
/* toolsettings->skgen_retarget_roll */
+#define SK_RETARGET_ROLL_NONE 0
#define SK_RETARGET_ROLL_VIEW 1
#define SK_RETARGET_ROLL_JOINT 2
+/* physics_settings->flag */
+#define PHYS_GLOBAL_GRAVITY 1
+
/* UnitSettings */
/* UnitSettings->system */